diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java index 6ac2c2f4..f25eba5a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java @@ -5,6 +5,7 @@ import java.util.Date; import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.domain.BaseFileData; import com.op.system.api.domain.SysUser; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -268,6 +269,7 @@ public class EquOrder extends BaseEntity { private List<String> upkeepPictures; private String picturePath; + private List<BaseFileData> picturePaths; //工具 private String itemTools; @@ -288,6 +290,14 @@ public class EquOrder extends BaseEntity { this.upkeepPictures = upkeepPictures; } + public List<BaseFileData> getPicturePaths() { + return picturePaths; + } + + public void setPicturePaths(List<BaseFileData> picturePaths) { + this.picturePaths = picturePaths; + } + public List<Date> getOrderStartArray() { return orderStartArray; } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index f9bdb462..39d334e7 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -303,8 +303,11 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { hasTask = deviceTaskMapper.getNewTaskOrder(plan); } else if ("2".equals(plan.getCalculationRule())) { //单次生成保养计划 + //根据planLoopStart 单次生成 + if(plan.getPlanLoopStart().getTime() == DateUtils.getNowDate().getTime()){ + hasTask = null; + } } - if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) { //生成保养计划 int m = this.createOrderPlan(plan); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index 0e2a464e..3c41d79f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -20,6 +20,7 @@ import com.op.system.api.domain.SysUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.device.service.IEquOrderService; +import org.springframework.util.CollectionUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -88,8 +89,16 @@ public class EquOrderServiceImpl implements IEquOrderService { List<EquOrderDetail> detailList = equOrderDetailMapper.selectEquOrderDetailByOrderCode(order.getOrderCode()); for (EquOrderDetail detail : detailList) { // 标准 - List<EquOrderStandard> standardList = equOrderStandardMapper.selectEquOrderStandardByParentCode(detail.getId()); - detail.setStandardList(standardList); + List<EquOrderStandard> standardLists = equOrderStandardMapper.selectEquOrderStandardByParentCode(detail.getId()); + for (EquOrderStandard standardList : standardLists) { + //每个检查标准里面的照片 + String imageType = "3"; + List<BaseFileData> file = equOrderStandardMapper.getBaseFileBatch(standardList.getId(), imageType); + if (!CollectionUtils.isEmpty(file)) { + standardList.setPicturePaths(file); + } + } + detail.setStandardList(standardLists); } order.setDetailList(detailList); @@ -110,6 +119,12 @@ public class EquOrderServiceImpl implements IEquOrderService { order.setPersonList(personList); + //保养图片信息 + String imageType = "3"; + List<BaseFileData> file = equOrderStandardMapper.getBaseFileBatch(order.getOrderId(), imageType); + if (!CollectionUtils.isEmpty(file)) { + order.setPicturePaths(file); + } return order; } @@ -209,6 +224,8 @@ public class EquOrderServiceImpl implements IEquOrderService { } // 获取检查项信息列表 + //照片格式 + String imageType = "3"; List<EquOrderDetail> detailList = equOrder.getDetailList(); // 处理检查项信息 for (EquOrderDetail detail : detailList) { @@ -216,7 +233,8 @@ public class EquOrderServiceImpl implements IEquOrderService { List<EquOrderStandard> standardList = detail.getStandardList(); // 处理标准信息 for (EquOrderStandard standard : standardList) { - + //删除之前的图片,重新上传 + equOrderStandardMapper.deleteBaseFileBySourceId(standard.getId(), imageType); //上传附件 if (StringUtils.isNotEmpty(standard.getPicturePath())) { String[] ids = standard.getPicturePath().split(","); @@ -265,6 +283,7 @@ public class EquOrderServiceImpl implements IEquOrderService { equOrder.setUpdateBy(SecurityContextHolder.getUserName()); equOrder.setPlanPerson(SecurityContextHolder.getUserName());// 设置负责人 equOrder.setOrderEnd(DateUtils.getNowDate());// 设置结束时间 + equOrder.setOrderStart(DateUtils.getNowDate());// 设置检查时间开始,实际上不需要开始时间 if (equOrder.getTimeArray().size() > 0) { equOrder.setOrderStart(equOrder.getTimeArray().get(0));// 工单开始时间 equOrder.setOrderEnd(equOrder.getTimeArray().get(1));// 工单结束时间 @@ -355,6 +374,7 @@ public class EquOrderServiceImpl implements IEquOrderService { } // 保养图片 + equOrderStandardMapper.deleteBaseFileBySourceId(equOrder.getOrderId(), imageType); if (StringUtils.isNotEmpty(equOrder.getPicturePath())) { String[] ids = equOrder.getPicturePath().split(","); List<BaseFileData> files = new ArrayList<>(); @@ -367,6 +387,7 @@ public class EquOrderServiceImpl implements IEquOrderService { file.setSourceId(equOrder.getOrderId()); file.setCreateBy(SecurityUtils.getUsername()); file.setCreateTime(new Date()); + file.setImageType("3"); files.add(file); } equFileMapper.insertEquFileBatch(files); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java index 96df2cc7..a060de6e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java @@ -145,9 +145,11 @@ public class EquPlanServiceImpl implements IEquPlanService { equPlan.setPlanId(IdUtils.fastSimpleUUID());// 计划id equPlan.setPlanCode((DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + planSerialNum));// 计划编码 - if (equPlan.getPlanTimeArray().size() > 0) { - equPlan.setPlanLoopStart(equPlan.getPlanTimeArray().get(0));// 计划循环周期开始时间 - equPlan.setPlanLoopEnd(equPlan.getPlanTimeArray().get(1));// 计划循环周期结束时间 + if (equPlan.getPlanTimeArray() != null){ + if (equPlan.getPlanTimeArray().size() > 0) { + equPlan.setPlanLoopStart(equPlan.getPlanTimeArray().get(0));// 计划循环周期开始时间 + equPlan.setPlanLoopEnd(equPlan.getPlanTimeArray().get(1));// 计划循环周期结束时间 + } } equPlan.setFactoryCode(factory);// 工厂编码 equPlan.setCreateBy(SecurityContextHolder.getUserName()); @@ -174,9 +176,11 @@ public class EquPlanServiceImpl implements IEquPlanService { @DS("#header.poolName") public AjaxResult updateEquPlan(EquPlan equPlan) { // 设置循环范围时间 - if (equPlan.getPlanTimeArray().size() != 0) { - equPlan.setPlanLoopStart(equPlan.getPlanTimeArray().get(0));// 循环开始时间 - equPlan.setPlanLoopEnd(equPlan.getPlanTimeArray().get(1));// 循环结束时间 + if (equPlan.getPlanTimeArray() != null){ + if (equPlan.getPlanTimeArray().size() > 0) { + equPlan.setPlanLoopStart(equPlan.getPlanTimeArray().get(0));// 计划循环周期开始时间 + equPlan.setPlanLoopEnd(equPlan.getPlanTimeArray().get(1));// 计划循环周期结束时间 + } } // 更新计划 equPlanMapper.updateEquPlan(equPlan); diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 8f2bc8f8..d6017b19 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -169,14 +169,17 @@ <!--设备总数--> <select id="getTotalEquipment" resultType="java.lang.String"> - select count(*) from base_equipment be where be.del_flag = '0' and be.status = '1' + select count(1) + from base_equipment be + where be.del_flag = '0' + and be.status = '1' </select> <select id="selectGroups" resultType="com.op.device.domain.vo.IEquFaultVO"> select be.equipment_code AS 'code', be.equipment_name AS 'name' from base_equipment be where be.del_flag = '0' - and be.equipment_category = '1' + and be.equipment_category = '1' </select> <select id="selectEquipmentFaultNumForMonth" resultType="java.util.Map"> diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index b808e336..eeb2c007 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -61,16 +61,44 @@ </sql> <select id="selectEquOrderList" parameterType="EquOrder" resultMap="EquOrderResult"> - select eo.order_id, eo.plan_id, eo.plan_code, eo.plan_type, eo.order_code, eo.plan_workshop, eo.plan_prod_line, - eo.plan_loop, - eo.plan_loop_type, - eo.plan_loop_start, eo.plan_loop_end, eo.order_start, eo.order_end, eo.equipment_code, eo.order_status, - eo.order_cost, eo.plan_person, eo.order_cost_time, eo.order_sign_person, - eo.factory_code, eo.attr1, eo.attr2, eo.attr3, eo.del_flag, eo.create_by, eo.create_time, - eo.update_by, - eo.update_time,eo.upkeep,eo.calculation_rule,eo.shut_down,eo.order_inspect,eo.repair_code,eo.work_code,eo.outsource_code, - be.equipment_name, - ep.plan_name planName + select + eo.order_id, + eo.plan_id, + eo.plan_code, + eo.plan_type, + eo.order_code, + eo.plan_workshop, + eo.plan_prod_line, + eo.plan_loop, + eo.plan_loop_type, + eo.plan_loop_start, + eo.plan_loop_end, + eo.order_start, + eo.order_end, + eo.equipment_code, + eo.order_status, + eo.order_cost, + eo.plan_person, + eo.order_cost_time, + eo.order_sign_person, + eo.factory_code, + eo.attr1, + eo.attr2, + eo.attr3, + eo.del_flag, + eo.create_by, + eo.create_time, + eo.update_by, + eo.update_time, + eo.upkeep, + eo.calculation_rule, + eo.shut_down, + eo.order_inspect, + eo.repair_code, + eo.work_code, + eo.outsource_code, + be.equipment_name, + ep.plan_name planName from equ_order eo left join base_equipment be on be.equipment_code = eo.equipment_code left join equ_plan ep on ep.plan_code = eo.plan_code @@ -83,23 +111,17 @@ <if test="planProdLine != null and planProdLine != ''">and eo.plan_prod_line = #{planProdLine}</if> <if test="planLoop != null and planLoop != ''">and eo.plan_loop = #{planLoop}</if> <if test="planLoopType != null and planLoopType != ''">and eo.plan_loop_type = #{planLoopType}</if> - <if test="equipmentCode != null and equipmentCode != ''">and eo.equipment_code like concat('%', - #{equipmentCode}, '%') - </if> - <if test="equipmentName != null and equipmentName != ''">and be.equipment_name like concat('%', - #{equipmentName}, '%') - </if> + <if test="equipmentCode != null and equipmentCode != ''">and eo.equipment_code like concat('%',#{equipmentCode}, '%')</if> + <if test="equipmentName != null and equipmentName != ''">and be.equipment_name like concat('%',#{equipmentName}, '%')</if> <if test="planLoopStart != null ">and eo.plan_loop_start = #{planLoopStart}</if> <if test="planLoopEnd != null ">and eo.plan_loop_end = #{planLoopEnd}</if> <if test="orderStart != null ">and CONVERT(date,eo.order_start) = #{orderStart}</if> <if test="orderEnd != null ">and eo.order_end = #{ord5erEnd}</if> <if test="orderStatus != null and orderStatus != ''">and eo.order_status = #{orderStatus}</if> <if test="orderCost != null ">and eo.order_cost = #{orderCost}</if> - <if test="planPerson != null and planPerson != ''">and eo.plan_person like concat('%', #{planPerson}, '%') - </if> + <if test="planPerson != null and planPerson != ''">and eo.plan_person like concat('%', #{planPerson}, '%')</if> <if test="orderCostTime != null and orderCostTime != ''">and eo.order_cost_time = #{orderCostTime}</if> - <if test="orderSignPerson != null and orderSignPerson != ''">and eo.order_sign_person = #{orderSignPerson} - </if> + <if test="orderSignPerson != null and orderSignPerson != ''">and eo.order_sign_person = #{orderSignPerson}</if> <if test="factoryCode != null and factoryCode != ''">and eo.factory_code = #{factoryCode}</if> <if test="attr1 != null and attr1 != ''">and eo.attr1 = #{attr1}</if> <if test="attr2 != null and attr2 != ''">and eo.attr2 = #{attr2}</if> @@ -124,6 +146,7 @@ <if test="orderStartArrayEnd != null ">and #{orderStartArrayEnd} >= CONVERT(date,eo.order_start)</if> <if test="orderEndArrayStart != null ">and CONVERT(date,eo.order_end) >= #{orderEndArrayStart}</if> <if test="orderEndArrayEnd != null ">and #{orderEndArrayEnd} >= CONVERT(date,eo.order_end)</if> + <if test="planName != null and planName != ''">and ep.plan_name like concat('%', #{planName}, '%')</if> and eo.del_flag = '0' and be.del_flag = '0' and ep.del_flag = '0' </where> order by eo.create_time desc @@ -195,14 +218,14 @@ eo.outsource_code, be.equipment_name from equ_order eo - left join base_equipment be on eo.equipment_code = be.equipment_code + left join base_equipment be on eo.equipment_code = be.equipment_code where eo.plan_type = #{planType} - and eo.del_flag = '0' - and eo.order_status != '1' - and eo.order_code in (select order_code + and eo.del_flag = '0' + and eo.order_status != '1' + and eo.order_code in (select order_code from equ_order_person where del_flag = '0' - and user_name = #{userId} + and user_name = #{userId} GROUP BY order_code) order by eo.plan_loop_type, eo.plan_loop, eo.create_time desc, eo.equipment_code </select> @@ -245,12 +268,12 @@ eo.outsource_code, be.equipment_name from equ_order eo - left join base_equipment be on eo.equipment_code = be.equipment_code + left join base_equipment be on eo.equipment_code = be.equipment_code where eo.del_flag = '0' - and eo.order_status = '1' - and eo.plan_type = #{planType} - and eo.plan_person = #{userId} - and eo.order_code in (select order_code + and eo.order_status = '1' + and eo.plan_type = #{planType} + and eo.plan_person = #{userId} + and eo.order_code in (select order_code from equ_order_person where del_flag = '0' and user_name = #{userId} GROUP BY order_code) @@ -404,18 +427,18 @@ <!-- 手持维修查询检查项--> <select id="selectCheckListByWorkCode" parameterType="EquOrder" resultMap="EquOrderResult"> select - eo.order_id, - eo.order_code, - eo.repair_code, - eo.work_code, - eo.plan_loop, - eo.plan_loop_type, - eod.id, - eod.item_name, - eod.item_method, - eod.item_type, - eod.item_type_name, - eod.item_tools + eo.order_id, + eo.order_code, + eo.repair_code, + eo.work_code, + eo.plan_loop, + eo.plan_loop_type, + eod.id, + eod.item_name, + eod.item_method, + eod.item_type, + eod.item_type_name, + eod.item_tools from equ_order eo left join equ_order_detail eod on eo.order_code = eod.order_code where eo.work_code = #{workCode} @@ -425,18 +448,18 @@ <!-- 手持报修查询检查项--> <select id="selectCheckListByRepairCode" parameterType="EquOrder" resultMap="EquOrderResult"> select - eo.order_id, - eo.order_code, - eo.repair_code, - eo.work_code, - eo.plan_loop, - eo.plan_loop_type, - eod.id, - eod.item_name, - eod.item_method, - eod.item_type, - eod.item_type_name, - eod.item_tools + eo.order_id, + eo.order_code, + eo.repair_code, + eo.work_code, + eo.plan_loop, + eo.plan_loop_type, + eod.id, + eod.item_name, + eod.item_method, + eod.item_type, + eod.item_type_name, + eod.item_tools from equ_order eo left join equ_order_detail eod on eo.order_code = eod.order_code where eo.repair_code = #{repairCode} @@ -446,7 +469,7 @@ <!-- 查询对应检查项id--> <select id="getIdsByOrderCode" parameterType="EquOrder" resultType="java.lang.String"> select - order_id + order_id from equ_order where repair_code = #{orderCode} and del_flag = '0' @@ -475,7 +498,7 @@ update base_equipment set equipment_status = #{status} where equipment_code = #{equipmentCode} - and del_flag = '0' + and del_flag = '0' </update> diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesMachineReport.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesMachineReport.java index 462be6c6..f8d993ac 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesMachineReport.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesMachineReport.java @@ -20,6 +20,7 @@ public class MesMachineReport extends BaseEntity { private String productDateStart; //查询开始时间 private String productDateEnd; //查询结束时间 private String pduCode; //数据唯一键 + private String shiftId; //班次 private List<DynamicColumnVo> productNames; //产品名称列表 @@ -94,4 +95,12 @@ public class MesMachineReport extends BaseEntity { public void setPduCode(String pduCode) { this.pduCode = pduCode; } + + public String getShiftId() { + return shiftId; + } + + public void setShiftId(String shiftId) { + this.shiftId = shiftId; + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java index 7ccb2c3f..ab8fa790 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java @@ -81,4 +81,6 @@ public interface MesReportWorkConsumeMapper { List<MesReportWorkConsume> getBomList(MesReportWorkConsume mesReportWorkConsume); MesReportWorkConsume getNewConsumeInfo(String workorderCode); + + List<MesReportWorkConsume> getSumConsumeList(MesReportWorkConsume consumeqo); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index b5d72ead..17b66bf8 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -369,6 +369,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { //人工 = sum(每批的工时数*每批用人数) Sac2 //子工单报工 logger.info("==========================一层工单报工开始"); + sHzWorks.setMachineCode(mesReportWork.getMachineCode()); sapRson = this.reportHzToSap(sHzWorks); logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson)); }else if(workOrders.size()==2){ @@ -381,10 +382,10 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { if(sHzWorks==null){ return R.fail("未查询到子报工单"); } - //查询base_product的report_rate//箱子-大盒-小盒 - BigDecimal reportRate = mesReportWorkMapper.getReportRate(workOrders.get(0).getProductCode()); + //子工单报工 logger.info("==========================子工单报工开始"); + sHzWorks.setMachineCode(mesReportWork.getMachineCode()); sapRson = this.reportHzToSap(sHzWorks); logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson)); if(sapRson.getCode()== 200){ @@ -402,13 +403,15 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } //母工单报工 logger.info("==========================母工单报工开始"); + //查询base_product的report_rate//箱子-大盒-小盒 + BigDecimal reportRate = mesReportWorkMapper.getReportRate(workOrders.get(1).getProductCode()); if(reportRate != null){ BigDecimal newQuantity = sHzWorks.getQuantityFeedback().divide(reportRate,2, RoundingMode.HALF_UP); pHzWork.setQuantityFeedback(newQuantity); }else{ pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback()); } - + pHzWork.setMachineCode(mesReportWork.getMachineCode()); //pHzWork.setSac2("4");//母单报工固定值(上位机插入数据时候默认4) R sapR = this.reportHzToSap(pHzWork); logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR)); @@ -435,7 +438,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } //三层以上工单报工 logger.info("==========================三层(第"+n+"层)以上工单("+sHzWorks.getWorkorderCodeSap()+")报工开始"); - + sHzWorks.setMachineCode(mesReportWork.getMachineCode()); sapRson = this.reportHzToSap(sHzWorks); logger.info("==========================三层(第"+n+"层)以上工单("+sHzWorks.getWorkorderCodeSap()+")报工结束:" + JSONObject.toJSONString(sapRson)); @@ -476,7 +479,8 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { MesReportWorkConsume consumeqo = new MesReportWorkConsume(); consumeqo.setWorkorderCode(workOrder.getWorkorderCode()); consumeqo.setRecoil("X"); - List<MesReportWorkConsume> consumes = mesReportWorkConsumeMapper.selectMesReportWorkConsumeList(consumeqo); + consumeqo.setMachineCode(workOrder.getMachineCode()); + List<MesReportWorkConsume> consumes = mesReportWorkConsumeMapper.getSumConsumeList(consumeqo); if (!CollectionUtils.isEmpty(consumes)) { for (MesReportWorkConsume consume : consumes) { SapRFW.lt_hw lthw = new SapRFW.lt_hw();//MES生产订单报工货物移动修改 diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java index ed119994..55b906f5 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java @@ -622,6 +622,8 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { } private List<String> getDateInterval(String start, String end) { + start = start.substring(0,10); + end = end.substring(0,10); DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd"); List<String> dateList = Lists.newArrayList(); diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml index 54a5239e..717bb33a 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml @@ -103,7 +103,7 @@ where del_flag = '0' </select> <select id="getConsumeList" resultType="com.op.mes.domain.MesReportWorkConsume"> - select mrwc.record_id recordId, + select DISTINCT mrwc.record_id recordId, mrwc.workorder_code workorderCode, mrwc.material_code materialCode, mrwc.material_name materialName, @@ -115,8 +115,9 @@ mrwc.attr1, mrwc.warehouse_code warehouseCode, mpd.quantity planQuantity, - mrwc.parent_order parentOrder + mrwc.parent_order parentOrder,mrwc.report_code reportCode from mes_report_work_consume mrwc + left join mes_report_work mrw on mrw.report_code = mrwc.report_code left join pro_order_workorder pow on mrwc.workorder_code = pow.workorder_code left join mes_prepare mp on mp.workorder_code = pow.workorder_code and mp.del_flag='0' left join mes_prepare_detail mpd on mpd.prepare_id = mp.prepare_id @@ -125,9 +126,9 @@ where mrwc.del_flag = '0' and pow.del_flag = '0' and mrwc.workorder_code = #{workorderCode} <if test="machineCode!=''"> - and pow.workorder_name = #{machineCode} + and mrw.machine_code = #{machineCode} </if> - order by mrwc.recoil,mrwc.attr1 + order by mrwc.report_code,mrwc.recoil,mrwc.attr1 </select> <select id="getSonConsumeList" resultType="com.op.mes.domain.MesReportWorkConsume"> select mrwc.record_id recordId, @@ -169,6 +170,21 @@ from mes_report_work_consume where workorder_code = #{workorderCode} and del_flag = '0' </select> + <select id="getSumConsumeList" resultType="com.op.mes.domain.MesReportWorkConsume"> + select t.materialCode, + sum(t.quantity) quantity + from( + select DISTINCT + mrwc.material_code materialCode, + mrwc.quantity + from mes_report_work_consume mrwc + left join mes_report_work mrw on mrw.report_code = mrwc.report_code + left join pro_order_workorder pow on mrwc.workorder_code = pow.workorder_code + where mrwc.del_flag = '0' and pow.del_flag = '0' + and mrwc.workorder_code = #{workorderCode} + and mrw.machine_code = #{machineCode} and mrwc.recoil = #{recoil} + ) t group by t.materialCode + </select> <insert id="insertMesReportWorkConsume" parameterType="MesReportWorkConsume"> insert into mes_report_work_consume diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index 8c3eb224..b9b62aa9 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -563,7 +563,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mrw.use_man useMan, mrw.create_time createTime, pow.workorder_code_sap workorderCodeSap, - mrw.remark + mrw.remark,mrw.report_code reportCode from mes_report_work mrw left join pro_order_workorder pow on mrw.workorder_code = pow.workorder_code where mrw.del_flag='0' and pow.del_flag = '0' @@ -766,6 +766,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) mt LEFT JOIN pro_order_workorder pow ON pow.workorder_id = mt.OrderCode WHERE pow.order_code IS NOT NULL + <if test="shiftId != null and shiftId != ''"> + and pow.shift_id = #{shiftId} + </if> <if test="productCode != null and productCode != ''"> and pow.product_code like concat('%', #{productCode}, '%') </if> @@ -936,6 +939,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where 1=1 <if test="id != null">and id = #{id}</if> <if test="workorderCode != null">and workorder_code = #{workorderCode}</if> + <if test="machineCode != null">and machine_code = #{machineCode}</if> </update> <update id="updateOrderWorkStatus"> update pro_order_workorder @@ -962,7 +966,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" upload_time = null, upload_status = '0', upload_msg = null - where workorder_code = #{workorderCode} or parent_order = #{workorderCode} + where (workorder_code = #{workorderCode} or parent_order = #{workorderCode}) + <if test="machineCode != null">and machine_code = #{machineCode}</if> </update> <update id="updateAttr2"> update mes_report_work_consume @@ -973,6 +978,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <foreach collection="list" item="item" separator=";"> update mes_report_work set remark = #{item.remark} where workorder_code = #{item.workorderCode} + <if test="item.reportCode != null">and report_code = #{item.reportCode}</if> </foreach> </update> diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java index 196cb84f..edcf14c1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java @@ -85,6 +85,26 @@ public class QcCheckProject extends BaseEntity { private String materialCode; private String typeCode; private String groupId; + @Excel(name = "检测项分类",readConverterExp = "0=内容物,1=包装") + private String itemType; + @Excel(name = "合格判定比例") + private String judgeRate; + + public String getItemType() { + return itemType; + } + + public void setItemType(String itemType) { + this.itemType = itemType; + } + + public String getJudgeRate() { + return judgeRate; + } + + public void setJudgeRate(String judgeRate) { + this.judgeRate = judgeRate; + } public String getProjectType() { return projectType; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java index e2193604..5583b8fb 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java @@ -138,6 +138,33 @@ public class QcCheckTaskDetail extends BaseEntity { private String defectCodes; private String defectNames; private String defectQualitys; + private String itemType; + private String judgeRate; + private String samplePlan; + + public String getSamplePlan() { + return samplePlan; + } + + public void setSamplePlan(String samplePlan) { + this.samplePlan = samplePlan; + } + + public String getItemType() { + return itemType; + } + + public void setItemType(String itemType) { + this.itemType = itemType; + } + + public String getJudgeRate() { + return judgeRate; + } + + public void setJudgeRate(String judgeRate) { + this.judgeRate = judgeRate; + } public String getDefectCodes() { return defectCodes; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java index 508ff298..73adbf71 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java @@ -111,6 +111,24 @@ public class QcCheckTypeProject extends BaseEntity { private String checkMode; private String unit; private String weight; + private String itemType; + private String judgeRate; + + public String getItemType() { + return itemType; + } + + public void setItemType(String itemType) { + this.itemType = itemType; + } + + public String getJudgeRate() { + return judgeRate; + } + + public void setJudgeRate(String judgeRate) { + this.judgeRate = judgeRate; + } public String getWeight() { return weight; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckProjectMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckProjectMapper.java index e64febec..25a37844 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckProjectMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckProjectMapper.java @@ -65,6 +65,7 @@ public interface QcCheckProjectMapper { public QcCheckProject selectSerialNumber(); public QcCheckProject selectCheckProjectByRuleName(@Param("ruleName") String ruleName, - @Param("projectType") String projectType); + @Param("projectType") String projectType, + @Param("sort") String sort); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java index 3878ffdc..0fd8942b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java @@ -86,5 +86,4 @@ public interface QcCheckTaskProduceMapper { public List<QcCheckTaskProduce> getOrderWorksW2(ProOrderWorkorderDTO qoWork); public QcCheckTaskProduce getLastXJTask(QcCheckTaskProduce productTask); - } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskWarehousingMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskWarehousingMapper.java index 81bc3870..f8630bb0 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskWarehousingMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskWarehousingMapper.java @@ -65,4 +65,6 @@ public interface QcCheckTaskWarehousingMapper { int getTodayMaxNum(QcCheckTaskWarehousing qcCheckTaskWarehousing); List<QcCheckTaskWarehousing> getQcListLoc(QcCheckTaskWarehousing qcCheckTaskWarehousing); + + int updateWorkOrderStauts(QcCheckTaskWarehousing qcCheckTaskWarehousing); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java index b1e5c590..6ca2741a 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java @@ -154,7 +154,8 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { if (checkResult.isSuccess()) { for (QcCheckProject project : projectList) { try { - QcCheckProject pro = qcCheckProjectMapper.selectCheckProjectByRuleName(project.getRuleName(), project.getProjectType()); + QcCheckProject pro = qcCheckProjectMapper.selectCheckProjectByRuleName(project.getRuleName(), + project.getProjectType(),project.getSort().toString()); if (ObjectUtils.isEmpty(pro)) { BeanValidators.validateWithException(validator, project); project.setId(IdUtils.fastSimpleUUID()); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index a5a48c6a..a807a5fe 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -537,7 +537,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements List<QcCheckTaskIncome> dtos = qcCheckUnqualifiedMapper.getProductWorkOrder(qcCheckTaskIncome); for(QcCheckTaskIncome dto:dtos){ String statusName = ""; - if("w5".equals(dto.getStatus())){ + if("w5".equals(dto.getStatus())){//设计有问题TODO statusName = "质检完成"; }else{ statusName = "质检未完成"; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java index 6c3e3aab..1ed7bd5e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java @@ -253,7 +253,13 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin item.setFactoryCode(factoryCode); item.setStatus("Y"); } - return qcCheckTaskDetailMapper.addBatch(items); + int s = qcCheckTaskDetailMapper.addBatch(items); + +// /**pro_order_workorder**/ +// qcCheckTaskWarehousing.setStatus("w6"); +// qcCheckTaskWarehousingMapper.updateWorkOrderStauts(qcCheckTaskWarehousing); + logger.info("qc_check_task_detail:"+s+"成功"); + return 1; } /** @@ -370,20 +376,18 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin List<QcCheckTaskProduce> w3works = qcCheckTaskProduceMapper.getOrderWorksW2(qoWork); for(QcCheckTaskProduce productTask:w3works){ QcCheckTaskWarehousing cpTask = new QcCheckTaskWarehousing(); - BeanUtils.copyProperties(productTask,cpTask); - productTask.setCheckType("checkTypeCP");//入库检验 productTask.setOrderNo(productTask.getWorkorderCode()); + BeanUtils.copyProperties(productTask,cpTask); -// //是否已经存在入库检验 -// QcCheckTaskProduce cpTask0 = qcCheckTaskProduceMapper.getLastXJTask(productTask); -// if(cpTask0 == null){ -// logger.info("++++++++++++入库检验任务生成:已经存在++++++++++++++"); -// }else{ -// int m = insertQcCheckTaskWarehousing(cpTask); -// logger.info("++++++++++++入库检验任务生成" + m + "++++++++++++++"); -// } - + //是否已经存在入库检验 + QcCheckTaskProduce cpTask0 = qcCheckTaskProduceMapper.getLastXJTask(productTask); + if(cpTask0 != null){ + logger.info("++++++++++++入库检验任务生成:已经存在++++++++++++++"); + }else{ + int m = insertQcCheckTaskWarehousing(cpTask); + logger.info("++++++++++++入库检验任务生成" + m + "++++++++++++++"); + } } logger.info("++++++++++++" + poolName + "++++入库检验巡检结束++++++++++"); } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml index de55ae00..6877a4b5 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml @@ -25,13 +25,16 @@ <result property="defectLevel" column="defect_level"/> <result property="projectType" column="project_type"/> <result property="sort" column="sort" /> + <result property="itemType" column="item_type" /> + <result property="judgeRate" column="judge_rate" /> </resultMap> <sql id="selectQcCheckProjectVo"> select id, order_num, rule_name, property_code, check_mode, check_tool, unit_code, check_standard, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag,sample_plan, - judge,defect_level,project_type,sort - from qc_check_project + judge,defect_level,project_type,sort,item_type,judge_rate + + from qc_check_project </sql> <select id="selectQcCheckProjectList" parameterType="QcCheckProject" resultMap="QcCheckProjectResult"> @@ -81,6 +84,8 @@ <if test="defectLevel != null">defect_level,</if> <if test="projectType != null">project_type,</if> <if test="sort != null">sort,</if> + <if test="itemType != null">item_type,</if> + <if test="judgeRate != null">judge_rate,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if> @@ -103,6 +108,8 @@ <if test="defectLevel != null">#{defectLevel},</if> <if test="projectType != null">#{projectType},</if> <if test="sort != null">#{sort},</if> + <if test="itemType != null">#{itemType},</if> + <if test="judgeRate != null">#{judgeRate},</if> </trim> </insert> @@ -128,6 +135,8 @@ <if test="defectLevel != null">defect_level = #{defectLevel},</if> <if test="projectType != null">project_type = #{projectType},</if> <if test="sort != null">sort = #{sort},</if> + <if test="itemType != null">item_type = #{itemType},</if> + <if test="judgeRate != null">judge_rate = #{judgeRate},</if> </trim> where id = #{id} </update> @@ -151,7 +160,7 @@ <select id="selectCheckProjectByRuleName" resultMap="QcCheckProjectResult"> <include refid="selectQcCheckProjectVo"/> - where rule_name = #{ruleName} and project_type = #{projectType} + where rule_name = #{ruleName} and project_type = #{projectType} and sort = #{sort} </select> </mapper> diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml index f7f997ba..4a797b31 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml @@ -153,7 +153,9 @@ qctp.upper_diff upperDiff, qctp.down_diff downDiff, qctp.sample, - qctp.sample_num sampleNum, + qcp.sample_plan samplePlan, + qctp.item_type itemType, + qctp.judge_rate judgeRate, qpt.standard_no standardNo from qc_check_task_detail td left join qc_check_type_project qctp on td.type_project_id = qctp.id diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index 037a0401..975881d6 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -434,8 +434,8 @@ left join base_equipment be on be.equipment_code = pow.workorder_name and be.equipment_type_code = 'equ_type_bzx' where pow.del_flag = '0' and pow.status = #{status} and pow.parent_order = '0' - <!--and (pow.product_date = CONVERT(varchar(10),GETDATE(), 120) - or pow.product_date = CONVERT(varchar(10),DATEADD(DAY, -1, GETDATE()), 120))--> + <!---->and (pow.product_date = CONVERT(varchar(10),GETDATE(), 120) + or pow.product_date = CONVERT(varchar(10),DATEADD(DAY, -1, GETDATE()), 120)) </select> <select id="getLastXJTask" resultType="com.op.quality.domain.QcCheckTaskProduce"> select top 1 @@ -454,9 +454,10 @@ qct.confirm_man_code confirmManCode, qct.confirm_man_name confirmManName from qc_check_task qct - where qct.check_type = 'checkTypeSCXJ' and qct.del_flag = '0' + where qct.check_type = #{checkType} and qct.del_flag = '0' and qct.del_flag = '0' and qct.order_no = #{workorderCode} <!--and CONVERT(varchar(10),qct.income_time, 120) = CONVERT(varchar(10),GETDATE(), 120)--> order by qct.create_time desc </select> + </mapper> diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskWarehousingMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskWarehousingMapper.xml index 83779e65..89d33e94 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskWarehousingMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskWarehousingMapper.xml @@ -213,6 +213,9 @@ </trim> where record_id = #{recordId} </update> + <update id="updateWorkOrderStauts"> + update pro_order_workorder set status = #{status} where workorder_code = #{orderNo} and del_flag = '0' + </update> <delete id="deleteQcCheckTaskWarehousingByRecordId" parameterType="String"> delete from qc_check_task where record_id = #{recordId} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml index f5d2e70e..1403d928 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml @@ -216,7 +216,8 @@ standard_value,upper_diff,down_diff,unit, sample,sort, create_by,create_time, - group_id,material_code,property_code + group_id,material_code,property_code, + item_type,judge_rate )values <foreach collection="list" index="index" item="item" separator=","> ( @@ -224,7 +225,8 @@ #{item.standardValue},#{item.upperDiff},#{item.downDiff},#{item.unit}, #{item.sample},#{item.sort}, #{item.createBy},#{item.createTime}, - #{item.groupId},#{item.materialCode},#{item.propertyCode} + #{item.groupId},#{item.materialCode},#{item.propertyCode}, + #{item.itemType},#{item.judgeRate} ) </foreach> </insert> @@ -270,18 +272,20 @@ </delete> <select id="getProjectInfoList" resultType="com.op.quality.domain.QcCheckProject"> select - id, - order_num orderNum, - rule_name ruleName, - property_code propertyCode, - check_mode checkMode, - check_tool checkTool, - unit_code unitCode, - check_standard checkStandard, - sample_plan samplePlan, - sort, - judge , - defect_level defectLevel + id, + order_num orderNum, + rule_name ruleName, + property_code propertyCode, + check_mode checkMode, + check_tool checkTool, + unit_code unitCode, + check_standard checkStandard, + sample_plan samplePlan, + sort, + judge , + defect_level defectLevel, + item_type itemType, + judge_rate judgeRate from qc_check_project where del_flag = '0' <if test="projectType != null">and project_type = #{projectType}</if> @@ -292,6 +296,7 @@ <if test="samplePlan != null">and sample_plan = #{samplePlan}</if> <if test="materialCode != null">and material_code = #{materialCode}</if> ) + order by sort </select> <select id="getProjectOptions" resultType="com.op.quality.domain.QcProjectType"> select project_type_code projectTypeCode,