yzc пре 1 година
родитељ
комит
18dfdf3c94

+ 2 - 1
hx-common/src/main/java/com/fjhx/common/enums/PushBusinessTypeEnum.java

@@ -45,7 +45,8 @@ public enum PushBusinessTypeEnum {
     /**
      * 新报价单
      */
-    NEW_QUOTATION(8);
+    NEW_QUOTATION(8),
+    CONTRACT_PRODUCTION_TAG_UPDATE(9);
 
     private final int type;
 

+ 14 - 6
hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractController.java

@@ -51,7 +51,7 @@ public class ContractController {
      * 外销合同表头部统计
      */
     @PostMapping("/getHeadStatistic")
-    public Map<String,Object> getHeadStatistic(@RequestBody ContractSelectDto dto) {
+    public Map<String, Object> getHeadStatistic(@RequestBody ContractSelectDto dto) {
         return contractService.getHeadStatistic(dto);
     }
 
@@ -133,10 +133,10 @@ public class ContractController {
     @PostMapping("/getContractPdfInfo")
     public ContractPdfInfoVo getContractPdfInfo(@RequestBody ContractDto dto) {
         Long id;
-        if(StringUtils.isNotEmpty(dto.getCode())){
-            Contract contract = contractService.getOne(Wrappers.<Contract>query().lambda().eq(Contract::getCode,dto.getCode()).last("limit 1"));
-            id = ObjectUtils.isEmpty(contract)?0:contract.getId();
-        }else{
+        if (StringUtils.isNotEmpty(dto.getCode())) {
+            Contract contract = contractService.getOne(Wrappers.<Contract>query().lambda().eq(Contract::getCode, dto.getCode()).last("limit 1"));
+            id = ObjectUtils.isEmpty(contract) ? 0 : contract.getId();
+        } else {
             id = dto.getId();
         }
         return contractService.getContractPdfInfo(id);
@@ -229,7 +229,7 @@ public class ContractController {
      * 利润预算
      */
     @PostMapping("/getProfitBudgetHeadStatistic")
-    public Map<String,Object> getProfitBudgetHeadStatistic(@RequestBody ContractSelectDto dto) {
+    public Map<String, Object> getProfitBudgetHeadStatistic(@RequestBody ContractSelectDto dto) {
         return contractService.getProfitBudgetHeadStatistic(dto);
     }
 
@@ -329,4 +329,12 @@ public class ContractController {
         return contractService.getProductPriceInfo(dto);
     }
 
+    /**
+     * 产品价格提示
+     */
+    @PostMapping("/updateProductionTag")
+    void updateProductionTag(@RequestBody ContractDto dto) {
+        contractService.updateProductionTag(dto);
+    }
+
 }

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/Contract.java

@@ -439,4 +439,9 @@ public class Contract extends BasePo {
      */
     private Long quotationId;
 
+    /**
+     * 生产标签
+     */
+    private String prodTag;
+
 }

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

@@ -235,4 +235,10 @@ public interface ContractService extends BaseService<Contract> {
     Page<ProductAnalysisBo> productAnalysis(ContractSelectDto dto);
 
     Map<Long, Map<String, Object>> getProductPriceInfo(ProductInfoDto dto);
+
+
+    /**
+     * 修改合同生产标签
+     */
+    void updateProductionTag(ContractDto dto);
 }

+ 42 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -27,6 +27,7 @@ import com.fjhx.common.entity.contract.po.ContractTemplate;
 import com.fjhx.common.entity.corporation.po.Corporation;
 import com.fjhx.common.entity.documentary.bo.DocumentaryData;
 import com.fjhx.common.enums.FlowStatusEnum1;
+import com.fjhx.common.enums.PushBusinessTypeEnum;
 import com.fjhx.common.service.contract.ContractTemplateService;
 import com.fjhx.common.service.corporation.CorporationService;
 import com.fjhx.common.service.documentary.GetDocumentaryBusinessTemplate;
@@ -73,10 +74,13 @@ import com.fjhx.sale.service.claim.ClaimContractService;
 import com.fjhx.sale.service.contract.*;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProductService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseService;
+import com.fjhx.socket.core.PushTypeEnum;
+import com.fjhx.socket.core.WebSocketPush;
 import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
 import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
 import com.fjhx.tenant.service.dict.DictTenantDataService;
+import com.fjhx.tenant.utils.DictUtils;
 import com.ruoyi.common.annotation.TenantIgnore;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.core.domain.BasePo;
@@ -100,6 +104,7 @@ import org.springframework.security.core.context.SecurityContext;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -2685,4 +2690,41 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         return reData;
     }
 
+    /**
+     * 修改合同生产标签
+     */
+    @DSTransactional
+    @Override
+    public void updateProductionTag(@RequestBody ContractDto dto) {
+        Contract contract = this.getById(dto.getId());
+        if (ObjectUtil.isEmpty(contract)) {
+            throw new ServiceException("查询不到合同信息!");
+        }
+        this.update(q -> q
+                .eq(Contract::getId, dto.getId())
+                .set(Contract::getProdTag, dto.getProdTag())
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+                .set(BasePo::getUpdateTime, new Date())
+        );
+
+        Map<String, String> dictMap = DictUtils.getDictMap("contract_prod_tag");
+        String prodTag = contract.getProdTag();
+        prodTag = ObjectUtil.isEmpty(prodTag) ? "" : prodTag;
+        String[] split = prodTag.split(",");
+        List<String> arr = new ArrayList<>();
+        for (String s : split) {
+            String s1 = dictMap.get(s);
+            if (ObjectUtil.isNotEmpty(s1)) {
+                arr.add(s1);
+            }
+        }
+        String collect = arr.stream().collect(Collectors.joining(","));
+        //消息推送 给归属公司的 总经理
+        JSONObject msg = new JSONObject();
+        msg.put("msg", String.format("合同【%s】发生生产标签变更,变更如下:%s", contract.getCode(), collect));
+        msg.put("business_id", dto.getId());
+        List<Long> generalManagerIds = UserUtil.getUserIdsByRoleKey("general_manager", dto.getCompanyId());
+        WebSocketPush.byUsers(PushTypeEnum.MESSAGE, generalManagerIds, msg.toString(), PushBusinessTypeEnum.CONTRACT_PRODUCTION_TAG_UPDATE.getType());
+    }
+
 }