yzc 10 mēneši atpakaļ
vecāks
revīzija
345a9dc9a5

+ 57 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionBeginConfirmController.java

@@ -0,0 +1,57 @@
+package com.fjhx.mes.controller.production;
+
+import com.fjhx.mes.entity.production.dto.ProductionBeginConfirmDto;
+import com.fjhx.mes.entity.production.po.ProductionBeginConfirm;
+import com.fjhx.mes.entity.production.vo.ProductionBeginConfirmVo;
+import com.fjhx.mes.service.production.ProductionBeginConfirmService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 生产开工确认 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2024-06-19
+ */
+@RestController
+@RequestMapping("/productionBeginConfirm")
+public class ProductionBeginConfirmController {
+
+    @Autowired
+    private ProductionBeginConfirmService productionBeginConfirmService;
+
+
+    /**
+     * 生产开工确认新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ProductionBeginConfirmDto dto) {
+        productionBeginConfirmService.add(dto);
+    }
+
+    /**
+     * 明细
+     */
+    @PostMapping("/detail")
+    public ProductionBeginConfirmVo detail(@RequestBody BaseSelectDto dto) {
+        return productionBeginConfirmService.detail(dto.getId());
+    }
+
+    /**
+     * 明细
+     */
+    @PostMapping("/getHistoryList")
+    public List<ProductionBeginConfirm> getHistoryList(@RequestBody ProductionBeginConfirmDto dto) {
+        return productionBeginConfirmService.getHistoryList(dto.getProdOrderId());
+    }
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionBeginConfirmDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.production.dto;
+
+import com.fjhx.mes.entity.production.po.ProductionBeginConfirm;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 生产开工确认新增编辑入参实体
+ *
+ * @author
+ * @since 2024-06-19
+ */
+@Getter
+@Setter
+public class ProductionBeginConfirmDto extends ProductionBeginConfirm {
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionBeginConfirmSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.production.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 生产开工确认列表查询入参实体
+ *
+ * @author
+ * @since 2024-06-19
+ */
+@Getter
+@Setter
+public class ProductionBeginConfirmSelectDto extends BaseSelectDto {
+
+}

+ 69 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionBeginConfirm.java

@@ -0,0 +1,69 @@
+package com.fjhx.mes.entity.production.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;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 生产开工确认
+ * </p>
+ *
+ * @author
+ * @since 2024-06-19
+ */
+@Getter
+@Setter
+@TableName("production_begin_confirm")
+public class ProductionBeginConfirm extends BasePo {
+
+    /**
+     * 生产订单id
+     */
+    private Long prodOrderId;
+
+    /**
+     * 预计上线
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date expectBeginTime;
+
+    /**
+     * 预计交货
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date expectDeliveryTime;
+
+    /**
+     * 是否同意开工1同意0不同意
+     */
+    private Integer isAgreeWork;
+
+    /**
+     * 走柜时间
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date cabinetExitTime;
+
+    /**
+     * 走柜是否明确1明确0不明确
+     */
+    private Integer isCabinetConfirm;
+
+    /**
+     * 其他说明
+     */
+    private String workRemark;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    private Long flowId;
+
+}

+ 10 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionOrder.java

@@ -71,4 +71,14 @@ public class ProductionOrder extends BasePo {
      */
     private Integer confirmStatus;
 
+    /**
+     * 是否同意开工
+     */
+    private Long isAgreeWork;
+
+    /**
+     * 开工确认Id
+     */
+    private Long prodBeginConfirmId;
+
 }

+ 32 - 33
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionOrderDetail.java

@@ -1,7 +1,6 @@
 package com.fjhx.mes.entity.production.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;
@@ -81,38 +80,38 @@ public class ProductionOrderDetail extends BasePo {
      */
     private Integer reportLock;
 
-    //==================开工确认==================
-    /**
-     * 开工确认-预计上线
-     */
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
-    private Date expectBeginTime;
-    /**
-     * 开工确认-预计交货
-     */
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
-    private Date expectDeliveryTime;
-    /**
-     * 开工确认-是否同意开工1同意0不同意
-     */
-    private Integer isAgreeWork;
-    /**
-     * 开工确认-走柜时间
-     */
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
-    private Date cabinetExitTime;
-    /**
-     * 开工确认-走柜是否明确1明确0不明确
-     */
-    private Integer isCabinetConfirm;
-    /**
-     * 开工确认-其他说明
-     */
-    private String workRemark;
-    /**
-     * 开工确认-提交状态 0暂存 1提交
-     */
-    private Integer beginWorkStatus;
+//    //==================开工确认==================
+//    /**
+//     * 开工确认-预计上线
+//     */
+//    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+//    private Date expectBeginTime;
+//    /**
+//     * 开工确认-预计交货
+//     */
+//    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+//    private Date expectDeliveryTime;
+//    /**
+//     * 开工确认-是否同意开工1同意0不同意
+//     */
+//    private Integer isAgreeWork;
+//    /**
+//     * 开工确认-走柜时间
+//     */
+//    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+//    private Date cabinetExitTime;
+//    /**
+//     * 开工确认-走柜是否明确1明确0不明确
+//     */
+//    private Integer isCabinetConfirm;
+//    /**
+//     * 开工确认-其他说明
+//     */
+//    private String workRemark;
+//    /**
+//     * 开工确认-提交状态 0暂存 1提交
+//     */
+//    private Integer beginWorkStatus;
 
     /**
      * 其他生产说明

+ 21 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionBeginConfirmVo.java

@@ -0,0 +1,21 @@
+package com.fjhx.mes.entity.production.vo;
+
+import com.fjhx.mes.entity.production.po.ProductionBeginConfirm;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 生产开工确认列表查询返回值实体
+ *
+ * @author
+ * @since 2024-06-19
+ */
+@Getter
+@Setter
+public class ProductionBeginConfirmVo extends ProductionBeginConfirm {
+
+    List<ProductionBeginConfirm> historyList;
+
+}

+ 70 - 0
hx-mes/src/main/java/com/fjhx/mes/flow/ProdBeginConfirmFlow.java

@@ -0,0 +1,70 @@
+package com.fjhx.mes.flow;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fjhx.common.enums.FlowStatusEnum1;
+import com.fjhx.common.utils.Assert;
+import com.fjhx.flow.core.FlowDelegate;
+import com.fjhx.flow.enums.FlowStatusEnum;
+import com.fjhx.flow.enums.NodeTypeEnum;
+import com.fjhx.mes.entity.production.dto.ProductionBeginConfirmDto;
+import com.fjhx.mes.entity.production.po.ProductionBeginConfirm;
+import com.fjhx.mes.entity.production.po.ProductionOrder;
+import com.fjhx.mes.service.production.ProduceOrderService;
+import com.fjhx.mes.service.production.ProductionBeginConfirmService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+public class ProdBeginConfirmFlow extends FlowDelegate {
+
+    @Resource
+    private ProduceOrderService produceOrderService;
+    @Resource
+    private ProductionBeginConfirmService productionBeginConfirmService;
+
+    @Override
+    public String getFlowKey() {
+        return "prod_begin_confirm_flow";
+    }
+
+    @Override
+    public Long start(Long flowId, JSONObject submitData) {
+        ProductionBeginConfirmDto dto = submitData.toJavaObject(ProductionBeginConfirmDto.class);
+        Assert.notEmpty(dto.getProdOrderId(), "生产订单Id不能为空!");
+        ProductionOrder orderById = produceOrderService.getById(dto.getProdOrderId());
+        Assert.notEmpty(orderById, "查询不到生产信息!");
+
+        dto.setFlowId(flowId);
+        dto.setStatus(FlowStatusEnum1.UNDER_REVIEW.getKey());
+
+        //回填单号
+        submitData.put("orderCode", orderById.getCode());
+
+        productionBeginConfirmService.save(dto);
+        return dto.getId();
+    }
+
+    @Override
+    public void defaultMethod(Long flowId, Long businessId, NodeTypeEnum handleNodeType, FlowStatusEnum flowStatus, JSONObject submitData) {
+        ProductionBeginConfirmDto dto = submitData.toJavaObject(ProductionBeginConfirmDto.class);
+        productionBeginConfirmService.updateById(dto);
+        super.defaultMethod(flowId, businessId, handleNodeType, flowStatus, submitData);
+    }
+
+    @Override
+    public void end(Long flowId, Long businessId, JSONObject submitData) {
+        ProductionBeginConfirm pbcById = productionBeginConfirmService.getById(businessId);
+        productionBeginConfirmService.update(q -> q
+                .eq(ProductionBeginConfirm::getId, businessId)
+                .set(ProductionBeginConfirm::getStatus, FlowStatusEnum1.PASS.getKey())
+        );
+        produceOrderService.update(q -> q
+                .eq(ProductionOrder::getId, pbcById.getProdOrderId())
+                .set(ProductionOrder::getIsAgreeWork, pbcById.getIsAgreeWork())
+                .set(ProductionOrder::getProdBeginConfirmId, businessId)
+        );
+    }
+
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionBeginConfirmMapper.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.mapper.production;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.mes.entity.production.po.ProductionBeginConfirm;
+
+
+/**
+ * <p>
+ * 生产开工确认 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2024-06-19
+ */
+public interface ProductionBeginConfirmMapper extends BaseMapper<ProductionBeginConfirm> {
+
+}

+ 38 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionBeginConfirmService.java

@@ -0,0 +1,38 @@
+package com.fjhx.mes.service.production;
+
+import com.fjhx.flow.entity.flow.dto.FlowResult;
+import com.fjhx.mes.entity.production.dto.ProductionBeginConfirmDto;
+import com.fjhx.mes.entity.production.po.ProductionBeginConfirm;
+import com.fjhx.mes.entity.production.vo.ProductionBeginConfirmVo;
+import com.ruoyi.common.core.service.BaseService;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 生产开工确认 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-06-19
+ */
+public interface ProductionBeginConfirmService extends BaseService<ProductionBeginConfirm> {
+
+    /**
+     * 生产开工确认新增
+     *
+     * @return
+     */
+    FlowResult add(ProductionBeginConfirmDto productionBeginConfirmDto);
+
+    /**
+     * 明细
+     */
+    ProductionBeginConfirmVo detail(Long id);
+
+    /**
+     * 历史列表
+     */
+    List<ProductionBeginConfirm> getHistoryList(Long orderId);
+}

+ 74 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionBeginConfirmServiceImpl.java

@@ -0,0 +1,74 @@
+package com.fjhx.mes.service.production.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.utils.Assert;
+import com.fjhx.flow.entity.flow.dto.FlowResult;
+import com.fjhx.flow.entity.flow.dto.InitiateDto;
+import com.fjhx.flow.service.flow.FlowProcessService;
+import com.fjhx.mes.entity.production.dto.ProductionBeginConfirmDto;
+import com.fjhx.mes.entity.production.po.ProductionBeginConfirm;
+import com.fjhx.mes.entity.production.po.ProductionOrder;
+import com.fjhx.mes.entity.production.vo.ProductionBeginConfirmVo;
+import com.fjhx.mes.mapper.production.ProductionBeginConfirmMapper;
+import com.fjhx.mes.service.production.ProduceOrderService;
+import com.fjhx.mes.service.production.ProductionBeginConfirmService;
+import com.fjhx.sale.entity.contract.po.Contract;
+import com.fjhx.sale.service.contract.ContractService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 生产开工确认 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-06-19
+ */
+@Service
+public class ProductionBeginConfirmServiceImpl extends ServiceImpl<ProductionBeginConfirmMapper, ProductionBeginConfirm> implements ProductionBeginConfirmService {
+
+    @Resource
+    private FlowProcessService flowProcessService;
+    @Resource
+    private ProduceOrderService produceOrderService;
+    @Resource
+    private ContractService contractService;
+
+    @Override
+    public FlowResult add(ProductionBeginConfirmDto dto) {
+        Assert.notEmpty(dto.getProdOrderId(), "生产订单Id不能为空!");
+        ProductionOrder orderById = produceOrderService.getById(dto.getProdOrderId());
+        Assert.notEmpty(orderById, "查询不到生产信息!");
+        Contract contractById = contractService.getById(orderById.getContractId());
+        Assert.notEmpty(contractById, "查询不到合同信息!");
+
+        JSONObject startData = (JSONObject) JSONObject.toJSON(dto);
+        startData.put("salesmanId", contractById.getSalesmanId());
+
+        InitiateDto initiateDto = new InitiateDto();
+        initiateDto.setFlowKey("prod_begin_confirm_flow");
+        initiateDto.setData(startData);
+        return flowProcessService.initiate(initiateDto);
+    }
+
+    @Override
+    public ProductionBeginConfirmVo detail(Long id) {
+        ProductionBeginConfirmVo result = BeanUtil.copyProperties(this.getById(id), ProductionBeginConfirmVo.class);
+        Assert.notEmpty(result, "无法查询到开工确认信息!");
+        result.setHistoryList(getHistoryList(result.getProdOrderId()).stream().filter(item -> !item.getId().equals(id)).collect(Collectors.toList()));
+        return result;
+    }
+
+    @Override
+    public List<ProductionBeginConfirm> getHistoryList(Long orderId) {
+        return this.list(q -> q.eq(ProductionBeginConfirm::getProdOrderId, orderId));
+    }
+
+}

+ 4 - 0
hx-mes/src/main/resources/mapper/production/ProductionBeginConfirmMapper.xml

@@ -0,0 +1,4 @@
+<?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.mes.mapper.production.ProductionBeginConfirmMapper">
+</mapper>