瀏覽代碼

工单功能修改,添加研发附件,及研发状态过滤

yzc 1 年之前
父節點
當前提交
c7c774b3e6

+ 6 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderDto.java

@@ -1,10 +1,12 @@
 package com.fjhx.mes.entity.work.dto;
 
+import com.fjhx.file.entity.ObsFile;
 import com.fjhx.mes.entity.work.po.WorkOrder;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 工单新增编辑入参实体
@@ -16,5 +18,9 @@ import java.math.BigDecimal;
 @Setter
 public class WorkOrderDto extends WorkOrder {
 
+    /**
+     * 附件列表(工单目前已经绑定两种工单 附件类型 研发上传为0 定制工艺上传为1)
+     */
+    private List<ObsFile> fileList;
 
 }

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/work/po/WorkOrder.java

@@ -87,4 +87,9 @@ public class WorkOrder extends BasePo {
      */
     private Long contractDetailsId;
 
+    /**
+     * 研发状态
+     */
+    private Integer researchStatus;
+
 }

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/work/vo/WorkOrderVo.java

@@ -74,4 +74,9 @@ public class WorkOrderVo extends WorkOrder {
      */
     private String productSpec;
 
+    /**
+     * 合同产品备注
+     */
+    private String contractProductRemark;
+
 }

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/mapper/work/WorkOrderMapper.java

@@ -31,4 +31,9 @@ public interface WorkOrderMapper extends BaseMapper<WorkOrder> {
      * @return
      */
     List<WorkOrderVo> getSumCountInResourceId(@Param("dataResourceIds")List<Long> dataResourceIds);
+
+    /**
+     * 工单明细
+     */
+    WorkOrderVo detail(@Param("ew") IWrapper<WorkOrder> wrapper);
 }

+ 1 - 1
hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderBomServiceImpl.java

@@ -84,7 +84,7 @@ public class WorkOrderBomServiceImpl extends ServiceImpl<WorkOrderBomMapper, Wor
     public void edit(WorkOrderBomDto workOrderBomDto) {
         workOrderService.update(q -> q
                 .eq(WorkOrder::getId, workOrderBomDto.getWorkOrderId())
-                .set(WorkOrder::getBomStatus, workOrderBomDto.getBomStatus())
+                .set(ObjectUtil.isNotEmpty(workOrderBomDto.getBomStatus()),WorkOrder::getBomStatus, workOrderBomDto.getBomStatus())
                 .set(BasePo::getUpdateTime, new Date())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );

+ 9 - 9
hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderProductionProcessesServiceImpl.java

@@ -76,19 +76,19 @@ public class WorkOrderProductionProcessesServiceImpl extends ServiceImpl<WorkOrd
 
     @DSTransactional
     @Override
-    public void edit(WorkOrderProductionProcessesDto workOrderProductionProcessesDto) {
+    public void edit(WorkOrderProductionProcessesDto dto) {
         workOrderService.update(q -> q
-                .eq(WorkOrder::getId, workOrderProductionProcessesDto.getWorkOrderId())
-                .set(WorkOrder::getTechnologyStatus, workOrderProductionProcessesDto.getTechnologyStatus())
+                .eq(WorkOrder::getId, dto.getWorkOrderId())
+                .set(ObjectUtil.isNotEmpty(dto.getTechnologyStatus()),WorkOrder::getTechnologyStatus, dto.getTechnologyStatus())
                 .set(BasePo::getUpdateTime, new Date())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );
 
-        List<WorkOrderProductionProcessesVo> workOrderProductionProcessesList = workOrderProductionProcessesDto.getWorkOrderProductionProcessesList();
+        List<WorkOrderProductionProcessesVo> workOrderProductionProcessesList = dto.getWorkOrderProductionProcessesList();
 
         int i = 0;
         for (WorkOrderProductionProcessesVo workOrderProductionProcesses : workOrderProductionProcessesList) {
-            workOrderProductionProcesses.setWorkOrderId(workOrderProductionProcessesDto.getWorkOrderId());
+            workOrderProductionProcesses.setWorkOrderId(dto.getWorkOrderId());
             workOrderProductionProcesses.setSort(i);
             List<ObsFile> fileList = workOrderProductionProcesses.getFileList();
             if (ObjectUtil.isNotEmpty(fileList)) {
@@ -104,13 +104,13 @@ public class WorkOrderProductionProcessesServiceImpl extends ServiceImpl<WorkOrd
             }
         }
         List<WorkOrderProductionProcesses> workOrderProductionProcessesList1 = BeanUtil.copyToList(workOrderProductionProcessesList, WorkOrderProductionProcesses.class);
-        this.editLinked(workOrderProductionProcessesList1, WorkOrderProductionProcesses::getWorkOrderId, workOrderProductionProcessesDto.getWorkOrderId());
+        this.editLinked(workOrderProductionProcessesList1, WorkOrderProductionProcesses::getWorkOrderId, dto.getWorkOrderId());
 
         //检查定制工单是否配置BOM、工艺 配置完成发消息
-        workOrderService.checkCustomizedInfo(workOrderProductionProcessesDto.getWorkOrderId());
+        workOrderService.checkCustomizedInfo(dto.getWorkOrderId());
 
-        //增加附件(绑定到工单上)
-        ObsFileUtil.editFile(workOrderProductionProcessesDto.getFileList(),workOrderProductionProcessesDto.getWorkOrderId());
+        //增加附件(绑定到工单上,附件类型为1
+        ObsFileUtil.editFile(dto.getFileList(),dto.getWorkOrderId(),1);
     }
 
 }

+ 25 - 3
hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderServiceImpl.java

@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.enums.PushBusinessTypeEnum;
 import com.fjhx.common.utils.Assert;
+import com.fjhx.file.entity.FileInfo;
+import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.mes.entity.bom.po.BomDetail;
@@ -54,6 +56,7 @@ import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.SqlField;
 import com.ruoyi.system.service.ISysUserService;
+import org.apache.commons.io.FileUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -120,6 +123,9 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
 
         //过滤待排程(待创建计划的工单)
         if (Objects.equals(dto.getIsRemaining(), 1)) {
+            //研发必须提交后
+            wrapper.eq("wo",WorkOrder::getResearchStatus,1);
+
             wrapper.gt("wo.remainingQuantity", 0);
             //过滤非定制/定制但已经重新配置了bom和工艺的工单
             wrapper.and(q -> q
@@ -154,8 +160,7 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
 
     @Override
     public WorkOrderVo detail(Long id) {
-        WorkOrder workOrder = this.getById(id);
-        WorkOrderVo result = BeanUtil.toBean(workOrder, WorkOrderVo.class);
+        WorkOrderVo result = baseMapper.detail(IWrapper.<WorkOrder>getWrapper().eq(WorkOrder::getId, id));
         List<ProductionPlan> list = productionPlanService.list(q -> q.eq(ProductionPlan::getWorkOrderId, id));
         result.setProductionPlans(list);
         ProductInfo productInfo = productInfoService.getById(result.getProductId());
@@ -164,7 +169,7 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
             result.setProductSpec(productInfo.getSpec());
         }
         //赋值产品可用库存
-        BigDecimal availableStockQuantity = stockService.getAvailableStockQuantity(workOrder.getProductId());
+        BigDecimal availableStockQuantity = stockService.getAvailableStockQuantity(result.getProductId());
         result.setAvailableStockQuantity(availableStockQuantity);
 
         return result;
@@ -448,4 +453,21 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
 //        stockFrozenService.saveOrUpdateBatch(stockFrozenList);
 //    }
 
+    /**
+     * 研发上传附件
+     */
+    public void research(WorkOrderDto dto){
+        WorkOrder workOrder = this.getById(dto.getId());
+        Assert.notEmpty(workOrder,"查询不到工单信息!");
+        //修改研发状态
+        this.update(q -> q
+                .eq(WorkOrder::getId, dto.getId())
+                .set(ObjectUtil.isNotEmpty(dto.getResearchStatus()),WorkOrder::getResearchStatus, dto.getResearchStatus())
+                .set(BasePo::getUpdateTime, new Date())
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+        );
+        //修改附件列表
+        ObsFileUtil.editFile(dto.getFileList(), dto.getId());
+    }
+
 }

+ 29 - 0
hx-mes/src/main/resources/mapper/work/WorkOrderMapper.xml

@@ -46,4 +46,33 @@
         </where>
         GROUP BY source_id
     </select>
+    <select id="detail" resultType="com.fjhx.mes.entity.work.vo.WorkOrderVo">
+        SELECT
+            wo.id,
+            wo.`code`,
+            wo.source_id,
+            wo.source,
+            wo.product_id,
+            wo.quantity,
+            wo.remarks,
+            wo.`status`,
+            wo.tenant_id,
+            wo.create_user,
+            wo.create_time,
+            wo.update_user,
+            wo.update_time,
+            wo.del_flag,
+            wo.is_customized,
+            wo.bom_status,
+            wo.technology_status,
+            wo.production_quantity,
+            wo.stock_wait_quantity,
+            wo.contract_details_id,
+            wo.research_status,
+            scd.product_remark AS contractProductRemark
+        FROM
+            work_order wo
+                LEFT JOIN bytesailing_jxst.sales_contract_details scd ON wo.contract_details_id = scd.id
+            ${ew.customSqlSegment}
+    </select>
 </mapper>