diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index 0a84fae2b..85908d3c8 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -28,6 +28,9 @@ public interface RemoteSapService { @PostMapping("/sap/shopUpdateSync") public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder); + @PostMapping("/sap/shopOrderBomUpdate") + public R shopOrderBomUpdate(@RequestBody(required = false) List> mapList); + @PostMapping("/sap/sapRouterSync") public R sapRouterSync(@RequestBody SapRouterQuery sapRouterQuery); diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapBaseProduct.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapBaseProduct.java index 9573c0140..ce218f3f1 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapBaseProduct.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapBaseProduct.java @@ -166,6 +166,16 @@ public class SapBaseProduct extends BaseEntity { @Excel(name = "补料比例") private String appendPercent; + private String meins; + + public String getMeins() { + return meins; + } + + public void setMeins(String meins) { + this.meins = meins; + } + public void setProductId(String productId) { this.productId = productId; } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java index e9709b2a3..1c4ca56be 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java @@ -79,6 +79,11 @@ public class RemoteSapFallbackFactory implements FallbackFactory> mapList) { + return R.fail("sap shopOrderBomUpdate失败" + throwable.getMessage()); + } + @Override public R sapBackflushMP(List sapBackflushMPQueryList) { return R.fail("反冲物料领料过账失败" + throwable.getMessage()); diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java index ad034b78a..4f1c22df4 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java @@ -456,6 +456,17 @@ public class MesReportWorkController extends BaseController { public List getNewPrepareData(@RequestBody MesPrepareDetail mesPrepareDetail) { return mesReportWorkService.getNewPrepareData(mesPrepareDetail); } + /**删除新增的报工物料组成**/ + @DeleteMapping("/deleteBomRowNow/{id}") + public AjaxResult deleteBomRowNow(@PathVariable String id) { + return toAjax(mesReportWorkService.deleteBomRowNow(id)); + } + //获取仓库下拉列表 + @GetMapping("/getWarehouseList") + public List getWarehouseList(MesReportWorkConsume workConsume) { + List rlist = mesReportWorkService.getWarehouseList(workConsume); + return rlist; + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java index 1f85da30f..beaa3cfab 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java @@ -109,6 +109,25 @@ public class MesReportWorkConsume extends BaseEntity { private String pMaterialCode; private String workorderCodeSap; + private String warehouseCode; + private String warehouseName; + + public String getWarehouseCode() { + return warehouseCode; + } + + public void setWarehouseCode(String warehouseCode) { + this.warehouseCode = warehouseCode; + } + + public String getWarehouseName() { + return warehouseName; + } + + public void setWarehouseName(String warehouseName) { + this.warehouseName = warehouseName; + } + public String getWorkorderCodeSap() { return workorderCodeSap; } 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 cd7d55f6f..7ccb2c3f2 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 @@ -79,4 +79,6 @@ public interface MesReportWorkConsumeMapper { List getSonConsumeList(MesReportWorkConsume mesReportWorkConsume); List getBomList(MesReportWorkConsume mesReportWorkConsume); + + MesReportWorkConsume getNewConsumeInfo(String workorderCode); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java index d4dd9335e..5362f1a4d 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java @@ -137,5 +137,9 @@ public interface MesReportWorkMapper { ProOrderWorkorder getSonWorkOrder(String workorderCode); - public MesReportWork getReportWorkHz1(MesReportWork mesReportWork); + int deleteBomRowNow(String id); + + List getWarehouseList(MesReportWorkConsume workConsume); + + List getUpdateAttr1Boms(MesReportWork workorderCode); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java index 3063faf24..db5c06ce4 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java @@ -111,4 +111,8 @@ public interface IMesReportWorkService { List getAllLevelReportList(MesReportWork mesReportWork); List getNewPrepareData(MesPrepareDetail mesPrepareDetail); + + int deleteBomRowNow(String id); + + List getWarehouseList(MesReportWorkConsume workConsume); } 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 83c285966..b8c3ca601 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 @@ -306,26 +306,29 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { * 关闭母工单,关闭子工单 * * 一层---------------------------------------- * * 工单进行报工的时候公式调整如下(数值单位不用管): - * * 机器=开机时长 - * * 人工 = 用人数*机器(开机时长) + * * 产量=sum(每批次半成品的产量)【单位pc】 + * * 机器=sum(工时数) 【设备开机时间】 + * * 人工 = sum(每批的工时数*每批用人数) * * 折旧 = 机器 * * 其它 = 人工 * * 二层---------------------------------------- * * 子单进行报工的时候公式调整如下(数值单位不用管): - * * 机器=sum(工时数) - * * 人工 = 用人数*机器 + * * 产量=sum(每批次半成品的产量)【单位pc】 + * * 机器=sum(工时数)【设备开机时间】 + * * 人工 = sum(人数*开机时间)【人数为每批次的产线人数,开机时间为每批次工时】 * * 折旧 = 机器 * * 其它 = 人工 * *

* * 母单进行报工的时候公式调整如下: - * * 机器=sum(工时数) - * * 人工 = 4*sum(工时数) + * * 产量=sum(每批次半成品的产量)【单位pc】 + * * 机器=sum(工时数)【设备开机时间】 + * * 人工 = 4*sum(开机时间) 【人数固定为4人,可修改】 * * 折旧 = 机器 * * 其它 = 人工 * * 三层及其以上---------------------------------------- * * 工单进行报工的时候公式调整如下(数值单位不用管),根据上位机用户真实填的来: - * * 机器=开机时长 - * * 人工 = 人工 + * * 机器=sum(工时数)【设备开机时间】 + * * 人工 = sum(人数*开机时间) * * 折旧 = 机器 * * 其它 = 人工 * @param mesReportWork @@ -343,19 +346,28 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { if (CollectionUtils.isEmpty(workOrders)) { return R.fail("子母工单信息缺失"); } + + /**修改sap物料损耗组成**/ + R updateBomsSap = this.updateAttr1BomsSap(workOrders); + if(updateBomsSap.getCode()== 500){ + return updateBomsSap; + } + R sapRson = null; if(workOrders.size()==1){ /**(一层报工)工单报工**/ mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 mesReportWork.setProdType("prod"); mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); - MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz1(mesReportWork); + MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork); if(sHzWorks==null){ return R.fail("未查询到一层报工单"); } + //机器=sum(工时数) 【设备开机时间】 Sac1 + //人工 = sum(每批的工时数*每批用人数) Sac2 //子工单报工 logger.info("==========================一层工单报工开始"); - sapRson = this.reportHzToSap(sHzWorks,1); + sapRson = this.reportHzToSap(sHzWorks); logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson)); }else if(workOrders.size()==2){ /**(两层报工)子工单先报工,然后母工单报工**/ @@ -368,7 +380,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } //子工单报工 logger.info("==========================子工单报工开始"); - sapRson = this.reportHzToSap(sHzWorks,2); + sapRson = this.reportHzToSap(sHzWorks); logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson)); if(sapRson.getCode()== 200){ //一定是子单报工成功返回后,再母单报工 @@ -385,25 +397,32 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { //母工单报工 logger.info("==========================母工单报工开始"); pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback()); - pHzWork.setSac2("4");//母单报工固定值 - R sapR = this.reportHzToSap(pHzWork,2); + //pHzWork.setSac2("4");//母单报工固定值(上位机插入数据时候默认4) + R sapR = this.reportHzToSap(pHzWork); logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR)); return sapR; } }else if(workOrders.size()>=3){ - for(MesReportWork workOrder:workOrders){ + MesReportWork hzWorks = null; + for(int n=0;n workOrderCodes) { + //是否有变动的物料损耗组成 + List updateBoms = mesReportWorkMapper.getUpdateAttr1Boms(workOrderCodes.get(workOrderCodes.size()-1)); + if(!CollectionUtils.isEmpty(updateBoms)){ + List> mapList = new ArrayList<>(); + Map mapBom = null; + for(MesReportWorkConsume updateBom:updateBoms){ + mapBom = new HashMap(); + mapBom.put("P_AUFNR",updateBom.getWorkorderCodeSap());// 订单号 例如:000100308287 + mapBom.put("P_MATNR",updateBom.getMaterialCode());// 物料号 例如:000000040000015089 + mapBom.put("P_GMEIN",updateBom.getUnit());// 基本计量单位 例如:m + mapBom.put("P_WERKS",workOrderCodes.get(0).getFactoryCode());//物料工厂 例如:1000 + mapBom.put("P_LGORT",updateBom.getWarehouseCode());//仓库编号 例如:0013 + mapList.add(mapBom); + } + + logger.info(workOrderCodes.get(workOrderCodes.size()-1).getWorkorderCode() + + "报工损耗物料组件修改请求:" + JSONObject.toJSONString(mapList)); + R bomUpdateR = remoteSapService.shopOrderBomUpdate(mapList); + logger.info(workOrderCodes.get(workOrderCodes.size()-1).getWorkorderCode() + + "报工损耗物料组件修改结果:" + JSONObject.toJSONString(bomUpdateR)); + return bomUpdateR; + } + return R.ok(); + } /** * * @param workOrder * @return */ - private R reportHzToSap(MesReportWork workOrder,int cengji) { + private R reportHzToSap(MesReportWork workOrder) { Date nowTime = DateUtils.getNowDate(); SapRFW sapRFW = new SapRFW(); sapRFW.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号 sapRFW.setGamng(workOrder.getQuantityFeedback().toString());//报工数量 SapRFW.lt_gs ltgs = new SapRFW.lt_gs();//生产订单报工工时修改 ltgs.setConf_activity1(workOrder.getSac1());//机器 - BigDecimal newMan = null; - if(cengji == 3){ - //订单是三层的情况 - newMan = new BigDecimal(workOrder.getSac2()); - }else{ - //订单是一层、二层的情况 - newMan = new BigDecimal(workOrder.getSac1()) - .multiply(new BigDecimal(workOrder.getSac2())); - } - ltgs.setConf_activity2(newMan.toString());//人工 + ltgs.setConf_activity2(workOrder.getSac2());//人工 ltgs.setConf_activity3(workOrder.getSac1());//折旧 - ltgs.setConf_activity4(newMan.toString());//其它 + ltgs.setConf_activity4(workOrder.getSac2());//其它 // ltgs.setConf_activity5(workOrder.getSac5()); // ltgs.setConf_activity6(workOrder.getSac6()); sapRFW.setLt_gs(ltgs); @@ -481,6 +517,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { mesReportWorkMapper.updateSyncSapStatus(workOrder); return r; +// return R.ok();//测试 } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java index 1d6fe2d68..65f44bfda 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java @@ -1,10 +1,8 @@ package com.op.mes.service.impl; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; @@ -16,6 +14,7 @@ import com.op.mes.mapper.MesReportWorkMapper; import com.op.system.api.domain.dto.BaseBomDTO; import com.op.system.api.domain.mes.BaseProductDTO; import com.op.system.api.domain.mes.BaseTeamTDTO; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -171,7 +170,36 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer mesReportWorkConsume.setUpdateTime(nowTime); mesReportWorkConsume.setUpdateBy(updateBy); } - return mesReportWorkConsumeMapper.submitConsumePS(mesReportWorkConsumes); + List updates = mesReportWorkConsumes + .stream() + .filter(u -> u.getCreateTime()!=null).collect(Collectors.toList()); + List adds = mesReportWorkConsumes + .stream() + .filter(u -> u.getCreateTime()==null).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(adds)){ + Map consumeInfoMap = new HashMap<>(); + for(MesReportWorkConsume add:adds){ + MesReportWorkConsume newConsumeInfo = consumeInfoMap.get(add.getWorkorderCode()); + if(newConsumeInfo==null){ + MesReportWorkConsume mapItem = mesReportWorkConsumeMapper.getNewConsumeInfo(add.getWorkorderCode()); + consumeInfoMap.put(add.getWorkorderCode(),mapItem); + } + newConsumeInfo = consumeInfoMap.get(add.getWorkorderCode()); + + add.setRecordId(IdUtils.fastSimpleUUID()); + add.setReportCode(newConsumeInfo.getReportCode()); + add.setWorkorderCode(newConsumeInfo.getWorkorderCode()); + add.setCreateTime(nowTime); + add.setCreateTime(nowTime); + add.setAttr1("1");//新增标识 + add.setParentOrder(newConsumeInfo.getParentOrder()); + } + int addNum =mesReportWorkConsumeMapper.addConsumePS(adds); + System.out.println("addNum:"+addNum); + } + int updateNum =mesReportWorkConsumeMapper.submitConsumePS(updates); + System.out.println("addNum:"+updateNum); + return updateNum; } @Override 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 b2f0a60a7..803dc3590 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 @@ -237,6 +237,18 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { return details; } + @Override + @DS("#header.poolName") + public int deleteBomRowNow(String id) { + return mesReportWorkMapper.deleteBomRowNow(id); + } + + @Override + @DS("#header.poolName") + public List getWarehouseList(MesReportWorkConsume workConsume) { + return mesReportWorkMapper.getWarehouseList(workConsume); + } + @Override @DS("#header.poolName") public int submitReportPS(List mesReportWorks) { @@ -550,6 +562,8 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { return dtos; } + + public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); Date now = calendar.getTime(); 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 a33283fad..559692d2d 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 @@ -66,26 +66,25 @@ where record_id = #{recordId} + insert into mes_report_work_consume @@ -203,13 +211,15 @@ ( record_id,report_code,workorder_code, material_code,material_name,quantity,unit, - create_by,create_time,parent_order,recoil + create_by,create_time,parent_order,recoil, + warehouse_code,warehouse_name )values ( #{item.recordId},#{item.reportCode},#{item.workorderCode}, #{item.materialCode},#{item.materialName},#{item.quantity},#{item.unit}, - #{item.createBy},#{item.createTime},#{item.parentOrder},#{item.recoil} + #{item.createBy},#{item.createTime},#{item.parentOrder},#{item.recoil}, + #{item.warehouseCode},#{item.warehouseName} ) @@ -243,7 +253,9 @@ set quantity = #{item.quantity}, update_by = #{item.updateBy}, - update_time = #{item.updateTime} + update_time = #{item.updateTime}, + warehouse_code = #{item.warehouseCode}, + warehouse_name = #{item.warehouseName} where record_id = #{item.recordId} 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 33b8d2602..9a5b2bcff 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 @@ -472,7 +472,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select mrw.workorderCode,mrw.productCode,mrw.productName,mrw.machineCode,mrw.machineName, mrw.shiftCode,mrw.quantityFeedback, - mrw.workTime,mrw.useMan,mrw.uploadStatus,mrw.unit, + mrw.workTime,mrw.uploadStatus,mrw.unit, pow.order_code orderCode,pow.quantity_split quantity, pow.workorder_code_sap workorderCodeSap, pow.product_date productDate, @@ -495,7 +496,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" shift_code shiftCode, sum(quantity_feedback) quantityFeedback, sum(work_time) workTime, - use_man useMan, upload_status uploadStatus, upload_time uploadTime, upload_msg uploadMsg, @@ -510,7 +510,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and machine_name like concat('%', #{machineName}, '%') and upload_status = #{uploadStatus} group by workorder_code, product_code,product_name,machine_code,machine_name,shift_code - ,upload_status,unit,use_man + ,upload_status,unit ,upload_time,upload_msg ) mrw left join pro_order_workorder pow on mrw.workorderCode = pow.workorder_code @@ -581,45 +581,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" workorder_code, sum(quantity_feedback) quantity_feedback, sum(work_time) sac1, - use_man sac2, + sum(work_time*use_man) sac2, product_code, product_name from mes_report_work where upload_status != #{uploadStatus} and prod_type = #{prodType} and workorder_code = #{workorderCode} - group by workorder_code,product_code,product_name,use_man + group by workorder_code,product_code,product_name ) mrw left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code left join base_equipment equ on equ.equipment_code = ow.workorder_name - + + insert into mes_report_work @@ -896,4 +888,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + + update mes_report_work_consume + set del_flag = '1' + where record_id = #{id} + diff --git a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java index 53974893d..4333e2ab3 100644 --- a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java +++ b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java @@ -77,7 +77,7 @@ public interface OpenMapper { public int addBatch(@Param("list") List items); - List getUserByMaterial(String materialCode); + List getCheckUsers(String materialCode); public int addCheckUsers(@Param("list") List users); } diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index 3e51c9332..b40e18a63 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -346,7 +346,7 @@ public class OpenServiceImpl implements OpenService { qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性 /**qc_user_material取默认检查人**/ - List users = openMapper.getUserByMaterial(qcCheckTaskProduce.getMaterialCode()); + List users = openMapper.getCheckUsers(qcCheckTaskProduce.getOrderNo()); if (CollectionUtils.isEmpty(users)) { QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); dto0.setId(IdUtils.fastSimpleUUID()); diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index b606be859..a70391f58 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -195,10 +195,12 @@ and qctp.type_id = #{typeId} order by qctp.sort - + select qum.user_code userCode, + qum.user_name userName + from qc_user_material qum + left join pro_order_workorder pow on pow.workorder_code = qum.material_code + where pow.workorder_code = #{workorderCode} and pow.del_flag = '0' and qum.del_flag = '0' diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java index d8bbab66a..9378f944a 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java @@ -286,6 +286,8 @@ public class ProOrderController extends BaseController { } /** * 下发生产工单。workorderIds:母工单号 + * 如果改成复选,需要考虑很多中订单组合情况 + * 所以尽量不要动 */ @RequiresPermissions("mes:pro:order:edit") @Log(title = "关闭订单", businessType = BusinessType.OTHER) diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java index 460486425..333d7f928 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java @@ -4,12 +4,14 @@ import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.alibaba.fastjson2.JSONObject; import com.op.common.core.exception.ServiceException; import com.op.plan.domain.ProOrder; import com.op.plan.domain.dto.SplitOrderDTO; import com.op.plan.service.IProWetMaterialPlanDetailService; import com.op.plan.service.IProWetMaterialPlanService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -40,8 +42,6 @@ import com.op.common.core.web.page.TableDataInfo; public class ProOrderWorkorderController extends BaseController { @Autowired private IProOrderWorkorderService proOrderWorkorderService; - @Autowired - private IProWetMaterialPlanDetailService proWetMaterialPlanDetailService; /** * 通过子工单code查询并返回所有级联工单 @@ -255,6 +255,10 @@ public class ProOrderWorkorderController extends BaseController { @Log(title = "下发生产工单", businessType = BusinessType.OTHER) @PostMapping("/downWorkorder/{workorderIds}") public AjaxResult downWorkorder(@PathVariable String[] workorderIds) { + List orderNotW0 = proOrderWorkorderService.getOrderNotW0(workorderIds); + if(workorderIds.length != orderNotW0.size()){ + return AjaxResult.error("存在已经派发的订单,请重新选择工单!"); + } return toAjax(proOrderWorkorderService.downProOrderWorkorderByWorkorderIds(workorderIds)); } } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java index f42c0aa78..665cfc573 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java @@ -152,6 +152,16 @@ public class ProOrder extends TreeEntity { private Integer sortNo; // 车数 private Integer carNum; + @Excel(name = "订单状态", readConverterExp = "0=正常,1=关闭") + private String delFlag; + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } public Integer getCarNum() { return carNum; diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java index 0b0807e65..aff63cb22 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java @@ -234,4 +234,6 @@ public interface ProOrderMapper { void updateOrderStatusCompleteByOrderCode(String orderCode); void addSapLog(SysSapLog sysSapLog); + + int updateCloseOrderBatchById(@Param("orderIds")String[] orderIds); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java index a42f2efff..19098c919 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java @@ -190,5 +190,9 @@ public interface ProOrderWorkorderMapper { int deletePrepareBatch(@Param("workorders")List workorders); int deletePrepareDetailBatch(@Param("workorders")List workorders); + + List getOrderNotW0(@Param("workorderCodes") String[] workorderCodes); + + List getOrderByOrders(@Param("orderIds") String[] orderIds); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java index 92d779314..b547d0983 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java @@ -131,4 +131,6 @@ public interface IProOrderWorkorderService { List getNextLevelWorkOrderList(ProOrderWorkorder proOrderWorkorder); AjaxResult subChangeWorkOrderPro(SplitOrderDTO splitOrderDTO); + + List getOrderNotW0(String[] workorderIds); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 04f47982d..52ad1800b 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -100,15 +100,15 @@ public class ProOrderServiceImpl implements IProOrderService { @Transactional(rollbackFor = Exception.class) public AjaxResult subSplitOrder(SplitOrderDTO splitOrderDTO) { boolean checkout = true; - // 校验批次编号是否存在(重复问题) - List batchCodes = proOrderMapper.selectBatchCodes(); - for (int i = 0; i < batchCodes.size(); i++) { - for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) { - if (batchCodes.get(i).equals(splitOrderDTO.getFormFields().get(j).getBatchCode())) { - checkout = false; - } - } - } +// // 校验批次编号是否存在(重复问题) +// List batchCodes = proOrderMapper.selectBatchCodes();//这种校验不可取需要修改 +// for (int i = 0; i < batchCodes.size(); i++) { +// for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) { +// if (batchCodes.get(i).equals(splitOrderDTO.getFormFields().get(j).getBatchCode())) { +// checkout = false; +// } +// } +// } //校验各工序设备是否已选择 List processes= proOrderMapper.getRouteProcess(splitOrderDTO.getRouteCode()); if(splitOrderDTO.getProdLineCodeArray().length == 0){ @@ -134,7 +134,7 @@ public class ProOrderServiceImpl implements IProOrderService { splitOrderDTO.setProdLineCode(codeArray); } - // 如果不重复 + // 如果校验通过 if (checkout) { /****白坯订单*****/ @@ -270,6 +270,7 @@ public class ProOrderServiceImpl implements IProOrderService { // 获取单位换算值 Long conver = 1L; String belongWorkOrder = "0"; + ProOrderDTO productNameInfo = splitOrderDTO.getProduct(); while (run) { // 先进行当前订单拆分操作 // 1.设置工单信息,并更新订单信息至数据库 @@ -297,10 +298,10 @@ public class ProOrderServiceImpl implements IProOrderService { R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据 logger.info("母订单"+proOrder.getOrderCode()+ "订单数量变更结果:"+rSapChange.getCode()+","+rSapChange.getMsg()); - }else{ - workOrder.setProductCode(splitOrderDTO.getProduct().getChildren().get(0).getProdCode()); - workOrder.setProductName(splitOrderDTO.getProduct().getChildren().get(0).getProdDesc()); } + workOrder.setProductCode(productNameInfo.getProdCode()); + workOrder.setProductName(productNameInfo.getProdDesc()); + workOrder.setBelongWorkOrder(belongWorkOrder); workOrder.setProdType("LJ01"); @@ -321,6 +322,8 @@ public class ProOrderServiceImpl implements IProOrderService { parentOrder.append(workOrder.getWorkorderCode()); // code自增 endCode++; + + productNameInfo = productNameInfo.getChildren().get(0); } else { if(!"0".equals(workOrder.getParentOrder())) { // 设置子节点end_flag字段信息 @@ -1090,7 +1093,16 @@ public class ProOrderServiceImpl implements IProOrderService { @DS("#header.poolName") @Transactional(rollbackFor = Exception.class) public int deleteOrder(String[] orderIds) { - //可以进行订单关闭的数据 + + //未拆分,直接关闭订单 + List checkOrders = proOrderWorkorderMapper.getOrderByOrders(orderIds); + if(!CollectionUtils.isEmpty(checkOrders)){ + int m0 = proOrderMapper.deleteProOrderByIds(orderIds); + logger.info(orderIds[0]+"删除订单m0:"+m0); + return 1; + } + + //已经存在工单可以进行订单关闭的数据 List checkWorkOrders = proOrderWorkorderMapper.getWorkOrderByOrders(orderIds); if(checkWorkOrders.size() != orderIds.length){ return 2; @@ -1135,33 +1147,27 @@ public class ProOrderServiceImpl implements IProOrderService { closeR.getCode()+","+ closeR.getMsg()+","+ closeR.getData()); - //if(closeR.getCode()==200){ - String[] workorderIds = (String[]) delteIds.toArray(new String[delteIds.size()]); - if (workorderIds.length > 0) { - //删除工单(字母)pro_order_workorder - int m1 = proOrderWorkorderMapper.deleteProOrderWorkorderByWorkorderIds(workorderIds); - logger.info(workorderCodes.get(0)+"删除订单m1:"+m1); - //删除批次pro_order_workorder_batch - int m2 = proOrderWorkorderBatchMapper.deleteBatch(workorderIds); - logger.info(workorderCodes.get(0)+"删除订单m2:"+m2); - //删除领料单mes_prepare - int m3 = proOrderWorkorderMapper.deletePrepareBatch(workorderCodes); - logger.info(workorderCodes.get(0)+"删除订单m3:"+m3); - //删除领料单明细mes_prepare_detail - int m4 = proOrderWorkorderMapper.deletePrepareDetailBatch(workorderCodes); - logger.info(workorderCodes.get(0)+"删除订单m4:"+m4); - } + String[] workorderIds = (String[]) delteIds.toArray(new String[delteIds.size()]); + if (workorderIds.length > 0) { + //删除工单(字母)pro_order_workorder + int m1 = proOrderWorkorderMapper.deleteProOrderWorkorderByWorkorderIds(workorderIds); + logger.info(workorderCodes.get(0)+"删除订单m1:"+m1); + //删除批次pro_order_workorder_batch + int m2 = proOrderWorkorderBatchMapper.deleteBatch(workorderIds); + logger.info(workorderCodes.get(0)+"删除订单m2:"+m2); + //删除领料单mes_prepare + int m3 = proOrderWorkorderMapper.deletePrepareBatch(workorderCodes); + logger.info(workorderCodes.get(0)+"删除订单m3:"+m3); + //删除领料单明细mes_prepare_detail + int m4 = proOrderWorkorderMapper.deletePrepareDetailBatch(workorderCodes); + logger.info(workorderCodes.get(0)+"删除订单m4:"+m4); + } - if (!CollectionUtils.isEmpty(workers)) { - //删除订单pro_order - int m5 = proOrderMapper.updateCloseOrderBatch(workers); - logger.info(workorderCodes.get(0)+"删除订单m5:"+m5); - } -// }else{ -// logger.info(workorder.getWorkorderCode()+"删除订单后关闭订单sap返回结果:"+ -// JSONObject.toJSONString(closeR)); -// return 0; -// } + if (!CollectionUtils.isEmpty(workers)) { + //删除订单pro_order + int m5 = proOrderMapper.updateCloseOrderBatch(workers); + logger.info(workorderCodes.get(0)+"删除订单m5:"+m5); + } } return 1; } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 91b58af05..522729dad 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -1092,6 +1092,12 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { return error(500, "批次号不能重复"); } + @Override + @DS("#header.poolName") + public List getOrderNotW0(String[] workorderIds) { + return proOrderWorkorderMapper.getOrderNotW0(workorderIds); + } + /** * 校验工单是否可以修改 * 如果工单已生成湿料计划则不允许修改 diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml index 9542f4f83..679f98475 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml @@ -30,13 +30,14 @@ + select id, plan_factory_code, order_type, order_code, prod_code, prod_desc, quantity, quantity_split, unit, worker_order, plan_pro_date, plan_complete, atrr1, atrr2, atrr3, status, parent_order, create_by, create_time, update_by, update_time, prod_type, - factory_code, prod_spc ,car_num + factory_code, prod_spc ,car_num,del_flag from pro_order @@ -67,7 +68,7 @@ and CONVERT(varchar(10),plan_pro_date, 120) >= '${planDateStart}' and '${planDateEnd}%' >= CONVERT(varchar(10),plan_pro_date, 120) and prod_type != 'white' - and del_flag = '0' + and del_flag = #{delFlag} ORDER BY plan_pro_date DESC @@ -378,6 +379,14 @@ update pro_order set status = 'o2' where parent_order = #{orderCode} and del_flag = '0' + + update pro_order + set del_flag = '1' + where id in + + #{id} + + update pro_order 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 37eb1ed23..abf3252db 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 @@ -523,6 +523,26 @@ and pow.del_flag = '0' + + insert into mes_prepare_detail diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProRouteMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProRouteMapper.xml index b2745d14a..2be9d592e 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProRouteMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProRouteMapper.xml @@ -29,6 +29,7 @@ from pro_route pr INNER JOIN pro_route_product prp ON pr.route_id = prp.route_id where prp.item_code = #{itemCode} and pr.enable_flag = 'Y' + order by pr.route_code desc diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java index 3cf1903fc..6be4541ab 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java @@ -74,6 +74,8 @@ public class QcCheckTaskDefect extends BaseEntity { @Excel(name = "检验任务id") private String belongTo; + private String belongToDetail; + /** * 合格数量 */ @@ -86,6 +88,14 @@ public class QcCheckTaskDefect extends BaseEntity { @Excel(name = "不合格数量") private BigDecimal noOkQuality; + public String getBelongToDetail() { + return belongToDetail; + } + + public void setBelongToDetail(String belongToDetail) { + this.belongToDetail = belongToDetail; + } + public void setRecordId(String recordId) { this.recordId = recordId; } 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 1aac1cf16..e21936046 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 @@ -135,6 +135,33 @@ public class QcCheckTaskDetail extends BaseEntity { private String fileListStr; private List files; private List fileUrls; + private String defectCodes; + private String defectNames; + private String defectQualitys; + + public String getDefectCodes() { + return defectCodes; + } + + public void setDefectCodes(String defectCodes) { + this.defectCodes = defectCodes; + } + + public String getDefectNames() { + return defectNames; + } + + public void setDefectNames(String defectNames) { + this.defectNames = defectNames; + } + + public String getDefectQualitys() { + return defectQualitys; + } + + public void setDefectQualitys(String defectQualitys) { + this.defectQualitys = defectQualitys; + } public List getFileUrls() { return fileUrls; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcUserMaterial.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcUserMaterial.java index 79dacad99..77b4995c0 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcUserMaterial.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcUserMaterial.java @@ -98,6 +98,7 @@ public class QcUserMaterial extends BaseEntity { private String materialId; private String[] userCodes; + private String[] userNames; private String label; private String key; @@ -271,6 +272,14 @@ public class QcUserMaterial extends BaseEntity { this.selectedValues = selectedValues; } + public String[] getUserNames() { + return userNames; + } + + public void setUserNames(String[] userNames) { + this.userNames = userNames; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index be2987fdd..f27926727 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -90,6 +90,8 @@ public interface QcCheckTaskIncomeMapper { List getUserByMaterial(String materialCode); + List getCheckUsers(String orderNo); + int addCheckUsers(@Param("list") List users); int addQcCheckTaskDefects(@Param("list") List defects); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java index a18e95e82..ce3e22e3e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java @@ -19,10 +19,7 @@ import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -215,6 +212,7 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer if(StringUtils.isNotBlank(produce.getIncomeBatchNo())){ List batchNos = Arrays.asList(produce.getIncomeBatchNo().split(";")); List disBatchNos = batchNos.stream().distinct().collect(Collectors.toList()); + Collections.sort(disBatchNos); produce.setIncomeBatchNo(StringUtils.join(disBatchNos, ";")); } 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 859c39d3f..71992ffa3 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 @@ -214,7 +214,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { qcCheckTaskIncome.setCheckManName(""); qcCheckTaskIncome.setCheckManCode(""); /**qc_user_material取默认检查人**/ - List users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskIncome.getMaterialCode()); + List users = qcCheckTaskIncomeMapper.getCheckUsers(qcCheckTaskIncome.getOrderNo()); if(CollectionUtils.isEmpty(users)){ QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); dto0.setId(IdUtils.fastSimpleUUID()); @@ -599,7 +599,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { break; } } - + //TODO;today int n = 0; QcCheckTaskIncome qcCheckTask = new QcCheckTaskIncome(); qcCheckTask.setUpdateBy(updateBy); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java index c2bd24785..936301373 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java @@ -176,23 +176,6 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer } //检验人插入 qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); - } else {//上位机 - qcCheckTaskInventory.setCheckManName(""); - qcCheckTaskInventory.setCheckManCode(""); - /**qc_user_material取默认检查人**/ - List users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskInventory.getMaterialCode()); - if (!CollectionUtils.isEmpty(users)) { - for (QcUserMaterialDTO user : users) { - user.setId(IdUtils.fastSimpleUUID()); - user.setBelongTo(beLongId); - user.setCheckNo(qcCheckTaskInventory.getCheckNo()); - user.setCreateBy(createBy); - user.setFactoryCode(factoryCode); - user.setCreateTime(nowDate); - } - int m = qcCheckTaskIncomeMapper.addCheckUsers(users); - logger.info("检查人新增" + m + "成功"); - } } /** 不良品数据插入 */ BigDecimal noOkQuality = new BigDecimal(0); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskMarketServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskMarketServiceImpl.java index d250d743e..bad68a894 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskMarketServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskMarketServiceImpl.java @@ -173,23 +173,6 @@ public class QcCheckTaskMarketServiceImpl implements IQcCheckTaskMarketService { } //检验人插入 qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); - } else {//上位机 - qcCheckTaskMarket.setCheckManName(""); - qcCheckTaskMarket.setCheckManCode(""); - /**qc_user_material取默认检查人**/ - List users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskMarket.getMaterialCode()); - if (!CollectionUtils.isEmpty(users)) { - for (QcUserMaterialDTO user : users) { - user.setId(IdUtils.fastSimpleUUID()); - user.setBelongTo(beLongId); - user.setCheckNo(qcCheckTaskMarket.getCheckNo()); - user.setCreateBy(createBy); - user.setFactoryCode(factoryCode); - user.setCreateTime(nowDate); - } - int m = qcCheckTaskIncomeMapper.addCheckUsers(users); - logger.info("检查人新增" + m + "成功"); - } } /** 不良品数据插入 */ if(qcCheckTaskMarket.getNoOkQuality()==null){ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java index cb3635798..207d4d59c 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java @@ -204,7 +204,7 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService qcCheckTaskProduce.setCheckManName(""); qcCheckTaskProduce.setCheckManCode(""); /**qc_user_material取默认检查人**/ - List users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskProduce.getMaterialCode()); + List users = qcCheckTaskIncomeMapper.getCheckUsers(qcCheckTaskProduce.getOrderNo()); if(!CollectionUtils.isEmpty(users)){ for(QcUserMaterialDTO user:users){ user.setId(IdUtils.fastSimpleUUID()); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java index 2bbeb0f60..6a57c31df 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java @@ -76,9 +76,9 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { @Override @DS("#header.poolName") public int insertQcUserMaterial(QcUserMaterial qcUserMaterial) { - List userCodes = new ArrayList<>(); + /*List userCodes = new ArrayList<>(); userCodes.add(qcUserMaterial.getUserCode()); - qcUserMaterial.setUserCodes(userCodes.toArray(new String[userCodes.size()])); + qcUserMaterial.setUserCodes(userCodes.toArray(new String[userCodes.size()]));*/ Date now = DateUtils.getNowDate(); if (StringUtils.isNotEmpty(qcUserMaterial.getUserCodes())) { @@ -89,15 +89,17 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { QcUserMaterial qcUserMaterialDto = null; HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; - for (String userCode : qcUserMaterial.getUserCodes()) { + String[] userCodes = qcUserMaterial.getUserCodes(); + String[] userNames = qcUserMaterial.getUserNames(); + for (int i = 0; i < userCodes.length; i++) { for (String materialCode : qcUserMaterial.getSelectedValues()) { //查询物料编码对应的各种信息 qcUserMaterialDto = new QcUserMaterial(); qcUserMaterialDto.setId(IdUtils.fastSimpleUUID()); qcUserMaterialDto.setCreateTime(now); qcUserMaterialDto.setCreateBy(SecurityUtils.getUsername()); - qcUserMaterialDto.setUserCode(userCode); - qcUserMaterialDto.setUserName(qcUserMaterial.getUserName()); + qcUserMaterialDto.setUserCode(userCodes[i]); + qcUserMaterialDto.setUserName(userNames[i]); qcUserMaterialDto.setMaterialCode(materialCode); qcUserMaterialDto.setMaterialName(qcUserMaterial.getMaterialName()); qcUserMaterialDto.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); @@ -151,7 +153,6 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { @Override @DS("#header.poolName") public List getList(QcUserMaterial qcUserMaterial) { - List dto = qcUserMaterialMapper.getUserMaterialListUndo(qcUserMaterial); qcUserMaterial.setMaterialName(null); List selected = qcUserMaterialMapper.getUserMaterialListDo(qcUserMaterial); diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index 0d0597c19..c6c1bbfdc 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -338,9 +338,16 @@ + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml index ea8481884..939b91618 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml @@ -95,7 +95,7 @@ and parent_goal = #{parentGoal} - order by id desc + order by id asc select distinct um.material_code materialCode, - concat(bp.product_desc_zh,'(',bp.product_code,')') label + concat(bp.equipment_name,'(',bp.equipment_code,')') label from qc_user_material um - left join base_product bp on um.material_code = bp.product_code - where um.user_code = #{userCode} - and bp.product_desc_zh like concat('%', #{materialName}, + left join base_equipment bp on um.material_code = bp.equipment_code + where bp.equipment_type_code = 'equ_type_bzx' and um.user_code in + + #{userCode} + + and bp.equipment_name like concat('%', #{materialName}, '%') diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java index 1ca666da8..9a0d25186 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java @@ -262,7 +262,14 @@ public class WmsToWCSmissionController { public AjaxResult selectSnCorrelationBarcode(@RequestBody WmsProductPutTrayCode wmsProductPutTrayCode) { return AjaxResult.success(wmsProductPutService.selectSnCorrelationBarcode(wmsProductPutTrayCode)); } - + /** + * 成品销售出库--查询接口 + * + */ + @PostMapping("/selectQueryFinishedProductSales") + public AjaxResult selectQueryFinishedProductSales(@RequestBody WmsSellOutEmbryo wmsSellOutEmbryo) { + return AjaxResult.success(wmsProductPutService.selectQueryFinishedProductSales(wmsSellOutEmbryo)); + } /** * 成品销售出库--提单查询接口 diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsSellOutEmbryo.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsSellOutEmbryo.java index d892692b9..5dca69149 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsSellOutEmbryo.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsSellOutEmbryo.java @@ -202,6 +202,19 @@ public class WmsSellOutEmbryo extends BaseEntity { */ @Excel(name = "预留字段10") private String attr10; + /** + * 有效标记 + */ + @Excel(name = "有效标记") + private String activeFlag; + + public String getActiveFlag() { + return activeFlag; + } + + public void setActiveFlag(String activeFlag) { + this.activeFlag = activeFlag; + } public void setId(String id) { this.id = id; diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java index d760e8d17..f6ec26b5b 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java @@ -100,4 +100,9 @@ public interface IWmsProductPutService { * */ WmsProductPutTrayCode ScanCodeSingleBox(WmsProductPutTrayCode wmsProductPutTrayCode); + /** + * 成品销售出库--查询接口 + * + */ + List< WmsSellOutEmbryo> selectQueryFinishedProductSales(WmsSellOutEmbryo wmsSellOutEmbryo); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java index 92f2f8950..e9cb38150 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java @@ -59,6 +59,9 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { @Autowired private WmsProductPutTrayCodeMapper wmsProductPutTrayCodeMapper; + @Autowired + private WmsSellOutEmbryoMapper wmsSellOutEmbryoMapper; + /** * 查询成品生产入库 * @@ -723,4 +726,13 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { return null; } + @Override + public List selectQueryFinishedProductSales(WmsSellOutEmbryo wmsSellOutEmbryo) { + //wms_sell_out_embryo + DynamicDataSourceContextHolder.push("ds_" + wmsSellOutEmbryo.getFactoryCode()); + wmsSellOutEmbryo.setActiveFlag("1"); + List wmsSellOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoList(wmsSellOutEmbryo); + return wmsSellOutEmbryoList; + } + } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml index 761dd7bea..608035f7d 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml @@ -296,6 +296,7 @@ LEFT JOIN (SELECT Produce_Code,Material_Code,SUM(Plan_Number) Plan_Number FROM ods_procure_out_order GROUP BY Produce_Code,Material_Code)AS out_order ON out_order.Produce_Code= mes_prepare.workorder_name AND out_order.Material_Code=mes_prepare_detail.material_code WHERE mes_prepare_detail.prepare_id= #{ID} + ORDER BY mes_prepare_detail.recoil insert into wms_raw_mission_out(id, diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml index 33ef44633..e793c2716 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml @@ -41,10 +41,11 @@ + - select id, delivery_order, Item_number, factory_code, wh_code, wa_code, wl_code, delivery_place, product_name, product_code, product_sort, specification, unit_of_measure, lot_number, plan_quantity, out_quantity, status, SAP_status, SAP_proof, SAP_message, out_date, attr1, attr2, attr3, attr4, attr5, attr6, attr7, attr8, attr9, attr10, create_by, create_time, update_by, update_time, remark from wms_sell_out_embryo + select id, delivery_order, Item_number,active_flag, factory_code, wh_code, wa_code, wl_code, delivery_place, product_name, product_code, product_sort, specification, unit_of_measure, lot_number, plan_quantity, out_quantity, status, SAP_status, SAP_proof, SAP_message, out_date, attr1, attr2, attr3, attr4, attr5, attr6, attr7, attr8, attr9, attr10, create_by, create_time, update_by, update_time, remark from wms_sell_out_embryo