Explorar o código

装箱 单证修改

yzc hai 1 ano
pai
achega
08aa8cf8ac

+ 8 - 0
hx-common/src/main/java/com/fjhx/common/enums/CodingRuleEnum.java

@@ -84,6 +84,14 @@ public enum CodingRuleEnum {
             getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
             getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
     )),
+    /**
+     * 装箱出货
+     */
+    PACK("pack", "装箱出货", Arrays.asList(
+            getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PACK-"),
+            getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
+            getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
+    )),
     ;
 
 

+ 13 - 3
hx-mes/src/main/java/com/fjhx/mes/service/SaleServiceImpl.java

@@ -1,12 +1,15 @@
 package com.fjhx.mes.service;
 
 import com.fjhx.mes.entity.production.dto.ProductionOrderDto;
+import com.fjhx.mes.entity.production.po.ProductionOrder;
 import com.fjhx.mes.service.production.ProduceOrderService;
 import com.fjhx.sale.service.SaleService;
+import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
+import java.util.List;
 
 @Service
 public class SaleServiceImpl implements SaleService {
@@ -14,9 +17,6 @@ public class SaleServiceImpl implements SaleService {
     @Autowired
     private ProduceOrderService produceOrderService;
 
-    /**
-     * 直接生产
-     */
     @Override
     public void directProd(Long contractId, Date deliveryPeriod, Long produceCompanyId) {
         //下发生产
@@ -31,4 +31,14 @@ public class SaleServiceImpl implements SaleService {
         produceOrderService.deliveryConfirm(produceOrderDto);
     }
 
+    @Override
+    public void updateProdOrderStatusByContractIds(List<Long> contractIds, Integer status) {
+        produceOrderService.update(q -> q
+                .in(ProductionOrder::getContractId, contractIds)
+                .set(ProductionOrder::getProduceStatus, status)
+                .set(ProductionOrder::getUpdateUser, SecurityUtils.getUserId())
+                .set(ProductionOrder::getUpdateTime, new Date())
+        );
+    }
+
 }

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/pack/dto/PackDetailSelectDto.java

@@ -19,4 +19,9 @@ public class PackDetailSelectDto extends BaseSelectDto {
      * 出货状态 0未出货 1出货
      */
     private Integer shipmentStatus;
+
+    /**
+     * 数据归属公司
+     */
+    private Long companyId;
 }

+ 7 - 4
hx-sale/src/main/java/com/fjhx/sale/entity/pack/po/Pack.java

@@ -3,12 +3,11 @@ package com.fjhx.sale.entity.pack.po;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.domain.BasePo;
-
-import java.util.List;
-
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * <p>
  * 装箱出货表
@@ -43,9 +42,13 @@ public class Pack extends BasePo {
     private String remark;
 
     /**
+     * 数据归属公司
+     */
+    private Long companyId;
+
+    /**
      * 装箱明细列表
      */
     @TableField(exist = false)
     private List<PackDetail> packDetailList;
-
 }

+ 9 - 4
hx-sale/src/main/java/com/fjhx/sale/entity/pack/po/PackDetail.java

@@ -1,15 +1,15 @@
 package com.fjhx.sale.entity.pack.po;
 
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
-import lombok.Getter;
-import lombok.Setter;
-
 /**
  * <p>
  * 装箱出货明细表	
@@ -99,6 +99,11 @@ public class PackDetail extends BasePo {
     private String remark;
 
     /**
+     * 数据归属公司
+     */
+    private Long companyId;
+
+    /**
      * 装箱明细自定义货物列表
      */
     @TableField(exist = false)

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/service/SaleService.java

@@ -1,6 +1,7 @@
 package com.fjhx.sale.service;
 
 import java.util.Date;
+import java.util.List;
 
 public interface SaleService {
 
@@ -8,4 +9,9 @@ public interface SaleService {
      * 直接生产
      */
     void directProd(Long contractId, Date deliveryPeriod, Long produceCompanyId);
+
+    /**
+     * 根据合同id批量修改生产状态
+     */
+    void updateProdOrderStatusByContractIds(List<Long> contractIds, Integer status);
 }

+ 19 - 18
hx-sale/src/main/java/com/fjhx/sale/service/pack/impl/PackDetailServiceImpl.java

@@ -8,10 +8,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.utils.Assert;
 import com.fjhx.customer.service.customer.CustomerService;
-import com.fjhx.sale.entity.contract.po.Contract;
-import com.fjhx.sale.entity.documents.dto.DocumentsSelectDto;
-import com.fjhx.sale.entity.documents.po.Documents;
-import com.fjhx.sale.entity.documents.vo.DocumentsVo;
 import com.fjhx.sale.entity.pack.dto.PackDetailDto;
 import com.fjhx.sale.entity.pack.dto.PackDetailSelectDto;
 import com.fjhx.sale.entity.pack.enums.PackShipmentStatusEnum;
@@ -21,13 +17,11 @@ import com.fjhx.sale.entity.pack.vo.PackDetailVo;
 import com.fjhx.sale.mapper.pack.PackDetailMapper;
 import com.fjhx.sale.service.pack.PackDetailService;
 import com.fjhx.sale.service.pack.PackShipmentService;
-import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.service.ISysUserService;
-import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -66,20 +60,27 @@ public class PackDetailServiceImpl extends ServiceImpl<PackDetailMapper, PackDet
     @Override
     public Page<PackDetailVo> getPage(PackDetailSelectDto dto) {
         IWrapper<PackDetail> wrapper = getWrapper();
-        SysUser sysUser = UserUtil.getUserInfo();
-        if(StringUtils.isEmpty(sysUser.getUserCode())){//不是业务员看所有
-            return pageCommon(dto, wrapper);
-        }else{//是业务员
-            List<Long> authIdList = customerService.getAuthIdList();
-            if (authIdList.size() == 0) {
-                return new Page<>();
-            }
-            wrapper.in("pd.customerIds", authIdList);
-            return pageCommon(dto, wrapper);
-        }
+
+        //权限过滤:装箱出货
+        wrapper.in("pd.company_id", SecurityUtils.getCompanyIds());
+        wrapper.eq("pd.company_id", dto.getCompanyId());
+
+        return pageCommon(dto, wrapper);
+
+//        SysUser sysUser = UserUtil.getUserInfo();
+//        if(StringUtils.isEmpty(sysUser.getUserCode())){//不是业务员看所有
+//            return pageCommon(dto, wrapper);
+//        }else{//是业务员
+//            List<Long> authIdList = customerService.getAuthIdList();
+//            if (authIdList.size() == 0) {
+//                return new Page<>();
+//            }
+//            wrapper.in("pd.customerIds", authIdList);
+//            return pageCommon(dto, wrapper);
+//        }
     }
 
-    public Page<PackDetailVo> pageCommon(PackDetailSelectDto dto, IWrapper<PackDetail> wrapper){
+    public Page<PackDetailVo> pageCommon(PackDetailSelectDto dto, IWrapper<PackDetail> wrapper) {
         if (ObjectUtil.isNotEmpty(dto.getShipmentStatus())) {
             wrapper.eq("pd", PackDetailVo::getShipmentStatus, dto.getShipmentStatus());
         }

+ 21 - 7
hx-sale/src/main/java/com/fjhx/sale/service/pack/impl/PackServiceImpl.java

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.corporation.po.Corporation;
+import com.fjhx.common.enums.CodingRuleEnum;
 import com.fjhx.common.enums.PushBusinessTypeEnum;
 import com.fjhx.common.service.coding.CodingRuleService;
 import com.fjhx.common.service.corporation.CorporationService;
@@ -30,6 +31,7 @@ import com.fjhx.sale.entity.pack.vo.PackDetailProductVo;
 import com.fjhx.sale.entity.pack.vo.PackDetailVo;
 import com.fjhx.sale.entity.pack.vo.PackVo;
 import com.fjhx.sale.mapper.pack.PackMapper;
+import com.fjhx.sale.service.SaleService;
 import com.fjhx.sale.service.contract.ContractService;
 import com.fjhx.sale.service.documents.DocumentsPdfService;
 import com.fjhx.sale.service.documents.DocumentsProductService;
@@ -46,10 +48,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -91,6 +90,8 @@ public class PackServiceImpl extends ServiceImpl<PackMapper, Pack> implements Pa
     private CorporationService corporationService;
     @Autowired
     private FileInfoService fileInfoService;
+    @Autowired
+    private SaleService saleService;
 
     @Override
     public Page<PackVo> getPage(PackSelectDto dto) {
@@ -115,17 +116,25 @@ public class PackServiceImpl extends ServiceImpl<PackMapper, Pack> implements Pa
     @Override
     @DSTransactional
     public void add(Pack pack) {
-        if (StringUtils.isEmpty(pack.getContractIds())) {
+        String contractIds = pack.getContractIds();
+        if (StringUtils.isEmpty(contractIds)) {
             throw new ServiceException("参数异常");
         }
-//        pack.setCode(CodeEnum.PACK.getCode());
-//        pack.setCode(codingRuleService.createCode(CodingRuleEnum.PACK.getKey(), null));
+
+        //赋值归属公司
+        if (ObjectUtil.isEmpty(pack.getCompanyId())) {
+            pack.setCompanyId(SecurityUtils.getCompanyId());
+        }
+
+        pack.setCode(codingRuleService.createCode(CodingRuleEnum.PACK.getKey(), pack.getCustomerId()));
         this.save(pack);
         List<PackDetail> packDetailList = pack.getPackDetailList();
         if (CollectionUtils.isNotEmpty(packDetailList)) {
             List<PackDetailProduct> packDetailProductList = new ArrayList<>();
             List<PackDetailGoods> packDetailGoodsList = new ArrayList<>();
             for (PackDetail p : packDetailList) {
+                p.setCompanyId(pack.getCompanyId());
+
                 p.setPackId(pack.getId());
                 p.setId(IdWorker.getId());
                 //处理装箱产品明细
@@ -137,6 +146,11 @@ public class PackServiceImpl extends ServiceImpl<PackMapper, Pack> implements Pa
             packDetailGoodsService.saveBatch(packDetailGoodsList);
             packDetailProductService.saveBatch(packDetailProductList);
         }
+
+        //装箱提交后,把相关生产订单的状态改成 出库中
+        List<Long> contractIdList = Arrays.asList(contractIds.split(",")).stream()
+                .map(s -> Long.parseLong(s.trim())).collect(Collectors.toList());
+        saleService.updateProdOrderStatusByContractIds(contractIdList, 5);
     }
 
     /**

+ 5 - 1
hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml

@@ -174,11 +174,15 @@
         FROM
         contract t1
         LEFT JOIN contract_product t2 ON t1.id = t2.contract_id
+        LEFT JOIN production_order po ON po.contract_id = t1.id
         <where>
+            po.produce_status = 2
             <if test="customerId neq null and customerId neq '' ">
-                buy_corporation_id = #{customerId}
+                AND buy_corporation_id = #{customerId}
             </if>
         </where>
+        GROUP BY
+        t2.id
         ) t1
         WHERE t1.sumPackQuantity &lt; t1.cpQuantity
         <if test="contractIds neq null and contractIds.size() > 0">

+ 9 - 6
hx-sale/src/main/resources/mapper/pack/PackDetailMapper.xml

@@ -21,17 +21,20 @@
                       WHERE FIND_IN_SET(t2.pack_detail_id,GROUP_CONCAT( t1.id ))) AS codeAPName,
                      (SELECT GROUP_CONCAT( CONCAT(
                                bom_volume,  ",", box_long, ",", box_wide, ",", box_high, ",", rough_weight, ",", net_weight,",",pack_quantity
-                         ) SEPARATOR &apos;_&apos;) FROM pack_detail WHERE 	FIND_IN_SET(id,GROUP_CONCAT( t1.id )) ) AS dataJsonList,
-                     sum(t1.pack_quantity)                                 packQuantity,
-                     sum( t1.net_weight*t1.pack_quantity )                 netWeight,
-                     sum( t1.rough_weight*t1.pack_quantity )               roughWeight,
+                         ) SEPARATOR &apos;_&apos;)
+                      FROM pack_detail
+                      WHERE FIND_IN_SET(id, GROUP_CONCAT(t1.id)))                 AS dataJsonList,
+                     sum(t1.pack_quantity)                                           packQuantity,
+                     sum(t1.net_weight * t1.pack_quantity)                           netWeight,
+                     sum(t1.rough_weight * t1.pack_quantity)                         roughWeight,
                      t1.box_long,
                      t1.box_wide,
                      t1.box_high,
-                     sum( t1.bom_volume*t1.pack_quantity )                 bomVolume,
+                     sum(t1.bom_volume * t1.pack_quantity)                           bomVolume,
                      t1.shipment_status,
                      t1.shipment_time,
-                     t1.contract_ids
+                     t1.contract_ids,
+                     t1.company_id
               FROM pack_detail t1
               GROUP BY t1.pack_id
               ORDER BY t1.create_time desc) pd

+ 2 - 2
hx-sale/src/main/resources/mapper/pack/PackShipmentMapper.xml

@@ -39,9 +39,9 @@
         UNION
         SELECT
         dg.id AS businessId,
-        json_unquote( pi.standard_json -> '$.englishName' ) remark,
+        pi.name_english as remark,
         dg.product_name AS subDescription,
-        json_unquote ( pi.standard_json -> '$.customsCode' ) AS customsCode,
+        pi.hs_code AS customsCode,
         dg.quantity,
         cp.price AS price,
         20 AS type