Эх сурвалжийг харах

其他出入库问题处理

yzc 1 жил өмнө
parent
commit
2db9dc480c

+ 3 - 2
hx-wms/src/main/java/com/fjhx/wms/controller/stock/StockController.java

@@ -1,6 +1,7 @@
 package com.fjhx.wms.controller.stock;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.wms.entity.manual.dto.ManualStockDto;
 import com.fjhx.wms.entity.stock.dto.StockDto;
 import com.fjhx.wms.entity.stock.dto.StockSelectDto;
 import com.fjhx.wms.entity.stock.po.Stock;
@@ -52,7 +53,7 @@ public class StockController {
      * 手动入库
      */
     @PostMapping("/add")
-    public void add(@RequestBody StockDto stockDto) {
+    public void add(@RequestBody ManualStockDto stockDto) {
         stockService.add(stockDto);
     }
 
@@ -60,7 +61,7 @@ public class StockController {
      * 手动出库
      */
     @PostMapping("/edit")
-    public void edit(@RequestBody StockDto stockDto) {
+    public void edit(@RequestBody ManualStockDto stockDto) {
         stockService.edit(stockDto);
     }
 

+ 15 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/manual/po/ManualStock.java

@@ -1,6 +1,7 @@
 package com.fjhx.wms.entity.manual.po;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
@@ -73,11 +74,13 @@ public class ManualStock extends BasePo {
     /**
      * 借出实际归还时间
      */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     private Date restitutionTime;
 
     /**
      * 借出预计归还时间
      */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     private Date expectRestitutionTime;
 
     /**
@@ -90,4 +93,16 @@ public class ManualStock extends BasePo {
      */
     private Long prodOrderId;
 
+    /**
+     * 归还id (归还时赋值)
+     */
+    private Long restitutionId;
+    /**
+     * 寻回id (寻回时赋值)
+     */
+    private Long seekId;
+    /**
+     * 寻回时间
+     */
+    private Date seekTime;
 }

+ 5 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/manual/vo/ManualStockDetailsVo.java

@@ -4,6 +4,7 @@ import com.fjhx.wms.entity.manual.po.ManualStockDetails;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -87,4 +88,8 @@ public class ManualStockDetailsVo extends ManualStockDetails {
     private String productName;
     private String productCode;
 
+    private BigDecimal productLength;
+    private BigDecimal productWidth;
+    private BigDecimal productHeight;
+
 }

+ 9 - 3
hx-wms/src/main/java/com/fjhx/wms/entity/stock/dto/StockDto.java

@@ -1,6 +1,7 @@
 package com.fjhx.wms.entity.stock.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fjhx.wms.entity.manual.po.ManualStockDetails;
 import com.fjhx.wms.entity.stock.po.Stock;
 import lombok.Getter;
 import lombok.Setter;
@@ -26,7 +27,7 @@ public class StockDto extends Stock {
     /**
      * 添加库存商品列表
      */
-    private List<Stock> list;
+    private List<ManualStockDetails> list;
 
     /**
      * 业务类型
@@ -60,7 +61,7 @@ public class StockDto extends Stock {
     /**
      * 归还id
      */
-    private Long restitutionId;
+//    private Long restitutionId;
     /**
      * 归还时间
      */
@@ -73,7 +74,7 @@ public class StockDto extends Stock {
     /**
      * 寻回id
      */
-    private Long seekId;
+//    private Long seekId;
 
     /**
      * 备注
@@ -85,4 +86,9 @@ public class StockDto extends Stock {
      */
     private String exWarehousePerson;
 
+    /**
+     * 手动出入库id
+     */
+    private Long manualStockId;
+
 }

+ 11 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/po/StockJournal.java

@@ -108,4 +108,15 @@ public class StockJournal extends BasePo {
      * 到货id
      */
     private Long arrivalId;
+
+    /**
+     * 手动出入库id
+     */
+    private Long manualStockId;
+
+    /**
+     * 寻回时间
+     */
+    private Date seekTime;
+
 }

+ 9 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/po/StockJournalDetails.java

@@ -95,4 +95,13 @@ public class StockJournalDetails extends BasePo {
      * 结算状态
      */
     private Integer settleStatus;
+
+    /**
+     * 手动出入库id
+     */
+    private Long manualStockId;
+    /**
+     * 手动出入库明细id
+     */
+    private Long manualStockDetailsId;
 }

+ 2 - 5
hx-wms/src/main/java/com/fjhx/wms/flow/ManualInStockFlow.java

@@ -11,8 +11,6 @@ import com.fjhx.flow.enums.FlowStatusEnum;
 import com.fjhx.wms.entity.manual.dto.ManualStockDto;
 import com.fjhx.wms.entity.manual.po.ManualStock;
 import com.fjhx.wms.entity.manual.po.ManualStockDetails;
-import com.fjhx.wms.entity.stock.dto.StockDto;
-import com.fjhx.wms.entity.stock.po.Stock;
 import com.fjhx.wms.service.manual.ManualStockDetailsService;
 import com.fjhx.wms.service.manual.ManualStockService;
 import com.fjhx.wms.service.stock.StockService;
@@ -77,9 +75,8 @@ public class ManualInStockFlow extends FlowDelegate {
         List<ManualStockDetails> manualStockDetailsList = manualStockDetailsService.list(q -> q.eq(ManualStockDetails::getManualStockId, businessId));
 
         //生成出入库数据
-        StockDto stockDto = BeanUtil.copyProperties(manualStock, StockDto.class);
-        List<Stock> stockList = BeanUtil.copyToList(manualStockDetailsList, Stock.class);
-        stockDto.setList(stockList);
+        ManualStockDto stockDto = BeanUtil.copyProperties(manualStock, ManualStockDto.class);
+        stockDto.setList(manualStockDetailsList);
         stockService.add(stockDto);
     }
 

+ 1 - 2
hx-wms/src/main/java/com/fjhx/wms/service/manual/impl/ManualStockDetailsServiceImpl.java

@@ -7,7 +7,6 @@ import com.fjhx.tenant.utils.DeptUstil;
 import com.fjhx.wms.entity.manual.dto.ManualStockDetailsSelectDto;
 import com.fjhx.wms.entity.manual.po.ManualStockDetails;
 import com.fjhx.wms.entity.manual.vo.ManualStockDetailsVo;
-import com.fjhx.wms.entity.stock.po.Stock;
 import com.fjhx.wms.mapper.manual.ManualStockDetailsMapper;
 import com.fjhx.wms.service.manual.ManualStockDetailsService;
 import com.fjhx.wms.service.warehouse.WarehouseService;
@@ -42,7 +41,7 @@ public class ManualStockDetailsServiceImpl extends ServiceImpl<ManualStockDetail
         wrapper.eq("ms.warehouse_id", dto.getWarehouseId());
         wrapper.eq("ms.type", dto.getType());
         wrapper.eq("ms.op_type", dto.getOpType());
-        wrapper.in("msd.product_id", Stock::getProductId, dto.getProductIds());
+        wrapper.in(ObjectUtil.isNotEmpty(dto.getProductIds()), "msd.product_id", dto.getProductIds());
         wrapper.eq("pi.definition", dto.getDefinition());
         wrapper.eq("pi.product_classify_id", dto.getProductClassifyId());
         wrapper.eq("ms.status", dto.getStatus());

+ 4 - 0
hx-wms/src/main/java/com/fjhx/wms/service/manual/impl/ManualStockServiceImpl.java

@@ -99,6 +99,10 @@ public class ManualStockServiceImpl extends ServiceImpl<ManualStockMapper, Manua
         productInfoService.attributeAssign(manualStockDetailsVos, ManualStockDetails::getProductId, (item, product) -> {
             item.setProductName(product.getName());
             item.setProductCode(product.getCustomCode());
+
+            item.setProductLength(product.getLength());
+            item.setProductWidth(product.getWidth());
+            item.setProductHeight(product.getHeight());
         });
         manualStockVo.setList(manualStockDetailsVos);
         return manualStockVo;

+ 3 - 2
hx-wms/src/main/java/com/fjhx/wms/service/stock/StockService.java

@@ -3,6 +3,7 @@ package com.fjhx.wms.service.stock;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.common.entity.InOutBo;
 import com.fjhx.common.enums.InOutType;
+import com.fjhx.wms.entity.manual.dto.ManualStockDto;
 import com.fjhx.wms.entity.stock.dto.StockDto;
 import com.fjhx.wms.entity.stock.dto.StockSelectDto;
 import com.fjhx.wms.entity.stock.emums.JournalType;
@@ -39,12 +40,12 @@ public interface StockService extends BaseService<Stock> {
     /**
      * 手动入库
      */
-    void add(StockDto stockDto);
+    void add(ManualStockDto stockDto);
 
     /**
      * 手动出库
      */
-    void edit(StockDto stockDto);
+    void edit(ManualStockDto stockDto);
 
     /**
      * 库存删除

+ 37 - 13
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockServiceImpl.java

@@ -19,6 +19,9 @@ import com.fjhx.item.enums.ProductAvailableRecordType;
 import com.fjhx.item.service.product.ProductClassifyService;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.item.service.product.ProductStockInfoService;
+import com.fjhx.wms.entity.manual.dto.ManualStockDto;
+import com.fjhx.wms.entity.manual.po.ManualStock;
+import com.fjhx.wms.entity.manual.po.ManualStockDetails;
 import com.fjhx.wms.entity.stock.StockExcelBo;
 import com.fjhx.wms.entity.stock.dto.StockDto;
 import com.fjhx.wms.entity.stock.dto.StockJournalDetailsDto;
@@ -30,11 +33,11 @@ import com.fjhx.wms.entity.stock.po.StockJournalDetails;
 import com.fjhx.wms.entity.stock.vo.StockVo;
 import com.fjhx.wms.entity.warehouse.po.Warehouse;
 import com.fjhx.wms.mapper.stock.StockMapper;
+import com.fjhx.wms.service.manual.ManualStockService;
 import com.fjhx.wms.service.stock.StockJournalDetailsService;
 import com.fjhx.wms.service.stock.StockJournalService;
 import com.fjhx.wms.service.stock.StockService;
 import com.fjhx.wms.service.warehouse.WarehouseService;
-import com.fjhx.wms.utils.CodeEnum;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.domain.entity.SysDept;
@@ -77,6 +80,8 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
     private ProductStockInfoService productStockInfoService;
     @Autowired
     private ISysDeptService sysDeptService;
+    @Autowired
+    private ManualStockService manualStockService;
 
     private void setPageWrapper(StockSelectDto dto, IWrapper<Stock> wrapper) {
         wrapper.eq(Stock::getWarehouseId, dto.getId());
@@ -192,7 +197,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 
     @Override
     @DSTransactional
-    public void add(StockDto stockDto) {
+    public void add(ManualStockDto stockDto) {
         //根据前端传的类型获取出入库流水类型
         JournalType journalType = JournalType.getByDetailType(stockDto.getType());
 
@@ -210,19 +215,19 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
         stockJournal.setId(IdWorker.getId());
         stockJournal.setOpType(inOutType == InOutType.IN ? 1 : 2);
         stockJournal.setType(journalType.getDetailType());
-        stockJournal.setCode(stockDto.getType() == 1 ? CodeEnum.SIN_CODE.getCode() : CodeEnum.SOUT_CODE.getCode());
+        stockJournal.setCode(stockDto.getCode());
         stockJournal.setWarehouseId(warehouseId);
-        stockJournal.setBusinessId(stockDto.getBusinessId());
         stockJournal.setCompanyId(companyId);
         stockJournal.setRemarks(stockDto.getRemarks());
         stockJournal.setExWarehousePerson(stockDto.getExWarehousePerson());
+        stockJournal.setManualStockId(stockDto.getId());
         //赋值流水信息
         editStockJournalInfo(stockDto, stockJournal);
         //保存出入库记录
         stockJournalService.save(stockJournal);
-        List<Stock> list = stockDto.getList();
+        List<ManualStockDetails> list = stockDto.getList();
         List<StockJournalDetails> stockJournalDetailsList = new ArrayList<>();
-        for (Stock stock : list) {
+        for (ManualStockDetails stock : list) {
             //创建出入库明细
             StockJournalDetails stockJournalDetails = new StockJournalDetailsDto();
             stockJournalDetails.setStockJournalId(stockJournal.getId());
@@ -230,6 +235,8 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
             stockJournalDetails.setQuantity(stock.getQuantity());
             stockJournalDetails.setBusinessDetailsId(stock.getId());
             stockJournalDetails.setCompanyId(companyId);
+            stockJournalDetails.setManualStockId(stock.getManualStockId());
+            stockJournalDetails.setPurchaseDetailId(stock.getId());
             stockJournalDetailsList.add(stockJournalDetails);
         }
         //操作库存
@@ -248,7 +255,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
     /**
      * 手动出入库参数校验赋值
      */
-    private void editStockJournalInfo(StockDto stockDto, StockJournal stockJournal) {
+    private void editStockJournalInfo(ManualStockDto stockDto, StockJournal stockJournal) {
         JournalType byDetailType = JournalType.getByDetailType(stockDto.getType());
         //生产打样,生产超领,退料入库,废料入库
         stockJournal.setProdOrderId(stockDto.getProdOrderId());
@@ -266,9 +273,17 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
             StockJournal borrowJournal = stockJournalService.getById(borrowId);
             Assert.notEmpty(borrowJournal, "查询不到借用信息");
             //赋值归还id
+            Date restitutionTime = new Date();
             borrowJournal.setRestitutionId(stockJournal.getId());
-            borrowJournal.setRestitutionTime(new Date());
+            borrowJournal.setRestitutionTime(restitutionTime);
             stockJournalService.updateById(borrowJournal);
+
+            //更新手动出入库
+            ManualStock borrowManualStock = manualStockService.getById(borrowJournal.getManualStockId());
+            borrowManualStock.setRestitutionId(stockJournal.getManualStockId());
+            borrowManualStock.setRestitutionTime(restitutionTime);
+            manualStockService.updateById(borrowManualStock);
+
             //赋值借用id
             stockJournal.setBorrowId(borrowId);
         }
@@ -276,10 +291,19 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
         if (JournalType.LOSE_IN.equals(byDetailType)) {
             Long loseId = stockDto.getLoseId();
             Assert.notEmpty(loseId, "丢件id不能为空");
-//            StockJournal loseIdJournal = stockJournalService.getById(loseId);
-//            Assert.notEmpty(loseIdJournal, "查询不到丢件信息");
-//            //赋值寻回Id
-//            loseIdJournal.setSeekId(stockJournal.getId());
+            StockJournal loseJournal = stockJournalService.getById(loseId);
+            Assert.notEmpty(loseJournal, "查询不到丢件信息");
+
+            Date seekTime = new Date();
+            loseJournal.setSeekTime(seekTime);
+            stockJournalService.updateById(loseJournal);
+
+            //更新手动出入库
+            ManualStock loseManualStock = manualStockService.getById(loseJournal.getManualStockId());
+            loseManualStock.setSeekId(stockJournal.getManualStockId());
+            loseManualStock.setSeekTime(seekTime);
+            manualStockService.updateById(loseManualStock);
+
             //赋值丢件id
             stockJournal.setLoseId(loseId);
         }
@@ -287,7 +311,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 
     @Override
     @DSTransactional
-    public void edit(StockDto stockDto) {
+    public void edit(ManualStockDto stockDto) {
         add(stockDto);
     }
 

+ 1 - 0
hx-wms/src/main/resources/mapper/manual/ManualStockDetailsMapper.xml

@@ -28,5 +28,6 @@
         FROM manual_stock_details msd
                  JOIN manual_stock ms ON msd.manual_stock_id = ms.id
                  LEFT JOIN product_info pi ON msd.product_id = pi.id
+            ${ew.customSqlSegment}
     </select>
 </mapper>