Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

24282 vor 2 Jahren
Ursprung
Commit
bb6b6f01c4
43 geänderte Dateien mit 1256 neuen und 85 gelöschten Zeilen
  1. 5 0
      hx-item/src/main/java/com/fjhx/item/entity/product/vo/ProductInfoVo.java
  2. 8 1
      hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java
  3. 17 14
      hx-item/src/main/resources/mapper/product/ProductInfoMapper.xml
  4. 1 1
      hx-mes/pom.xml
  5. 10 3
      hx-mes/src/main/java/com/fjhx/mes/service/border/impl/BorderOfLineServiceImpl.java
  6. 10 3
      hx-mes/src/main/java/com/fjhx/mes/service/completion/impl/CompletionInfoServiceImpl.java
  7. 20 10
      hx-purchase/src/main/java/com/fjhx/purchase/flow/SalesReturnFlow.java
  8. 63 0
      hx-purchase/src/main/java/com/fjhx/purchase/flow/SubscribeFlowByWdly.java
  9. 13 10
      hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalServiceImpl.java
  10. 60 0
      hx-sale/src/main/java/com/fjhx/sale/controller/documents/DocumentsController.java
  11. 34 0
      hx-sale/src/main/java/com/fjhx/sale/controller/documents/DocumentsProductController.java
  12. 52 0
      hx-sale/src/main/java/com/fjhx/sale/controller/documents/DocumentsTransportController.java
  13. 22 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsDto.java
  14. 17 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsProductDto.java
  15. 17 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsProductSelectDto.java
  16. 17 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsSelectDto.java
  17. 20 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsTransportDto.java
  18. 17 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsTransportSelectDto.java
  19. 37 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/po/Documents.java
  20. 58 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/po/DocumentsProduct.java
  21. 48 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/po/DocumentsTransport.java
  22. 17 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/vo/DocumentsProductVo.java
  23. 17 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/vo/DocumentsTransportVo.java
  24. 53 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/vo/DocumentsVo.java
  25. 4 0
      hx-sale/src/main/java/com/fjhx/sale/flow/PurchaseFlow.java
  26. 66 0
      hx-sale/src/main/java/com/fjhx/sale/flow/PurchaseFlowByWdly.java
  27. 27 0
      hx-sale/src/main/java/com/fjhx/sale/mapper/documents/DocumentsMapper.java
  28. 26 0
      hx-sale/src/main/java/com/fjhx/sale/mapper/documents/DocumentsProductMapper.java
  29. 26 0
      hx-sale/src/main/java/com/fjhx/sale/mapper/documents/DocumentsTransportMapper.java
  30. 25 0
      hx-sale/src/main/java/com/fjhx/sale/service/documents/DocumentsProductService.java
  31. 46 0
      hx-sale/src/main/java/com/fjhx/sale/service/documents/DocumentsService.java
  32. 37 0
      hx-sale/src/main/java/com/fjhx/sale/service/documents/DocumentsTransportService.java
  33. 33 0
      hx-sale/src/main/java/com/fjhx/sale/service/documents/impl/DocumentsProductServiceImpl.java
  34. 120 0
      hx-sale/src/main/java/com/fjhx/sale/service/documents/impl/DocumentsServiceImpl.java
  35. 58 0
      hx-sale/src/main/java/com/fjhx/sale/service/documents/impl/DocumentsTransportServiceImpl.java
  36. 25 0
      hx-sale/src/main/resources/mapper/documents/DocumentsMapper.xml
  37. 22 0
      hx-sale/src/main/resources/mapper/documents/DocumentsProductMapper.xml
  38. 20 0
      hx-sale/src/main/resources/mapper/documents/DocumentsTransportMapper.xml
  39. 4 0
      hx-wms/src/main/java/com/fjhx/wms/entity/stock/dto/StockWaitDto.java
  40. 14 14
      hx-wms/src/main/java/com/fjhx/wms/entity/stock/po/StockWait.java
  41. 39 2
      hx-wms/src/main/java/com/fjhx/wms/entity/stock/vo/StockWaitVo.java
  42. 21 20
      hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java
  43. 10 7
      hx-wms/src/main/resources/mapper/stock/StockWaitMapper.xml

+ 5 - 0
hx-item/src/main/java/com/fjhx/item/entity/product/vo/ProductInfoVo.java

@@ -20,4 +20,9 @@ public class ProductInfoVo extends ProductInfo {
 
     private List<String> classifyNameGroup;
 
+    /**
+     * 生命周期 维多利亚
+     */
+    private Integer lifeCycle;
+
 }

+ 8 - 1
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java

@@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
@@ -65,7 +66,8 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
                 new SqlField("pi", ProductInfo::getCode),
                 new SqlField("pi", ProductInfo::getCustomCode)
         );
-        wrapper.eq("json_unquote(victoriatourist_json ->'$.lifeCycle')", dto.getLifeCycle());
+        //计算并根据生命周期过滤
+        wrapper.eq("IF(DATEDIFF(now(),json_unquote( victoriatourist_json -> '$.growUpDay' ))> 0,3,IF(DATEDIFF(now(), json_unquote(victoriatourist_json -> '$.newProductsDay' ))> 0, 2, 1 ))", dto.getLifeCycle());
         Page<ProductInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
 
         List<ProductInfoVo> records = page.getRecords();
@@ -133,8 +135,13 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
 
             JSONObject json = JSONObject.parseObject(victoriatouristJson);
             json.put("deptName", sysDeptMap.get(json.getLong("deptId")));
+
+            //生命周期计算(在sql里面计算了) 当前时间-创建时间=的天数>growUpDay成熟期,>newProductsDay就是成长期,要不然就是新品期
+            json.put("lifeCycle", record.getLifeCycle());
+
             record.setVictoriatouristJson(json.toJSONString());
         }
+
         return page;
     }
 

+ 17 - 14
hx-item/src/main/resources/mapper/product/ProductInfoMapper.xml

@@ -3,20 +3,23 @@
 <mapper namespace="com.fjhx.item.mapper.product.ProductInfoMapper">
 
     <select id="getPage" resultType="com.fjhx.item.entity.product.vo.ProductInfoVo">
-        select pi.id,
-               pi.product_classify_id,
-               pi.code,
-               pi.type,
-               pi.name,
-               pi.spec,
-               pi.unit,
-               pi.remark,
-               pi.create_user,
-               pi.create_time,
-               pi.update_user,
-               pi.update_time,
-               pi.victoriatourist_json
-        from product_info pi
+        SELECT
+            pi.id,
+            pi.product_classify_id,
+            pi.CODE,
+            pi.type,
+            pi.NAME,
+            pi.spec,
+            pi.unit,
+            pi.remark,
+            pi.create_user,
+            pi.create_time,
+            pi.update_user,
+            pi.update_time,
+            pi.victoriatourist_json,
+            IF(DATEDIFF(now(),json_unquote( victoriatourist_json -> '$.growUpDay' ))> 0,3,IF(DATEDIFF(now(), json_unquote(victoriatourist_json -> '$.newProductsDay' ))> 0, 2, 1 )) AS lifeCycle
+        FROM
+            product_info pi
             ${ew.customSqlSegment}
     </select>
 

+ 1 - 1
hx-mes/pom.xml

@@ -45,4 +45,4 @@
     </dependencies>
 
 
-</project>
+</project>

+ 10 - 3
hx-mes/src/main/java/com/fjhx/mes/service/border/impl/BorderOfLineServiceImpl.java

@@ -17,6 +17,8 @@ import com.fjhx.mes.mapper.border.BorderOfLineMapper;
 import com.fjhx.mes.service.border.BorderOfLineJournalService;
 import com.fjhx.mes.service.border.BorderOfLineService;
 import com.fjhx.wms.entity.stock.po.StockWait;
+import com.fjhx.wms.entity.stock.po.StockWaitDetails;
+import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,6 +49,8 @@ public class BorderOfLineServiceImpl extends ServiceImpl<BorderOfLineMapper, Bor
     ProductClassifyService productClassifyService;
     @Autowired
     StockWaitService stockWaitService;
+    @Autowired
+    StockWaitDetailsService stockWaitDetailsService;
 
     @Override
     public Page<BorderOfLineVo> getPage(BorderOfLineSelectDto dto) {
@@ -161,11 +165,14 @@ public class BorderOfLineServiceImpl extends ServiceImpl<BorderOfLineMapper, Bor
             stockWait.setType(1);
             stockWait.setBusinessType(1);
             stockWait.setBusinessId(borderOfLineJournal.getId());
-            stockWait.setProductId(borderOfLine.getProductId());
-            stockWait.setQuantity(borderOfLineDto.getQuantity());
-            stockWait.setReceiptQuantity(BigDecimal.ZERO);
             stockWait.setStatus(0);
             stockWaitService.save(stockWait);
+            StockWaitDetails stockWaitDetails = new StockWaitDetails();
+            stockWaitDetails.setStockWaitId(stockWait.getId());
+            stockWaitDetails.setProductId(borderOfLine.getProductId());
+            stockWaitDetails.setQuantity(borderOfLineDto.getQuantity());
+            stockWaitDetails.setReceiptQuantity(BigDecimal.ZERO);
+            stockWaitDetailsService.save(stockWaitDetails);
         }
     }
 

+ 10 - 3
hx-mes/src/main/java/com/fjhx/mes/service/completion/impl/CompletionInfoServiceImpl.java

@@ -20,6 +20,8 @@ import com.fjhx.mes.service.production.ProductionPlanService;
 import com.fjhx.mes.service.production.ProductionTaskService;
 import com.fjhx.mes.service.work.WorkOrderService;
 import com.fjhx.wms.entity.stock.po.StockWait;
+import com.fjhx.wms.entity.stock.po.StockWaitDetails;
+import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,6 +46,8 @@ public class CompletionInfoServiceImpl extends ServiceImpl<CompletionInfoMapper,
     @Autowired
     StockWaitService stockWaitService;
     @Autowired
+    StockWaitDetailsService stockWaitDetailsService;
+    @Autowired
     ProductionTaskService productionTaskService;
     @Autowired
     ProductInfoService productInfoService;
@@ -111,11 +115,14 @@ public class CompletionInfoServiceImpl extends ServiceImpl<CompletionInfoMapper,
         stockWait.setType(1);
         stockWait.setBusinessType(2);
         stockWait.setBusinessId(completionInfoDto.getId());
-        stockWait.setProductId(detail.getProductId());
-        stockWait.setQuantity(completionInfoDto.getQuantity());
-        stockWait.setReceiptQuantity(BigDecimal.ZERO);
         stockWait.setStatus(0);
         stockWaitService.save(stockWait);
+        StockWaitDetails stockWaitDetails =new StockWaitDetails();
+        stockWaitDetails.setStockWaitId(stockWait.getId());
+        stockWaitDetails.setProductId(detail.getProductId());
+        stockWaitDetails.setQuantity(completionInfoDto.getQuantity());
+        stockWaitDetails.setReceiptQuantity(BigDecimal.ZERO);
+        stockWaitDetailsService.save(stockWaitDetails);
         //判断完工数量是否等于任务数量如果是修改任务状态为完成
         if (completionInfoDto.getQuantity().compareTo(detail.getQuantity()) >= 0) {
             detail.setStatus(2);

+ 20 - 10
hx-purchase/src/main/java/com/fjhx/purchase/flow/SalesReturnFlow.java

@@ -16,8 +16,11 @@ import com.fjhx.purchase.service.sales.SalesReturnDetailService;
 import com.fjhx.purchase.service.sales.SalesReturnService;
 import com.fjhx.purchase.util.code.CodeEnum;
 import com.fjhx.wms.entity.stock.po.StockWait;
+import com.fjhx.wms.entity.stock.po.StockWaitDetails;
+import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.obs.services.internal.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
@@ -34,6 +37,9 @@ import java.util.List;
 @Component
 public class SalesReturnFlow extends FlowDelegate {
 
+    @Autowired
+    StockWaitDetailsService stockWaitDetailsService;
+
     @Override
     public String getFlowKey() {
         return "sales_return_flow";
@@ -93,18 +99,22 @@ public class SalesReturnFlow extends FlowDelegate {
         List<SalesReturnDetail> salesReturnDetailList = salesReturnDetailService.list(Wrappers.<SalesReturnDetail>query()
                 .lambda().eq(SalesReturnDetail::getSalesReturnId, salesReturn.getId()));
         //添加一份待出库数据
-        List<StockWait> stockWaitList = new ArrayList<>();
+        StockWait stockWait = new StockWait();
+        stockWait.setBusinessId(businessId);
+        stockWait.setType(2);//入库
+        stockWait.setStatus(0);//待入库
+        stockWait.setBusinessType(4);//退货出库
+        stockWaitService.save(stockWait);
+        List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
         for (SalesReturnDetail s : salesReturnDetailList) {
-            StockWait stockWait = new StockWait();
-            stockWait.setProductId(s.getBussinessId());
-            stockWait.setBusinessId(s.getId());//到货明细ID
-            stockWait.setType(2);//入库
-            stockWait.setStatus(0);//待入库
-            stockWait.setBusinessType(4);//退货出库
-            stockWait.setQuantity(s.getCount());
-            stockWaitList.add(stockWait);
+            StockWaitDetails stockWaitDetails = new StockWaitDetails();
+            stockWaitDetails.setStockWaitId(stockWait.getId());
+            stockWaitDetails.setProductId(s.getBussinessId());
+            stockWaitDetails.setBusinessDetailsId(s.getId());//到货明细ID
+            stockWaitDetails.setQuantity(s.getCount());
+            stockWaitDetailsList.add(stockWaitDetails);
         }
-        stockWaitService.saveBatch(stockWaitList);
+        stockWaitDetailsService.saveBatch(stockWaitDetailsList);
     }
 
 }

+ 63 - 0
hx-purchase/src/main/java/com/fjhx/purchase/flow/SubscribeFlowByWdly.java

@@ -0,0 +1,63 @@
+package com.fjhx.purchase.flow;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.flow.core.FlowDelegate;
+import com.fjhx.purchase.entity.subscribe.enums.SubscribeDetailStatusEnum;
+import com.fjhx.purchase.entity.subscribe.enums.SubscribeStatusEnum;
+import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
+import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
+import com.fjhx.purchase.service.subscribe.SubscribeService;
+import com.fjhx.purchase.util.code.CodeEnum;
+import com.obs.services.internal.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author:yzc
+ * @DATE:2023/4/20 19:16
+ */
+@DS(SourceConstant.PURCHASE)
+@Component
+public class SubscribeFlowByWdly extends FlowDelegate {
+
+    @Autowired
+    private SubscribeFlow subscribeFlow;
+
+    @Override
+    public String getFlowKey() {
+        return "wdly_apply_purchase";
+    }
+
+
+    /**
+     * 发起流程
+     * @param flowId 流程ID
+     * @param submitData 申购数据
+     * @return
+     */
+    @Override
+    public Long start(Long flowId, JSONObject submitData) {
+        return subscribeFlow.start(flowId,submitData);
+    }
+
+    /**
+     * 结束流程
+     * @param flowId 流程ID
+     * @param businessId 业务ID
+     * @param submitData 数据
+     */
+    @Override
+    public void end(Long flowId, Long businessId, JSONObject submitData) {
+       subscribeFlow.end(flowId,businessId,submitData);
+    }
+}

+ 13 - 10
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalServiceImpl.java

@@ -115,7 +115,13 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
         //取出到货明细
         List<ArrivalDetail> arrivalDetailList = arrival.getArrivalDetailList();
         if (CollectionUtils.isNotEmpty(arrivalDetailList)) {
-            List<StockWait> stockWaitList = new ArrayList<>();
+            StockWait stockWait = new StockWait();
+            stockWait.setBusinessId(arrival.getId());//到货明细ID
+            stockWait.setType(1);//入库
+            stockWait.setStatus(0);//待入库
+            stockWait.setBusinessType(3);//采购到货
+            stockWaitService.save(stockWait);
+            List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
             for (ArrivalDetail d : arrivalDetailList) {
                 //todo 这一块是做了采购到货状态修改。前端已经完成
                 //查询采购明细
@@ -128,17 +134,14 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
 //
 //                }
                 d.setArrivalId(arrival.getId());
-                StockWait stockWait = new StockWait();
-                stockWait.setProductId(d.getBussinessId());
-                stockWait.setBusinessId(d.getId());//到货明细ID
-                stockWait.setType(1);//入库
-                stockWait.setStatus(0);//待入库
-                stockWait.setBusinessType(3);//采购到货
-                stockWait.setQuantity(d.getCount());
-                stockWaitList.add(stockWait);
+                StockWaitDetails stockWaitDetails = new StockWaitDetails();
+                stockWaitDetails.setStockWaitId(stockWait.getId());
+                stockWaitDetails.setProductId(d.getBussinessId());
+                stockWaitDetails.setQuantity(d.getCount());
+                stockWaitDetailsList.add(stockWaitDetails);
             }
             arrivalDetailService.saveBatch(arrivalDetailList);
-            stockWaitService.saveBatch(stockWaitList);
+            stockWaitDetailsService.saveBatch(stockWaitDetailsList);
         }
     }
 

+ 60 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/documents/DocumentsController.java

@@ -0,0 +1,60 @@
+package com.fjhx.sale.controller.documents;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsVo;
+import com.fjhx.sale.entity.documents.dto.DocumentsSelectDto;
+import com.fjhx.sale.entity.documents.dto.DocumentsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.sale.service.documents.DocumentsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 单证表 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@RestController
+@RequestMapping("/documents")
+public class DocumentsController {
+
+    @Autowired
+    private DocumentsService documentsService;
+
+    /**
+     * 单证表分页
+     */
+    @PostMapping("/page")
+    public Page<DocumentsVo> page(@RequestBody DocumentsSelectDto dto) {
+        return documentsService.getPage(dto);
+    }
+
+    /**
+     * 单证表明细
+     */
+    @PostMapping("/detail")
+    public DocumentsVo detail(@RequestBody BaseSelectDto dto) {
+        return documentsService.detail(dto.getId());
+    }
+
+    /**
+     * 单证表新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody DocumentsDto documentsDto) {
+        documentsService.add(documentsDto);
+    }
+
+    /**
+     * 单证表删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        documentsService.delete(dto.getId());
+    }
+
+}

+ 34 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/documents/DocumentsProductController.java

@@ -0,0 +1,34 @@
+package com.fjhx.sale.controller.documents;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsProductVo;
+import com.fjhx.sale.entity.documents.dto.DocumentsProductSelectDto;
+import com.fjhx.sale.service.documents.DocumentsProductService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 单证-产品表 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@RestController
+@RequestMapping("/documentsProduct")
+public class DocumentsProductController {
+
+    @Autowired
+    private DocumentsProductService documentsProductService;
+
+    /**
+     * 单证-产品表分页
+     */
+    @PostMapping("/page")
+    public Page<DocumentsProductVo> page(@RequestBody DocumentsProductSelectDto dto) {
+        return documentsProductService.getPage(dto);
+    }
+
+}

+ 52 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/documents/DocumentsTransportController.java

@@ -0,0 +1,52 @@
+package com.fjhx.sale.controller.documents;
+
+import com.fjhx.sale.entity.documents.dto.DocumentsTransportDto;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsTransportVo;
+import com.fjhx.sale.entity.documents.dto.DocumentsTransportSelectDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.sale.service.documents.DocumentsTransportService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 单证-货运表 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@RestController
+@RequestMapping("/documentsTransport")
+public class DocumentsTransportController {
+
+    @Autowired
+    private DocumentsTransportService documentsTransportService;
+
+    /**
+     * 单证-货运表分页
+     */
+    @PostMapping("/page")
+    public Page<DocumentsTransportVo> page(@RequestBody DocumentsTransportSelectDto dto) {
+        return documentsTransportService.getPage(dto);
+    }
+
+    /**
+     * 单证-货运表明细
+     */
+    @PostMapping("/detail")
+    public DocumentsTransportVo detail(@RequestBody BaseSelectDto dto) {
+        return documentsTransportService.detail(dto.getId());
+    }
+
+
+    /**
+     * 单证-货运添加
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody DocumentsTransportDto dto) {
+       documentsTransportService.add(dto);
+    }
+}

+ 22 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.sale.entity.documents.dto;
+
+import com.fjhx.sale.entity.documents.po.Documents;
+import com.fjhx.sale.entity.documents.po.DocumentsProduct;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 单证表新增编辑入参实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class DocumentsDto extends Documents {
+    //单证-产品表
+    List<DocumentsProduct> documentsProductList;
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsProductDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.documents.dto;
+
+import com.fjhx.sale.entity.documents.po.DocumentsProduct;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 单证-产品表新增编辑入参实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class DocumentsProductDto extends DocumentsProduct {
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsProductSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.documents.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 单证-产品表列表查询入参实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class DocumentsProductSelectDto extends BaseSelectDto {
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.documents.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 单证表列表查询入参实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class DocumentsSelectDto extends BaseSelectDto {
+
+}

+ 20 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsTransportDto.java

@@ -0,0 +1,20 @@
+package com.fjhx.sale.entity.documents.dto;
+
+import com.fjhx.file.entity.ObsFile;
+import com.fjhx.sale.entity.documents.po.DocumentsTransport;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 单证-货运表新增编辑入参实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class DocumentsTransportDto extends DocumentsTransport {
+    private List<ObsFile> fileList;
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/dto/DocumentsTransportSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.documents.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 单证-货运表列表查询入参实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class DocumentsTransportSelectDto extends BaseSelectDto {
+
+}

+ 37 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/po/Documents.java

@@ -0,0 +1,37 @@
+package com.fjhx.sale.entity.documents.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 单证表
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+@TableName("documents")
+public class Documents extends BasePo {
+
+    /**
+     * 主合同Id
+     */
+    private Long contractId;
+
+    /**
+     * 唛头明细
+     */
+    private String remark;
+
+    /**
+     * 国家表id
+     */
+    private String countryId;
+
+}

+ 58 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/po/DocumentsProduct.java

@@ -0,0 +1,58 @@
+package com.fjhx.sale.entity.documents.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 单证-产品表
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+@TableName("documents_product")
+public class DocumentsProduct extends BasePo {
+
+    /**
+     * 产品ID
+     */
+    private Long productId;
+
+    /**
+     * 单证表ID
+     */
+    private Long documentsId;
+
+    /**
+     * 货物描述
+     */
+    private String describe;
+
+    /**
+     * 货物副描述
+     */
+    private String subDescribe;
+
+    /**
+     * 海关编码
+     */
+    private String customsCode;
+
+    /**
+     * 单价
+     */
+    private BigDecimal price;
+
+    /**
+     * 数量
+     */
+    private BigDecimal quantity;
+
+}

+ 48 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/po/DocumentsTransport.java

@@ -0,0 +1,48 @@
+package com.fjhx.sale.entity.documents.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 单证-货运表
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+@TableName("documents_transport")
+public class DocumentsTransport extends BasePo {
+
+    /**
+     * 承运方
+     */
+    private String acceptCarriage;
+
+    /**
+     * 单证ID
+     */
+    private String documentsId;
+
+
+    /**
+     * 起运时间
+     */
+    private Date departureTime;
+
+    /**
+     * 单号
+     */
+    private String code;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/vo/DocumentsProductVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.documents.vo;
+
+import com.fjhx.sale.entity.documents.po.DocumentsProduct;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 单证-产品表列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class DocumentsProductVo extends DocumentsProduct {
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/vo/DocumentsTransportVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.documents.vo;
+
+import com.fjhx.sale.entity.documents.po.DocumentsTransport;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 单证-货运表列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class DocumentsTransportVo extends DocumentsTransport {
+
+}

+ 53 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/vo/DocumentsVo.java

@@ -0,0 +1,53 @@
+package com.fjhx.sale.entity.documents.vo;
+
+import com.fjhx.sale.entity.documents.po.Documents;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 单证表列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class DocumentsVo extends Documents {
+
+    /**
+     * 归属公司ID(卖方公司ID)
+     */
+    private String sellCorporationId;
+
+
+    /**
+     * 客户ID(买方公司ID)
+     */
+    private String buyCorporationId;
+
+    /**
+     * 归属公司名称(卖方公司名称)
+     */
+    private String sellCorporationName;
+
+
+    /**
+     * 客户名称(买方公司名称)
+     */
+    private String buyCorporationName;
+
+    /**
+     * 主合同编号
+     */
+    private String code;
+
+    /**
+     *承运方
+     */
+    private String acceptCarriage;
+
+    /**
+     * 货运单号
+     */
+    private String acceptCode;
+}

+ 4 - 0
hx-sale/src/main/java/com/fjhx/sale/flow/PurchaseFlow.java

@@ -1,9 +1,11 @@
 package com.fjhx.sale.flow;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.flow.core.FlowDelegate;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseDataResourceEnum;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseDetailStatusEnum;
@@ -55,6 +57,7 @@ public class PurchaseFlow extends FlowDelegate {
      */
     @Override
     public Long start(Long flowId, JSONObject submitData) {
+        DynamicDataSourceContextHolder.push(SourceConstant.PURCHASE);
         Purchase purchase = submitData.toJavaObject(Purchase.class);
         purchase.setCode(CodeEnum.PURCHASE.getCode());
         purchase.setPurchaseStatus(PurchaseStatusEnum.UNDER_REVIEW.getKey());
@@ -66,6 +69,7 @@ public class PurchaseFlow extends FlowDelegate {
             }
             purchaseDetailService.saveBatch(purchaseDetailList);
         }
+        DynamicDataSourceContextHolder.poll();
         return purchase.getId();
     }
 

+ 66 - 0
hx-sale/src/main/java/com/fjhx/sale/flow/PurchaseFlowByWdly.java

@@ -0,0 +1,66 @@
+package com.fjhx.sale.flow;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.flow.core.FlowDelegate;
+import com.fjhx.purchase.entity.purchase.enums.PurchaseDataResourceEnum;
+import com.fjhx.purchase.entity.purchase.enums.PurchaseDetailStatusEnum;
+import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.service.purchase.PurchaseDetailService;
+import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.purchase.util.code.CodeEnum;
+import com.fjhx.sale.entity.contract.po.ContractProduct;
+import com.fjhx.sale.service.contract.ContractProductService;
+import com.obs.services.internal.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 采购流程
+ *
+ * @Author:caozj
+ * @DATE:2023/4/3 17:38
+ */
+@Component
+public class PurchaseFlowByWdly extends FlowDelegate {
+
+    @Autowired
+    private PurchaseFlow purchaseFlow;
+
+    @Override
+    public String getFlowKey() {
+        return "wdly_purchase";
+    }
+
+    /**
+     * 发起流程
+     * @param flowId 流程ID
+     * @param submitData 采购数据
+     * @return
+     */
+    @Override
+    public Long start(Long flowId, JSONObject submitData) {
+        return purchaseFlow.start(flowId,submitData);
+    }
+
+    /**
+     * 结束流程
+     * @param flowId 流程ID
+     * @param businessId 业务ID
+     * @param submitData 数据
+     */
+    @Override
+    public void end(Long flowId, Long businessId, JSONObject submitData) {
+        purchaseFlow.end(flowId,businessId,submitData);
+    }
+
+}

+ 27 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/documents/DocumentsMapper.java

@@ -0,0 +1,27 @@
+package com.fjhx.sale.mapper.documents;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fjhx.sale.entity.documents.po.Documents;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 单证表 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+public interface DocumentsMapper extends BaseMapper<Documents> {
+
+    /**
+     * 单证表分页
+     */
+    Page<DocumentsVo> getPage(@Param("page") Page<Object> page, @Param("ew") QueryWrapper<Object> wrapper);
+
+}

+ 26 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/documents/DocumentsProductMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.sale.mapper.documents;
+
+import com.fjhx.sale.entity.documents.po.DocumentsProduct;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsProductVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 单证-产品表 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+public interface DocumentsProductMapper extends BaseMapper<DocumentsProduct> {
+
+    /**
+     * 单证-产品表分页
+     */
+    Page<DocumentsProductVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<DocumentsProduct> wrapper);
+
+}

+ 26 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/documents/DocumentsTransportMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.sale.mapper.documents;
+
+import com.fjhx.sale.entity.documents.po.DocumentsTransport;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsTransportVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 单证-货运表 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+public interface DocumentsTransportMapper extends BaseMapper<DocumentsTransport> {
+
+    /**
+     * 单证-货运表分页
+     */
+    Page<DocumentsTransportVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<DocumentsTransport> wrapper);
+
+}

+ 25 - 0
hx-sale/src/main/java/com/fjhx/sale/service/documents/DocumentsProductService.java

@@ -0,0 +1,25 @@
+package com.fjhx.sale.service.documents;
+
+import com.fjhx.sale.entity.documents.po.DocumentsProduct;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsProductVo;
+import com.fjhx.sale.entity.documents.dto.DocumentsProductSelectDto;
+
+
+/**
+ * <p>
+ * 单证-产品表 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+public interface DocumentsProductService extends BaseService<DocumentsProduct> {
+
+    /**
+     * 单证-产品表分页
+     */
+    Page<DocumentsProductVo> getPage(DocumentsProductSelectDto dto);
+
+}

+ 46 - 0
hx-sale/src/main/java/com/fjhx/sale/service/documents/DocumentsService.java

@@ -0,0 +1,46 @@
+package com.fjhx.sale.service.documents;
+
+import com.fjhx.sale.entity.documents.po.Documents;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsVo;
+import com.fjhx.sale.entity.documents.dto.DocumentsSelectDto;
+import com.fjhx.sale.entity.documents.dto.DocumentsDto;
+
+
+/**
+ * <p>
+ * 单证表 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+public interface DocumentsService extends BaseService<Documents> {
+
+    /**
+     * 单证表分页
+     */
+    Page<DocumentsVo> getPage(DocumentsSelectDto dto);
+
+    /**
+     * 单证表明细
+     */
+    DocumentsVo detail(Long id);
+
+    /**
+     * 单证表新增
+     */
+    void add(DocumentsDto documentsDto);
+
+    /**
+     * 单证表编辑
+     */
+    void edit(DocumentsDto documentsDto);
+
+    /**
+     * 单证表删除
+     */
+    void delete(Long id);
+
+}

+ 37 - 0
hx-sale/src/main/java/com/fjhx/sale/service/documents/DocumentsTransportService.java

@@ -0,0 +1,37 @@
+package com.fjhx.sale.service.documents;
+
+import com.fjhx.sale.entity.documents.dto.DocumentsTransportDto;
+import com.fjhx.sale.entity.documents.po.DocumentsTransport;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsTransportVo;
+import com.fjhx.sale.entity.documents.dto.DocumentsTransportSelectDto;
+
+
+/**
+ * <p>
+ * 单证-货运表 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+public interface DocumentsTransportService extends BaseService<DocumentsTransport> {
+
+    /**
+     * 单证-货运表分页
+     */
+    Page<DocumentsTransportVo> getPage(DocumentsTransportSelectDto dto);
+
+    /**
+     * 单证-货运表明细
+     */
+    DocumentsTransportVo detail(Long id);
+
+    /**
+     * 单证-货运添加
+     * @param dto
+     * @return
+     */
+    void add(DocumentsTransportDto dto);
+}

+ 33 - 0
hx-sale/src/main/java/com/fjhx/sale/service/documents/impl/DocumentsProductServiceImpl.java

@@ -0,0 +1,33 @@
+package com.fjhx.sale.service.documents.impl;
+
+import com.fjhx.sale.entity.documents.po.DocumentsProduct;
+import com.fjhx.sale.mapper.documents.DocumentsProductMapper;
+import com.fjhx.sale.service.documents.DocumentsProductService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsProductVo;
+import com.fjhx.sale.entity.documents.dto.DocumentsProductSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+
+
+/**
+ * <p>
+ * 单证-产品表 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Service
+public class DocumentsProductServiceImpl extends ServiceImpl<DocumentsProductMapper, DocumentsProduct> implements DocumentsProductService {
+
+    @Override
+    public Page<DocumentsProductVo> getPage(DocumentsProductSelectDto dto) {
+        IWrapper<DocumentsProduct> wrapper = getWrapper();
+        wrapper.orderByDesc("dp", DocumentsProduct::getId);
+        Page<DocumentsProductVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+}

+ 120 - 0
hx-sale/src/main/java/com/fjhx/sale/service/documents/impl/DocumentsServiceImpl.java

@@ -0,0 +1,120 @@
+package com.fjhx.sale.service.documents.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.common.entity.corporation.po.Corporation;
+import com.fjhx.common.service.corporation.CorporationService;
+import com.fjhx.sale.entity.documents.po.Documents;
+import com.fjhx.sale.entity.documents.po.DocumentsProduct;
+import com.fjhx.sale.entity.documents.po.DocumentsTransport;
+import com.fjhx.sale.mapper.documents.DocumentsMapper;
+import com.fjhx.sale.service.documents.DocumentsProductService;
+import com.fjhx.sale.service.documents.DocumentsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.sale.service.documents.DocumentsTransportService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsVo;
+import com.fjhx.sale.entity.documents.dto.DocumentsSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.sale.entity.documents.dto.DocumentsDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 单证表 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Service
+public class DocumentsServiceImpl extends ServiceImpl<DocumentsMapper, Documents> implements DocumentsService {
+    @Autowired
+    private DocumentsProductService documentsProductService;
+
+    @Autowired
+    private DocumentsTransportService documentsTransportService;
+
+    @Autowired
+    private CorporationService corporationService;
+    /**
+     * 单证表分页
+     */
+    @Override
+    public Page<DocumentsVo> getPage(DocumentsSelectDto dto) {
+        QueryWrapper<Object> wrapper = Wrappers.query();
+        Page<DocumentsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        //切换数据源
+        DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
+        //查询公司名称信息
+        List<Corporation> corporationList = corporationService.list();
+        Map<Long, List<Corporation>> corporationMap = corporationList.stream().collect(Collectors.groupingBy(Corporation::getId));
+        DynamicDataSourceContextHolder.poll();
+
+        List<DocumentsVo> records = page.getRecords();
+        if (ObjectUtil.isNotEmpty(records)){
+            return page;
+        }
+        for (DocumentsVo record : records) {
+            //赋值归属公司名称
+            List<Corporation> corporationList1 = corporationMap.get(record.getBuyCorporationId());
+            record.setBuyCorporationName(corporationList1.get(0).getName());
+
+            //赋值客户名称
+            List<Corporation> corporationList2 = corporationMap.get(record.getSellCorporationId());
+            record.setSellCorporationId(corporationList2.get(0).getName());
+        }
+        return page;
+    }
+
+    @Override
+    public DocumentsVo detail(Long id) {
+        Documents Documents = this.getById(id);
+        DocumentsVo result = BeanUtil.toBean(Documents, DocumentsVo.class);
+        return result;
+    }
+
+    /**
+     * 单证表新增
+     */
+    @Override
+    public void add(DocumentsDto documentsDto) {
+        //添加单证表的数据
+        this.save(documentsDto);
+
+        //添加单证-产品信息
+        List<DocumentsProduct> documentsProductList = documentsDto.getDocumentsProductList();
+        documentsProductList.forEach(documentsProduct -> documentsProduct.setDocumentsId(documentsDto.getId()));
+        documentsProductService.saveBatch(documentsProductList);
+    }
+
+    @Override
+    public void edit(DocumentsDto documentsDto) {
+        this.updateById(documentsDto);
+    }
+
+    /**
+     * 单证表删除
+     */
+    @Override
+    public void delete(Long id) {
+        //删除单证表的数据
+        this.removeById(id);
+        //删除单证-产品表的数据
+        documentsProductService.remove(Wrappers.<DocumentsProduct>lambdaQuery().eq(DocumentsProduct::getDocumentsId,id));
+
+        //删除单证-货运表的数据
+        documentsTransportService.remove(Wrappers.<DocumentsTransport>lambdaQuery().eq(DocumentsTransport::getDocumentsId,id));
+    }
+
+}

+ 58 - 0
hx-sale/src/main/java/com/fjhx/sale/service/documents/impl/DocumentsTransportServiceImpl.java

@@ -0,0 +1,58 @@
+package com.fjhx.sale.service.documents.impl;
+
+import com.fjhx.file.utils.ObsFileUtil;
+import com.fjhx.sale.entity.documents.dto.DocumentsTransportDto;
+import com.fjhx.sale.entity.documents.po.DocumentsTransport;
+import com.fjhx.sale.mapper.documents.DocumentsTransportMapper;
+import com.fjhx.sale.service.documents.DocumentsTransportService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.documents.vo.DocumentsTransportVo;
+import com.fjhx.sale.entity.documents.dto.DocumentsTransportSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 单证-货运表 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Service
+public class DocumentsTransportServiceImpl extends ServiceImpl<DocumentsTransportMapper, DocumentsTransport> implements DocumentsTransportService {
+
+    @Override
+    public Page<DocumentsTransportVo> getPage(DocumentsTransportSelectDto dto) {
+        IWrapper<DocumentsTransport> wrapper = getWrapper();
+        wrapper.orderByDesc("dt", DocumentsTransport::getId);
+        Page<DocumentsTransportVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public DocumentsTransportVo detail(Long id) {
+        DocumentsTransport DocumentsTransport = this.getById(id);
+        DocumentsTransportVo result = BeanUtil.toBean(DocumentsTransport, DocumentsTransportVo.class);
+        return result;
+    }
+
+    /**
+     * 单证-货运添加
+     * @param dto
+     * @return
+     */
+    @Override
+    public void add(DocumentsTransportDto dto) {
+       //添加单证货运表的数据
+        baseMapper.insert(dto);
+
+        //添加附件信息
+        ObsFileUtil.saveFile(dto.getFileList(),dto.getId());
+
+    }
+
+}

+ 25 - 0
hx-sale/src/main/resources/mapper/documents/DocumentsMapper.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.sale.mapper.documents.DocumentsMapper">
+    <select id="getPage" resultType="com.fjhx.sale.entity.documents.vo.DocumentsVo">
+        select
+            d.id,
+            d.contract_id,
+            d.remark,
+            d.country_id,
+            d.update_time,
+            d.update_user,
+            d.create_user,
+            d.create_time,
+            c.sell_corporation_id sellCorporationId,
+            c.buy_corporation_id buyCorporationId,
+            c.code,
+            dp.accept_carriage acceptCarriage,
+            dp.code  acceptCode
+        from documents d
+                 left join contract c on d.contract_id  = c.id
+                 left join documents_transport dp on d.id = dp.documents_id
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 22 - 0
hx-sale/src/main/resources/mapper/documents/DocumentsProductMapper.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.sale.mapper.documents.DocumentsProductMapper">
+    <select id="getPage" resultType="com.fjhx.sale.entity.documents.vo.DocumentsProductVo">
+        select
+            dp.id,
+            dp.product_id,
+            dp.documents_id,
+            dp.describe,
+            dp.sub_describe,
+            dp.customs_code,
+            dp.price,
+            dp.quantity,
+            dp.update_time,
+            dp.update_user,
+            dp.create_user,
+            dp.create_time
+        from documents_product dp
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 20 - 0
hx-sale/src/main/resources/mapper/documents/DocumentsTransportMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.sale.mapper.documents.DocumentsTransportMapper">
+    <select id="getPage" resultType="com.fjhx.sale.entity.documents.vo.DocumentsTransportVo">
+        select
+            dt.id,
+            dt.documents_id,
+            dt.accept_carriage,
+            dt.departure_time,
+            dt.code,
+            dt.remark,
+            dt.update_time,
+            dt.update_user,
+            dt.create_user,
+            dt.create_time
+        from documents_transport dt
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 4 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/dto/StockWaitDto.java

@@ -5,6 +5,7 @@ import com.fjhx.wms.entity.stock.po.StockWaitDetails;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -27,4 +28,7 @@ public class StockWaitDto extends StockWait {
      */
     private List<StockWaitDetails> stockWaitDetailsList;
 
+    /**待入库数量*/
+    private BigDecimal quantity;
+
 }

+ 14 - 14
hx-wms/src/main/java/com/fjhx/wms/entity/stock/po/StockWait.java

@@ -42,20 +42,20 @@ public class StockWait extends BasePo {
      */
     private String businessCode;
 
-    /**
-     * 商品id
-     */
-    private Long productId;
-
-    /**
-     * 数量
-     */
-    private BigDecimal quantity;
-
-    /**
-     * 已入库数量
-     */
-    private BigDecimal receiptQuantity;
+//    /**
+//     * 商品id
+//     */
+//    private Long productId;
+//
+//    /**
+//     * 数量
+//     */
+//    private BigDecimal quantity;
+//
+//    /**
+//     * 已入库数量
+//     */
+//    private BigDecimal receiptQuantity;
 
     /**
      * 入库状态 0待入库 1部分入库 2入库完成

+ 39 - 2
hx-wms/src/main/java/com/fjhx/wms/entity/stock/vo/StockWaitVo.java

@@ -1,10 +1,10 @@
 package com.fjhx.wms.entity.stock.vo;
 
 import com.fjhx.wms.entity.stock.po.StockWait;
-import com.fjhx.wms.entity.stock.po.StockWaitDetails;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -18,16 +18,53 @@ import java.util.List;
 public class StockWaitVo extends StockWait {
 
     /**
+     * 商品id
+     */
+    private Long productId;
+
+    /**
+     * 数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * 已入库数量
+     */
+    private BigDecimal receiptQuantity;
+
+    /**
      * 商品名称
      */
     private String productName;
 
     /**
+     * 产品编码
+     */
+    private String productCode;
+
+    /**
+     * 产品类型
+     */
+    private Integer productType;
+
+    /**
+     * 规格型号
+     */
+    private String productSpec;
+
+    /**
+     * 单位
+     */
+    private String productUnit;
+
+    /**
      * 待入库明细
      */
     private List<StockWaitDetailsVo> stockWaitDetailsList;
 
-    /**操作人名称*/
+    /**
+     * 操作人名称
+     */
     private String operatorName;
 
 }

+ 21 - 20
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -69,18 +69,14 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         Page<StockWaitVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
 
         List<StockWaitVo> records = page.getRecords();
-        List<Long> productIds = records.stream().map(StockWaitVo::getProductId).collect(Collectors.toList());
-        if (ObjectUtil.isNotEmpty(productIds)) {
-            List<ProductInfo> productInfos = productInfoService.listByIds(productIds);
-            Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.groupingBy(ProductInfo::getId,
-                    Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
-            for (StockWaitVo stockWaitVo : records) {
-                ProductInfo productInfo = productInfoMap.get(stockWaitVo.getProductId());
-                if (ObjectUtil.isNotEmpty(productInfo)) {
-                    stockWaitVo.setProductName(productInfo.getName());
-                }
-            }
-        }
+        // 赋值产品属性
+        productInfoService.attributeAssign(records, StockWaitVo::getProductId, (item, productInfo) -> {
+            item.setProductCode(productInfo.getCode());
+            item.setProductUnit(productInfo.getUnit());
+            item.setProductType(productInfo.getType());
+            item.setProductName(productInfo.getName());
+            item.setProductSpec(productInfo.getSpec());
+        });
 
         return page;
     }
@@ -131,10 +127,12 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
 
     @Override
     public StockWaitVo detail(Long id) {
-        StockWait stockWait = this.getById(id);
+        StockWaitDetails stockWaitDetails = stockWaitDetailsService.getById(id);
+        StockWait stockWait = this.getById(stockWaitDetails.getStockWaitId());
         StockWaitVo result = BeanUtil.toBean(stockWait, StockWaitVo.class);
-        ProductInfo byId = productInfoService.getById(result.getProductId());
+        ProductInfo byId = productInfoService.getById(stockWaitDetails.getProductId());
         result.setProductName(byId.getName());
+        result.setQuantity(stockWaitDetails.getQuantity());
         return result;
     }
 
@@ -168,13 +166,16 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(StockWaitDto stockWaitDto) {
-        //更新已入库数量
-        StockWait byId = getById(stockWaitDto.getId());
-        byId.setReceiptQuantity(byId.getReceiptQuantity().add(stockWaitDto.getQuantity()));
-        if (byId.getReceiptQuantity().compareTo(byId.getQuantity()) > 0) {
+        //更新已入库数量 根据明细id
+//        StockWait byId = getById(stockWaitDto.getId());
+        StockWaitDetails stockWaitDetails = stockWaitDetailsService.getById(stockWaitDto.getId());
+        stockWaitDetails.setReceiptQuantity(stockWaitDetails.getReceiptQuantity().add(stockWaitDto.getQuantity()));
+        if (stockWaitDetails.getReceiptQuantity().compareTo(stockWaitDetails.getQuantity()) > 0) {
             throw new ServiceException("入库数量+已入库数量不能大于待采购数量");
         }
-        updateById(byId);
+//        updateById(byId);
+        stockWaitDetailsService.updateById(stockWaitDetails);
+        StockWait byId = getById(stockWaitDetails.getStockWaitId());
         //创建出入库记录
         StockJournal stockJournal = new StockJournal();
         stockJournal.setType(byId.getType() == 1 ? 4 : 5);
@@ -186,7 +187,7 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         //操作库存
         Stock stock = new Stock();
         stock.setQuantity(stockWaitDto.getQuantity());
-        stock.setProductId(byId.getProductId());
+        stock.setProductId(stockWaitDetails.getProductId());
         List<StockJournalDetails> stockJournalDetailsList = stockService.ModifyInventory(stockJournal.getId(), byId.getType(), Arrays.asList(stock), stockWaitDto.getWarehouseId());
         //保存出入库明细
         stockJournalDetailsService.saveBatch(stockJournalDetailsList);

+ 10 - 7
hx-wms/src/main/resources/mapper/stock/StockWaitMapper.xml

@@ -2,22 +2,25 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.wms.mapper.stock.StockWaitMapper">
     <select id="getPage" resultType="com.fjhx.wms.entity.stock.vo.StockWaitVo">
-        select
-            sw.id,
+        SELECT
+            swd.id,
             sw.type,
             sw.business_id,
             sw.business_code,
             sw.business_type,
-            sw.product_id,
-            sw.quantity,
-            sw.receipt_quantity,
-            sw.status,
+            swd.stock_wait_id,
+            swd.product_id,
+            swd.quantity,
+            swd.receipt_quantity,
+            sw.`status`,
             sw.create_user,
             sw.create_time,
             sw.update_user,
             sw.update_time,
             sw.victoriatourist_json
-        from stock_wait sw
+        FROM
+            stock_wait sw
+                JOIN stock_wait_details swd ON swd.stock_wait_id = sw.id
             ${ew.customSqlSegment}
     </select>