Ver Fonte

交期确认

yzc há 1 ano atrás
pai
commit
5c698b451a

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

@@ -46,8 +46,12 @@ public enum PushBusinessTypeEnum {
      * 新报价单
      */
     NEW_QUOTATION(8),
-    CONTRACT_PRODUCTION_TAG_UPDATE(9);
-
+    /**
+     * 合同标签变更
+     */
+    CONTRACT_PRODUCTION_TAG_UPDATE(9),
+    NEW_PRODUCTION_ORDER(10),
+    PRODUCTION_ORDER_REJECT(11);
     private final int type;
 
 }

+ 16 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProduceOrderController.java

@@ -70,4 +70,20 @@ public class ProduceOrderController {
     public void editProduceTime(@RequestBody ProduceOrderSelectDto dto) {
         produceOrderService.editProduceTime(dto);
     }
+
+    /**
+     * 交期确认
+     */
+    @PostMapping("/deliveryConfirm")
+    public void deliveryConfirm(@RequestBody ProductionOrderDto dto) {
+        produceOrderService.deliveryConfirm(dto);
+    }
+
+    /**
+     * 交期修改
+     */
+    @PostMapping("/editDeliveryPeriod")
+    public void editDeliveryPeriod(@RequestBody ProductionOrderDto dto) {
+        produceOrderService.editDeliveryPeriod(dto);
+    }
 }

+ 10 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionOrderDto.java

@@ -14,4 +14,14 @@ import lombok.Setter;
 @Setter
 public class ProductionOrderDto extends ProductionOrder {
 
+    /**
+     * 1已确认 2驳回
+     */
+    private Integer confirmStatus;
+
+    /**
+     * 驳回备注
+     */
+    private String rejectRemark;
+
 }

+ 12 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/ProduceOrderService.java

@@ -44,4 +44,16 @@ public interface ProduceOrderService extends BaseService<ProductionOrder> {
      * 修改投产时间
      */
     void editProduceTime(ProduceOrderSelectDto dto);
+
+    /**
+     * 交期确认
+     */
+    void deliveryConfirm(ProductionOrderDto dto);
+
+    /**
+     * 修改交期
+     *
+     * @param dto
+     */
+    void editDeliveryPeriod(ProductionOrderDto dto);
 }

+ 47 - 9
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderServiceImpl.java

@@ -241,6 +241,7 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
                 .eq(Contract::getId, contractId)
                 .set(Contract::getOrderDistributeStatus, 1)
                 .set(Contract::getOrderDistributeTime, new Date())
+                .set(Contract::getRejectRemark, null)
                 .set(BasePo::getUpdateTime, new Date())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );
@@ -249,11 +250,6 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
         produceOrderDto.setProduceStatus(0);
         this.save(produceOrderDto);
 
-        //创建待采购
-        createMaterialWaitPurchase(produceOrderDto);
-
-        //创建生产任务
-        createOrderDetails(produceOrderDto);
 
         //消息推送:给归属公司的 子公司总经理
         String title = String.format("您有新的生产订单,订单号【%s】,请及时跟进。", produceOrderDto.getCode());
@@ -261,7 +257,7 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
         msg.put("business_id", produceOrderDto.getId());
         List<Long> generalManagerIds = UserUtil.getUserIdsByRoleKey("subsidiary_gm", companyId);
         for (Long generalManagerId : generalManagerIds) {
-            WebSocketPush.byUser(PushTypeEnum.MESSAGE, generalManagerId, title, PushBusinessTypeEnum.CONTRACT_PRODUCTION_TAG_UPDATE.getType(), msg.toString());
+            WebSocketPush.byUser(PushTypeEnum.MESSAGE, generalManagerId, title, PushBusinessTypeEnum.NEW_PRODUCTION_ORDER.getType(), msg.toString());
         }
     }
 
@@ -315,10 +311,10 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
     /**
      * 创建合同产品 物料待采购信息
      */
-    private void createMaterialWaitPurchase(ProductionOrderDto productionOrderDto) {
+    private void createMaterialWaitPurchase(ProductionOrder productionOrder) {
         //根据归属公司将数据赋值给指定公司
-        Long companyId = productionOrderDto.getCompanyId();
-        Long contractId = productionOrderDto.getContractId();
+        Long companyId = productionOrder.getCompanyId();
+        Long contractId = productionOrder.getContractId();
 
         //获取合同产品信息
         List<ContractProduct> contractProductList = contractProductService.list(q -> q.eq(ContractProduct::getContractId, contractId));
@@ -469,4 +465,46 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
         produceOrderDetailService.updateBatchById(productionOrderDetailList);
     }
 
+    @Override
+    public void deliveryConfirm(ProductionOrderDto dto) {
+        Long id = dto.getId();
+        ProductionOrder productionOrder = this.getById(id);
+        Assert.notEmpty(productionOrder, "查询不到订单信息!");
+        //驳回直接删除
+        if (ObjectUtil.equals(dto.getConfirmStatus(), 2)) {
+            this.removeById(id);
+            //赋值驳回原因
+            Long contractId = productionOrder.getContractId();
+            contractService.update(q -> q
+                    .eq(Contract::getId, contractId)
+                    .set(Contract::getOrderDistributeStatus, 2)
+                    .set(Contract::getOrderDistributeTime, new Date())
+                    .set(Contract::getRejectRemark, dto.getRejectRemark())
+                    .set(BasePo::getUpdateTime, new Date())
+                    .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+            );
+            //消息推送:给归属公司的 子公司总经理
+            String title = String.format("您下发的生产订单被驳回,订单号【%s】,请及时跟进。", productionOrder.getCode());
+            JSONObject msg = new JSONObject();
+            msg.put("business_id", productionOrder.getId());
+            WebSocketPush.byUser(PushTypeEnum.MESSAGE, productionOrder.getCreateUser(), title, PushBusinessTypeEnum.PRODUCTION_ORDER_REJECT.getType(), msg.toString());
+        } else {
+            //创建待采购
+            createMaterialWaitPurchase(productionOrder);
+
+            //创建生产任务
+            createOrderDetails(productionOrder);
+        }
+    }
+
+    @Override
+    public void editDeliveryPeriod(ProductionOrderDto dto) {
+        this.update(q -> q
+                .eq(ProductionOrder::getId, dto.getId())
+                .set(ProductionOrder::getDeliveryPeriod, dto.getDeliveryPeriod())
+                .set(BasePo::getUpdateTime, new Date())
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+        );
+    }
+
 }

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

@@ -458,4 +458,9 @@ public class Contract extends BasePo {
      */
     private Integer outboundStatus;
 
+    /**
+     * 驳回原因
+     */
+    private String rejectRemark;
+
 }