瀏覽代碼

添加字段,以及搜索过滤

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

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

@@ -44,12 +44,12 @@ public enum PushBusinessTypeEnum {
     DOCUMENTS_DEL(7),
 
     /**
-     * 新任务
+     * 新工单
      */
     NEW_WORK_ORDER(8),
 
     /**
-     * 新任务
+     * 新计划
      */
     NEW_PLAN(9),
 

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionPlanSelectDto.java

@@ -19,4 +19,9 @@ public class ProductionPlanSelectDto extends BaseSelectDto {
      */
     private Integer isRemaining;
 
+    /**
+     * 计划状态 0未开始 1进行中 2完成
+     */
+    private Integer status;
+
 }

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetail.java

@@ -83,4 +83,9 @@ public class ProductionTaskDetail extends BasePo {
      */
     private Long previousProcessesId;
 
+    /**
+     * 工序状态 0未开始 1进行中 2驳回 3完成
+     */
+    private Integer processesStatus;
+
 }

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionPlanVo.java

@@ -32,4 +32,9 @@ public class ProductionPlanVo extends ProductionPlan {
      */
     List<WorkOrderProductionProcesses> productionProcessesList;
 
+    /**
+     * 工单单号
+     */
+    private String workOrderCode;
+
 }

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderSelectDto.java

@@ -24,4 +24,9 @@ public class WorkOrderSelectDto extends BaseSelectDto {
      */
     private Integer isRemaining;
 
+    /**
+     * 是否定制
+     */
+    private String isCustomized;
+
 }

+ 28 - 40
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionPlanServiceImpl.java

@@ -23,6 +23,7 @@ import com.fjhx.mes.utils.code.CodeEnum;
 import com.fjhx.socket.core.PushTypeEnum;
 import com.fjhx.socket.core.WebSocketPush;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.wrapper.SqlField;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -67,58 +68,45 @@ public class ProductionPlanServiceImpl extends ServiceImpl<ProductionPlanMapper,
     public Page<ProductionPlanVo> getPage(ProductionPlanSelectDto dto) {
         IWrapper<ProductionPlan> wrapper = getWrapper();
         if(ObjectUtil.isNotEmpty(dto.getKeyword())) {
-            wrapper.and(q->q.like(ProductionPlan::getStartDate, dto.getKeyword())
-                    .or().like(ProductionPlan::getStopDate, dto.getKeyword())
-                    .or().like(ProductionPlan::getQuantity, dto.getKeyword()));
+            wrapper.keyword(dto.getKeyword(),
+                    new SqlField(ProductionPlan::getStartDate),
+                    new SqlField(ProductionPlan::getStopDate),
+                    new SqlField(ProductionPlan::getQuantity),
+                    new SqlField(ProductionPlan::getCode),
+                    new SqlField("pp.productName"),
+                    new SqlField("pp.workOrderCode")
+            );
         }
 
+        //计划状态
+        wrapper.eq(ProductionPlan::getStatus ,dto.getStatus());
+
         wrapper.orderByAsc("pp", ProductionPlan::getCreateTime);
 
         //过滤待排程(待创建任务的计划)
         wrapper.gt(Objects.equals(dto.getIsRemaining(),1),"pp.remainingQuantity",0);
 
         Page<ProductionPlanVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-        List<ProductionPlanVo> records = page.getRecords();
+//        List<ProductionPlanVo> records = page.getRecords();
 
         //获取工单信息
-        List<Long> workOrderIds = records.stream().map(ProductionPlanVo::getWorkOrderId).collect(Collectors.toList());
-        if(ObjectUtil.isNotEmpty(workOrderIds)) {
-            List<WorkOrder> workOrderList = workOrderService.list(q -> q.in(WorkOrder::getId, workOrderIds));
-            Map<Long, WorkOrder> workOrderMap = workOrderList.stream().collect(Collectors.groupingBy(WorkOrder::getId,
-                    Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
-            //获取产品信息
-            List<Long> productIds = workOrderList.stream().map(WorkOrder::getProductId).collect(Collectors.toList());
-            if(ObjectUtil.isNotEmpty(productIds)) {
-                List<ProductInfo> productInfos = productInfoService.listByIds(productIds);
-                Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.groupingBy(ProductInfo::getId,
-                        Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
-                for (ProductionPlanVo productionPlanVo : records) {
-                    WorkOrder workOrder = workOrderMap.get(productionPlanVo.getWorkOrderId());
-                    ProductInfo productInfo = productInfoMap.get(workOrder.getProductId());
-                    if (ObjectUtil.isNotEmpty(productInfo)) {
-                        productionPlanVo.setProductName(productInfo.getName());
-                    }
-                }
-            }
-        }
-//        //赋值待排程数量
-//        for (ProductionPlanVo productionPlanVo : records) {
-//            productionPlanVo.setRemainingQuantity(productionPlanVo.getQuantity());
-//        }
-//        List<Long> productionPlanIds = records.stream().map(ProductionPlan::getId).collect(Collectors.toList());
-//        if (ObjectUtil.isNotEmpty(productionPlanIds)) {
-//            List<ProductionTask> productionTaskList = productionTaskService.list(q -> q.in(ProductionTask::getProductionPlanId, productionPlanIds));
-//            if (ObjectUtil.isNotEmpty(productionTaskList)) {
-//                //根据生产计划id分组
-//                Map<Long, List<ProductionTask>> productionTaskMap = productionTaskList.stream().collect(Collectors.groupingBy(ProductionTask::getProductionPlanId));
+//        List<Long> workOrderIds = records.stream().map(ProductionPlanVo::getWorkOrderId).collect(Collectors.toList());
+//        if(ObjectUtil.isNotEmpty(workOrderIds)) {
+//            List<WorkOrder> workOrderList = workOrderService.list(q -> q.in(WorkOrder::getId, workOrderIds));
+//            Map<Long, WorkOrder> workOrderMap = workOrderList.stream().collect(Collectors.groupingBy(WorkOrder::getId,
+//                    Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
+//            //获取产品信息
+//            List<Long> productIds = workOrderList.stream().map(WorkOrder::getProductId).collect(Collectors.toList());
+//            if(ObjectUtil.isNotEmpty(productIds)) {
+//                List<ProductInfo> productInfos = productInfoService.listByIds(productIds);
+//                Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.groupingBy(ProductInfo::getId,
+//                        Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
 //                for (ProductionPlanVo productionPlanVo : records) {
-//                    List<ProductionTask> productionTaskList1 = productionTaskMap.get(productionPlanVo.getId());
-//                    BigDecimal count = BigDecimal.ZERO;
-//                    if (ObjectUtil.isNotEmpty(productionTaskList1)) {
-//                        count = productionTaskList1.stream().map(ProductionTask::getQuantity)
-//                                .reduce(BigDecimal.ZERO, BigDecimal::add);
+//                    WorkOrder workOrder = workOrderMap.get(productionPlanVo.getWorkOrderId());
+//                    ProductInfo productInfo = productInfoMap.get(workOrder.getProductId());
+//                    if (ObjectUtil.isNotEmpty(productInfo)) {
+//                        productionPlanVo.setProductName(productInfo.getName());
 //                    }
-//                    productionPlanVo.setRemainingQuantity(productionPlanVo.getQuantity().subtract(count));
 //                }
 //            }
 //        }

+ 15 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -200,6 +200,9 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
             }
         }
 
+        //设置当前工序状态未开始
+        productionTaskDetailDto.setProcessesStatus(0);
+
         this.updateById(productionTaskDetail);
 
         //创建任务明细记录
@@ -230,6 +233,9 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         }
         productionTaskDetail.setFinishStatus(1);//标记为完成
         productionTaskDetail.setFinishTime(new Date());//记录完成时间
+
+        //设置当前工序状态完成
+        productionTaskDetail.setProcessesStatus(3);
         this.updateById(productionTaskDetail);
 
         //创建任务明细记录
@@ -289,6 +295,9 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         //赋值接收时间
         productionTaskDetail.setReceivedTime(new Date());
 
+        //设置当前工序状态进行中
+        productionTaskDetailDto.setProcessesStatus(1);
+
         this.updateById(productionTaskDetail);
     }
 
@@ -325,6 +334,9 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
             }
         }
 
+        //设置当前工序状态驳回
+        productionTaskDetail.setProcessesStatus(2);
+
         this.updateById(productionTaskDetail);
     }
 
@@ -367,6 +379,9 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         //将负责人赋值为原负责人(流转人)
         productionTaskDetail.setPersonLiableId(productionTaskDetail.getCirculationUserId());
 
+        //设置当前工序状态驳回
+        productionTaskDetail.setProcessesStatus(0);
+
         this.updateById(productionTaskDetail);
     }
 

+ 24 - 19
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java

@@ -43,6 +43,7 @@ import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.common.utils.wrapper.SqlField;
 import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -99,28 +100,32 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
         IWrapper<ProductionTask> wrapper = getWrapper();
         wrapper.orderByDesc("pt", ProductionTask::getId);
         if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
-            wrapper.and(q -> q.like("pt", ProductionTaskVo::getCode, dto.getKeyword())
-                    .or().like("pt", ProductionTaskVo::getQuantity, dto.getKeyword())
-                    .or().like("pt", ProductionTaskVo::getDueDate, dto.getKeyword()));
+            wrapper.keyword(dto.getKeyword(),
+                    new SqlField("pt",ProductionTaskVo::getCode),
+                    new SqlField("pt",ProductionTaskVo::getQuantity),
+                    new SqlField("pt",ProductionTaskVo::getDueDate),
+                    new SqlField("pi.`name`"),
+                    new SqlField("pp.`code`")
+            );
         }
         Page<ProductionTaskVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ProductionTaskVo> records = page.getRecords();
-        //赋值产品名称
-        List<Long> productIds = records.stream().map(ProductionTaskVo::getProductId).collect(Collectors.toList());
-        if (ObjectUtil.isNotEmpty(productIds)) {
-            List<ProductInfo> productInfos = productInfoService.listByIds(productIds);
-            Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.groupingBy(ProductInfo::getId,
-                    Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
-            for (ProductionTaskVo productionTaskVo : records) {
-                Long productId = productionTaskVo.getProductId();
-                if (ObjectUtil.isNotEmpty(productId)) {
-                    ProductInfo productInfo = productInfoMap.get(productId);
-                    if (ObjectUtil.isNotEmpty(productInfo)) {
-                        productionTaskVo.setProductName(productInfo.getName());
-                    }
-                }
-            }
-        }
+//        //赋值产品名称
+//        List<Long> productIds = records.stream().map(ProductionTaskVo::getProductId).collect(Collectors.toList());
+//        if (ObjectUtil.isNotEmpty(productIds)) {
+//            List<ProductInfo> productInfos = productInfoService.listByIds(productIds);
+//            Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.groupingBy(ProductInfo::getId,
+//                    Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
+//            for (ProductionTaskVo productionTaskVo : records) {
+//                Long productId = productionTaskVo.getProductId();
+//                if (ObjectUtil.isNotEmpty(productId)) {
+//                    ProductInfo productInfo = productInfoMap.get(productId);
+//                    if (ObjectUtil.isNotEmpty(productInfo)) {
+//                        productionTaskVo.setProductName(productInfo.getName());
+//                    }
+//                }
+//            }
+//        }
 
         //赋值负责人名字
         UserUtil.assignmentNickName(records, ProductionTask::getPersonLiableId, ProductionTaskVo::setPersonLiableName);

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

@@ -42,6 +42,7 @@ import com.fjhx.wms.service.stock.StockFrozenService;
 import com.fjhx.wms.service.stock.StockService;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.common.utils.wrapper.SqlField;
 import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -96,9 +97,11 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
     public Page<WorkOrderVo> getPage(WorkOrderSelectDto dto) {
         IWrapper<WorkOrder> wrapper = getWrapper();
         if(ObjectUtil.isNotEmpty(dto.getKeyword())){
-            wrapper.and(q->q.like("wo", WorkOrder::getCode, dto.getKeyword())
-                    .or()
-                    .like("wo", WorkOrder::getQuantity, dto.getKeyword()));
+            wrapper.keyword(dto.getKeyword(),
+                    new SqlField("wo", WorkOrder::getCode),
+                    new SqlField("wo", WorkOrder::getQuantity),
+                    new SqlField("wo.contractCode")
+            );
         }
         wrapper.eq("wo",WorkOrder::getSource,dto.getSource());
 
@@ -116,6 +119,9 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
             );
         }
 
+        //是否定制
+        wrapper.eq("wo",WorkOrder::getIsCustomized,dto.getIsCustomized());
+
         wrapper.orderByDesc("wo", WorkOrder::getId);
         Page<WorkOrderVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<WorkOrderVo> records = page.getRecords();

+ 5 - 1
hx-mes/src/main/resources/mapper/production/ProductionPlanMapper.xml

@@ -18,10 +18,14 @@
                     pp.create_time,
                     pp.update_user,
                     pp.update_time,
-                    pp.quantity - ifnull( sum( pt.quantity ), 0 ) AS remainingQuantity
+                    pp.quantity - ifnull( sum( pt.quantity ), 0 ) AS remainingQuantity,
+                    wo.`code` AS workOrderCode,
+                    pi.`name` AS productName
                 FROM
                     production_plan pp
                         LEFT JOIN production_task pt ON pt.production_plan_id = pp.id
+                        LEFT JOIN work_order wo ON pp.work_order_id = wo.id
+                        LEFT JOIN bytesailing_item.product_info pi ON wo.product_id = pi.id
                 GROUP BY
                     pp.id
             ) pp

+ 6 - 3
hx-mes/src/main/resources/mapper/production/ProductionTaskMapper.xml

@@ -5,20 +5,23 @@
         SELECT
             pt.id,
             pt.production_plan_id,
-            pt.CODE,
+            pt.`code`,
             pt.quantity,
             pt.person_liable_id,
-            pt.STATUS,
+            pt.`status`,
             pt.due_date,
             pt.create_user,
             pt.create_time,
             pt.update_user,
             pt.update_time,
-            wo.product_id
+            wo.product_id,
+            pi.`name` AS productName,
+            pp.`code` AS productionPlanCode
         FROM
             production_task pt
                 LEFT JOIN production_plan pp ON pt.production_plan_id = pp.id
                 LEFT JOIN work_order wo ON pp.work_order_id = wo.id
+                LEFT JOIN bytesailing_item.product_info pi ON wo.product_id = pi.id
             ${ew.customSqlSegment}
     </select>
     <select id="detail" resultType="com.fjhx.mes.entity.production.vo.ProductionTaskVo">