|
@@ -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));
|
|
|
// }
|
|
|
// }
|
|
|
// }
|