浏览代码

1. 工艺流程卡下载路径改成动态获取,工艺流程卡数据关联表修改
2. 上料任务系统生成的编码修改

yejian 3 年之前
父节点
当前提交
fdba303927

+ 2 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/TaskService.java

@@ -93,4 +93,6 @@ public interface TaskService extends SuperService<TTask> {
     void assemblingCandidate(Map<String, List<CandidateProcess>> candidateProMap, Map<String, Machine> machineMap, TWorkpiece workpiece, List<CandidateProcess> candidateProcesses, BomProcedure bomProcedure, Machine machine, CandidateProcess candidateProcess, BomProcedureProductionresource bomProcedureProductionresource);
 
     int selectTotalMachineUseTime(Map params);
+
+    R generateMarkCode(Map<String, Object> map);
 }

+ 1 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/OrderServiceImpl.java

@@ -396,7 +396,7 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
                             TWorkpiece workpiece = new TWorkpiece();
                             workpiece.setBomId(planProduct.getBomId()).setCompleteBatchNo(UUID.randomUUID().toString().replace("-", "")).setOrderId(planProduct.getOrderId()).setOrderNo(planProduct.getOrderNo())
                                     .setPlanId(planProduct.getPlanId()).setPlanNo(planProduct.getPlanNo()).setBomName(bbomsMap.get(planProduct.getBomId()).getName()).setBomNo(bbomsMap.get(planProduct.getBomId()).getNo()).setOrderName(oriBean.getOrderName())
-                            .setIsEnd("0");
+                            .setIsEnd("0").setSerialNo(partNum+1);
                             workpieceMapper.insert(workpiece);
 
                             // 生成task表,因为工序定了以后不变,排产时只需更新预计开始时间和结束时间

+ 28 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/TaskServiceImpl.java

@@ -118,6 +118,8 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
     @Autowired
     private PlanMapper planMapper;
     @Autowired
+    private PlanProductMapper planProductMapper;
+    @Autowired
     private StockLogMapper stockLogMapper;
     @Autowired
     private MToolClampMapper mToolClampMapper;
@@ -132,6 +134,8 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
 
     @Autowired
     private WorkpieceService workpieceService;
+    @Autowired
+    private BBomMapper bBomMapper;
 
 
     @Override
@@ -1222,4 +1226,28 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
     public int selectTotalMachineUseTime(Map params){
         return baseMapper.selectTotalMachineUseTime(params);
     }
+
+    @Override
+    public R generateMarkCode(Map<String, Object> map){
+        Map params = new HashMap();
+        Map data = new HashMap();
+        // 组装打标内容
+        TTask task = baseMapper.selectById(Long.valueOf(map.get("id").toString()));
+        Order order = orderMapper.selectById(task.getOrderId());
+        ZZone zZone = zZoneMapper.selectById(order.getZoneId());
+        PlanProduct planProduct = planProductMapper.selectOne(Wraps.<PlanProduct>lbQ().eq(PlanProduct::getPlanId, task.getPlanId()));
+        BBom bom = bBomMapper.selectById(planProduct.getBomId());
+        TWorkpiece tWorkpiece = workpieceMapper.selectOne(Wraps.<TWorkpiece>lbQ().eq(TWorkpiece::getCompleteBatchNo, task.getCompleteBatchNo()));
+        params.put("id",task.getPlanId());
+        Map<String, String> orderMeterialInfo = planMapper.getFinishPlanPartInfo(params);
+        String productType = "";
+        if("framework".equals(zZone.getNo())){
+            productType = "K";
+        }else if("capsule".equals(zZone.getNo())){
+            productType = "C";
+        }
+        String uniqueCode = productType + BizConstant.MARK_SEPARATOR + order.getOrderNo() + BizConstant.MARK_SEPARATOR + task.getTaskNo() + BizConstant.MARK_SEPARATOR + bom.getBomAlias() + BizConstant.MARK_SEPARATOR + orderMeterialInfo.get("bomBatchNo") + BizConstant.MARK_SEPARATOR + String.format("%06d", tWorkpiece.getSerialNo());
+        data.put("uniqueCode",uniqueCode);
+        return R.success(data);
+    }
 }

+ 15 - 10
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/operationManagementCenter/PlanMapper.xml

@@ -122,21 +122,25 @@
 
     <select id="getFinishPlanPartInfo" resultType="java.util.Map">
         SELECT
-            IFNULL(name, '') AS name,
-            IFNULL(ibb.no, '') AS no,
-            IFNULL(ibb.product_no, '') AS productNo,
-            IFNULL(ibb.batch_no, '') AS batchNo,
-            IFNULL(ibb.meterial_factory, '') AS meterialFactory,
-            IFNULL(ibb.meterial_id, '') AS meterialId,
-            IFNULL(ibb.furnace_batch_no, '') AS furnaceBatchNo,
-            IFNULL(ibb.batch_stard, '') AS batchStard,
-            IFNULL(ibb.meterial_batch_no, '') AS meterialBatchNo,
+            IFNULL(ibb.name, '') AS name,
+            IFNULL(ibb.bom_alias, '') AS bomAlias,
+            IFNULL(ibb.parts_alias, '') AS partsAlias,
+            IFNULL(imm.trade_mark, '') AS tradeMark,
+            IFNULL(immrl.bom_batch_no, '') AS bomBatchNo,
+            IFNULL(immrl.furnace_batch_no, '') AS furnaceBatchNo,
+            IFNULL(immrl.batch_stand, '') AS batchStand,
+            IFNULL(immrl.factory, '') AS factory,
+            IFNULL(immrl.meterial_batch_no, '') AS meterialBatchNo,
             (CASE ibb.key_flag WHEN '1' THEN 'G' ELSE '' END) keyFlag,
             (CASE ibb.important_flag WHEN '1' THEN 'Z' ELSE '' END) importantFlag
         FROM imcs_b_bom ibb,
+            imcs_m_meterial imm,
+            imcs_m_meterial_receive_log immrl,
             imcs_p_plan_product ippp
         WHERE 1=1
         AND ibb.id = ippp.bom_id
+        and ibb.meterial_id = imm.id
+        AND ibb.meterial_id = immrl.meterial_id
         <if test="id != null and id != ''">
             and ippp.plan_id = #{id}
         </if>
@@ -150,7 +154,7 @@
             itt.procedure_no AS procedureNo,
             itt.procedure_name AS procedureName,
             (SELECT itp.tenant_id FROM imcs_tenant_productionresource itp  WHERE itp.id = itt.resource_id) AS factoryName,
-            itt.executor_name,
+            -- (SELECT cau.name FROM c_auth_user cau WHERE cau.id = (SELECT ittn.loading_user_id FROM imcs_t_task_node ittn WHERE ittn.task_id = itt.id AND ittn.loading_user_id IS NOT NULL )) AS executorName,
             ippp.plan_bom_num AS planBomNum,
             ippp.plan_bom_num AS okNum,
             0 AS ngNum,
@@ -170,6 +174,7 @@
         WHERE 1 = 1
         AND ibb.id = ippp.bom_id
         AND ippp.plan_id = itt.plan_id
+        AND itt.resource_id not in (SELECT itp.id FROM imcs_tenant_productionresource itp where itp.name like '%上下料站%')
         <if test="id != null and id != ''">
             and ippp.plan_id = #{id}
         </if>

+ 9 - 2
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/operationManagementCenter/PlanController.java

@@ -23,6 +23,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
 import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -61,6 +62,11 @@ import java.util.Map;
 @SysLog(enabled = true)
 public class PlanController extends SuperController<PlanService, Long, Plan, PlanPageDTO, PlanSaveDTO, PlanUpdateDTO> {
 
+    @Value("${zuihou.nginx.ip}")
+    private String nginxIp;
+    @Value("${zuihou.nginx.port}")
+    private String nginxPort;
+
     @Override
     public void query(PageParams<PlanPageDTO> params, IPage<Plan> page, Long defSize) {
         PlanPageDTO data = params.getModel();
@@ -226,8 +232,9 @@ public class PlanController extends SuperController<PlanService, Long, Plan, Pla
         map.putAll(partInfo);
         map.put("dataList", procedures);
         File temp = File.createTempFile("craftCradsResult", ".xlsx");
-        // TODO 根据后续真实模板地址修改,存放在nginx目录下
-        URL url = new URL("http://127.0.0.1:8760/file/0000/template/craftCradsTemplate.xlsx");
+        // 根据后续真实模板地址修改,存放在nginx目录下
+        String craftCradsTemplateUrl = "http://" + nginxIp + ":" + nginxPort + "/file/0000/template/craftCradsTemplate.xlsx";
+        URL url = new URL(craftCradsTemplateUrl);
         ReadableByteChannel readableByteChannel = Channels.newChannel(url.openStream());
         FileOutputStream fileOutputStream = new FileOutputStream(temp);
         fileOutputStream.getChannel().transferFrom(readableByteChannel,0,Long.MAX_VALUE);

+ 5 - 0
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/operationManagementCenter/TaskController.java

@@ -218,4 +218,9 @@ public class TaskController extends SuperController<TaskService, Long, TTask, TT
         return baseService.procesRfid(map);
     }
 
+    @PostMapping("/generateMarkCode")
+    public R generateMarkCode(@RequestBody Map<String,Object> map) {
+        return baseService.generateMarkCode(map);
+    }
+
 }

+ 8 - 0
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/operationManagementCenter/entity/TWorkpiece.java

@@ -200,6 +200,14 @@ public class TWorkpiece extends Entity implements Serializable {
     @Excel(name = "工序ID")
     private Long exchangeProcedureId;
 
+    /**
+     * 流水号
+     */
+    @ApiModelProperty(value = "流水号")
+    @TableField("serial_no")
+    @Excel(name = "工序ID")
+    private Integer serialNo;
+
 
     /**
      * 零件名称

+ 3 - 0
imcs-admin-boot/imcs-common/src/main/java/com/github/zuihou/common/constant/BizConstant.java

@@ -1,5 +1,7 @@
 package com.github.zuihou.common.constant;
 
+import java.io.File;
+
 /**
  * 业务常量
  *
@@ -206,5 +208,6 @@ public interface BizConstant {
 
     String MQ_EQUIPMENT_STATUS = "EquipmentStatus";
 
+    String MARK_SEPARATOR = "&";
 
 }