diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProWetMaterialPlanMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProWetMaterialPlanMapper.java index 290205ea..d1dbf78a 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProWetMaterialPlanMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProWetMaterialPlanMapper.java @@ -129,4 +129,11 @@ public interface ProWetMaterialPlanMapper { * @return */ ProWetMaterialPlan selectProWetMaterialPlanByWorkId(String workorderId); + + /** + * 通过工单id查询未下发的湿料计划 + * @param workorderId + * @return + */ + ProWetMaterialPlan selectProWetMaterialPlanByWorkIdN(String workorderId); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWetMaterialPlanServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWetMaterialPlanServiceImpl.java index d96fb54d..b2c5d96a 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWetMaterialPlanServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWetMaterialPlanServiceImpl.java @@ -19,6 +19,7 @@ import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WCSDataDTO; import com.op.system.api.domain.dto.WCSDataItemsDTO; import org.apache.commons.lang.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -29,6 +30,7 @@ import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; + import org.springframework.web.bind.annotation.PathVariable; import static com.op.common.core.web.domain.AjaxResult.error; @@ -51,6 +53,7 @@ public class ProWetMaterialPlanServiceImpl implements IProWetMaterialPlanService // // @Value("${wcs.url1}") // public String materialPlanSyncUrl; + /** * 查询湿料计划管理 * @@ -117,9 +120,9 @@ public class ProWetMaterialPlanServiceImpl implements IProWetMaterialPlanService // 已下发计划不允许删除 for (String id : ids) { ProWetMaterialPlan plan = proWetMaterialPlanMapper.selectProWetMaterialPlanById(id); - if (plan.getSyncFlag().equals("Y")){ + if (plan.getSyncFlag().equals("Y")) { SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd"); - return error("日期为"+formatDate.format(plan.getPlanTime())+"的计划已下发,不允许删除!"); + return error("日期为" + formatDate.format(plan.getPlanTime()) + "的计划已下发,不允许删除!"); } } for (String id : ids) { @@ -248,12 +251,39 @@ public class ProWetMaterialPlanServiceImpl implements IProWetMaterialPlanService @DS("#header.poolName") public AjaxResult getWetMaterialPlanDetailListById(String id) { List detailList = proWetMaterialPlanDetailMapper.selectProWetMaterialPlanDetailListById(id); - // 获取班次名称和料罐名称 + // 湿料详情数据处理(去重) + List tempList = new ArrayList<>(); for (ProWetMaterialPlanDetail detail : detailList) { + ProWetMaterialPlanDetail temp = new ProWetMaterialPlanDetail(); + + // 获取班次名称和料罐名称 detail.setShiftDesc(proWetMaterialPlanMapper.selectShiftById(String.valueOf(detail.getShiftId()))); detail.setBucketName(proWetMaterialPlanMapper.selectBucketNameById(detail.getBucketId())); + + BeanUtils.copyProperties(detail,temp); + + if (tempList.size() == 0) { + tempList.add(temp); + }else { + boolean check = true; + + for (ProWetMaterialPlanDetail data : tempList) { + // 找到重复 + if (data.getWorkorderCode().equals(temp.getWorkorderCode())) { + check = false; + StringBuilder bucketName = new StringBuilder(data.getBucketName()); + bucketName.append(",").append(temp.getBucketName()); + data.setBucketName(bucketName.toString()); + } + } + + if (check) { + tempList.add(temp); + } + } + } - return success(detailList); + return success(tempList); } /** @@ -267,19 +297,27 @@ public class ProWetMaterialPlanServiceImpl implements IProWetMaterialPlanService @Transactional public AjaxResult updateWetMaterialPlanDetail(List detailList) { // 获取该计划详情下的主计划信息 - ProWetMaterialPlan proWetMaterialPlan = proWetMaterialPlanMapper.selectProWetMaterialPlanById(detailList.get(0).getWetMaterialPlanId()); + ProWetMaterialPlan proWetMaterialPlan = proWetMaterialPlanMapper.selectProWetMaterialPlanByWorkIdN(detailList.get(0).getWorkorderId()); // 更新主计划信息 // 更新人 proWetMaterialPlan.setUpdateBy(SecurityContextHolder.getUserName()); // 更新时间 proWetMaterialPlan.setUpdateTime(DateUtils.getNowDate()); - // 更新至数据库 proWetMaterialPlanMapper.updateProWetMaterialPlan(proWetMaterialPlan); - // 循环将详情信息更新至数据库 + // 删除所有详情信息 + proWetMaterialPlanDetailMapper.deleteProWetMaterialPlanDetailByPlanId(proWetMaterialPlan.getId()); + for (ProWetMaterialPlanDetail detail : detailList) { - proWetMaterialPlanDetailMapper.updateProWetMaterialPlanDetail(detail); + ProOrderWorkorder workOrder = new ProOrderWorkorder(); + BeanUtils.copyProperties(detail,workOrder); + workOrder.setShiftId(String.valueOf(detail.getShiftId())); + workOrder.setBucketId(Integer.valueOf(detail.getBucketId())); + workOrder.setMaterialId(Integer.valueOf(detail.getMaterialId())); + proWetMaterialPlanDetailMapper.insertProWetMaterialPlanDetail(createProWetMaterialPlanDetail(workOrder,proWetMaterialPlan.getId())); } + +// throw new RuntimeException(); return success(); } @@ -293,8 +331,8 @@ public class ProWetMaterialPlanServiceImpl implements IProWetMaterialPlanService @DS("#header.poolName") public AjaxResult checkChangePlan(String id) { List list = proWetMaterialPlanDetailMapper.selectProWetMaterialPlanDetailByOrderId(id); - if (list.size()>0){ - return error(500,"计划已接料!不可修改!"); + if (list.size() > 0) { + return error(500, "计划已接料!不可修改!"); } return success(); } @@ -471,29 +509,29 @@ public class ProWetMaterialPlanServiceImpl implements IProWetMaterialPlanService return detail; } - public static void main(String args[]){ + public static void main(String args[]) { List planDetails = new ArrayList<>(); - ProWetMaterialPlanDetail d1=new ProWetMaterialPlanDetail(); + ProWetMaterialPlanDetail d1 = new ProWetMaterialPlanDetail(); d1.setBucketCode("LG1"); d1.setMaterialCode("WL00001"); planDetails.add(d1); - ProWetMaterialPlanDetail d2=new ProWetMaterialPlanDetail(); + ProWetMaterialPlanDetail d2 = new ProWetMaterialPlanDetail(); d2.setBucketCode("LG2"); d2.setMaterialCode("WL00002"); planDetails.add(d2); - ProWetMaterialPlanDetail d3=new ProWetMaterialPlanDetail(); + ProWetMaterialPlanDetail d3 = new ProWetMaterialPlanDetail(); d3.setBucketCode("LG1"); d3.setMaterialCode("WL00001"); planDetails.add(d3); //罐 - // List gList = planDetails.stream().map(ProWetMaterialPlanDetail::getBucketCode).distinct().collect(Collectors.toList()); + // List gList = planDetails.stream().map(ProWetMaterialPlanDetail::getBucketCode).distinct().collect(Collectors.toList()); // // List glList = planDetails.stream() // .map(e -> new ProWetPlanDetailDTO(e.getBucketCode(), e.getMaterialCode())) // .collect(Collectors.toList()); //罐-料 Map mapStream = planDetails.stream() - .collect(Collectors.toMap(ProWetMaterialPlanDetail::getBucketCode,ProWetMaterialPlanDetail::getMaterialCode, (k1, k2) -> k1)); + .collect(Collectors.toMap(ProWetMaterialPlanDetail::getBucketCode, ProWetMaterialPlanDetail::getMaterialCode, (k1, k2) -> k1)); System.out.println(mapStream); } } diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 754933b0..efe0c171 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -117,7 +117,7 @@ where workorder_id not in ( select workorder_id - from pro_wet_material_plan_detail) + from pro_wet_material_plan_detail where del_flag = '0') and CONVERT(date, product_date) = #{productDate} and prod_type = 'white' and del_flag = '0' diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProWetMaterialPlanMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProWetMaterialPlanMapper.xml index 858b2376..a3689efd 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProWetMaterialPlanMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProWetMaterialPlanMapper.xml @@ -100,8 +100,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, factory_code, plan_time, sync_flag, create_by, create_time, update_by, update_time, order_type, prod_code, prod_desc, prod_source, quantity, unit, atrr1, atrr2, atrr3, status, prod_type, plan_code, shift_id, shift_desc from pro_wet_material_plan - where id = (select wet_material_plan_id from pro_wet_material_plan_detail - where workorder_id = #{workorderId}) and sync_flag = 'Y' and del_flag = '0' + where id = (select TOP 1 wet_material_plan_id from pro_wet_material_plan_detail + where workorder_id = #{workorderId} and del_flag = '0') and sync_flag = 'Y' and del_flag = '0' + + +