diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/device/EquEquipmentDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/device/EquEquipmentDTO.java index 1cbb4b540..85521ca25 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/device/EquEquipmentDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/device/EquEquipmentDTO.java @@ -7,6 +7,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import java.util.Date; +import java.util.List; /** * 设备管理对象 base_equipment @@ -156,6 +157,44 @@ public class EquEquipmentDTO extends BaseEntity { @Excel(name = "SAP资产号") private String sapAsset; + private String factoryCode; + private String sapCode; + private String sapName; + + private List details; + + public List getDetails() { + return details; + } + + public void setDetails(List details) { + this.details = details; + } + + public String getSapCode() { + return sapCode; + } + + public void setSapCode(String sapCode) { + this.sapCode = sapCode; + } + + public String getSapName() { + return sapName; + } + + public void setSapName(String sapName) { + this.sapName = sapName; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + public void setEquipmentId(Long equipmentId) { this.equipmentId = equipmentId; } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/H5.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/H5.java index 3c900f71a..0ac9de68a 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/H5.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/H5.java @@ -7,13 +7,13 @@ public class H5 { private String category; private String specifications; private int StandardStaffing; - private int actualEmployment; - private String productionDuration; + private Double actualEmployment; + private Double productionDuration; private int planProduction; private int production; private String hourlyProduction; - private String standardEfficiency; - private String actualEfficiency; + private double standardEfficiency; + private double actualEfficiency; private String efficiencyAcRate; private String feedbackTime; private String parentOrder; @@ -91,19 +91,19 @@ public class H5 { StandardStaffing = standardStaffing; } - public int getActualEmployment() { + public Double getActualEmployment() { return actualEmployment; } - public void setActualEmployment(int actualEmployment) { + public void setActualEmployment(Double actualEmployment) { this.actualEmployment = actualEmployment; } - public String getProductionDuration() { + public Double getProductionDuration() { return productionDuration; } - public void setProductionDuration(String productionDuration) { + public void setProductionDuration(Double productionDuration) { this.productionDuration = productionDuration; } @@ -123,19 +123,19 @@ public class H5 { this.hourlyProduction = hourlyProduction; } - public String getStandardEfficiency() { + public double getStandardEfficiency() { return standardEfficiency; } - public void setStandardEfficiency(String standardEfficiency) { + public void setStandardEfficiency(double standardEfficiency) { this.standardEfficiency = standardEfficiency; } - public String getActualEfficiency() { + public double getActualEfficiency() { return actualEfficiency; } - public void setActualEfficiency(String actualEfficiency) { + public void setActualEfficiency(double actualEfficiency) { this.actualEfficiency = actualEfficiency; } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesPrepareDetail.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesPrepareDetail.java index d17546279..5c26bc03e 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesPrepareDetail.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesPrepareDetail.java @@ -119,6 +119,15 @@ public class MesPrepareDetail extends BaseEntity { private String workorderCode; private String parentOrder; private String prodLineCode; + private int xh; + + public int getXh() { + return xh; + } + + public void setXh(int xh) { + this.xh = xh; + } public String getProductDateStr() { return productDateStr; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/H5ApiServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/H5ApiServiceImpl.java index ee937e5a1..2b7fd664c 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/H5ApiServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/H5ApiServiceImpl.java @@ -24,8 +24,109 @@ public class H5ApiServiceImpl implements H5ApiService { //查询当天的生产情况 H5 h5=new H5(); h5.setFeedbackTime(workTime); - //母单报工信息 + //报工信息 List
h5List=h5ApiMapper.selectMesLineProdceList(h5); - return h5List; + //报工信息处理 + //母单报工数据 + List
filteredList = h5List.stream() + .filter(h5s -> "0".equals(h5s.getParentOrder())) + .collect(Collectors.toList()); + //子单报工数据 + List
filteredLists = h5List.stream() + .filter(h5s -> !"0".equals(h5s.getParentOrder())) + .collect(Collectors.toList()); + // 按照 workOrderCode 分组,并计算各个字段的统计值 + List
resultList = filteredList.stream() + .collect(Collectors.groupingBy( + H5::getWorkOrderCode, // 按 workOrderCode 分组 + Collectors.collectingAndThen( + Collectors.toList(), + list -> { + double averageStandardStaffing = list.stream() + .collect(Collectors.averagingDouble(H5::getStandardStaffing)); + double averageActualEmployment = list.stream() + .collect(Collectors.averagingDouble(H5::getActualEmployment)); + double totalProductionDuration = list.stream() + .collect(Collectors.summingDouble(H5::getProductionDuration)); + double totalPlanProduction = list.stream() + .collect(Collectors.summingDouble(H5::getPlanProduction)); + double totalProduction = list.stream() + .collect(Collectors.summingDouble(H5::getProduction)); + + H5 resultH5 = new H5(); + resultH5.setWorkOrderCode(list.get(0).getWorkOrderCode()); // 设置 workOrderCode + resultH5.setLineName(list.get(0).getLineName()); + resultH5.setProductName(list.get(0).getProductName()); + resultH5.setCategory(list.get(0).getCategory()); + resultH5.setSpecifications(list.get(0).getSpecifications()); + resultH5.setStandardEfficiency(list.get(0).getStandardEfficiency()); + resultH5.setActualEmployment(averageActualEmployment); + resultH5.setStandardStaffing((int) Math.round(averageStandardStaffing)); // 计算的平均值 + resultH5.setProductionDuration(totalProductionDuration); // 总和 + resultH5.setPlanProduction((int) Math.round(totalPlanProduction)); // 总和 + resultH5.setProduction((int) Math.round(totalProduction)); // 总和 + return resultH5; + } + ) + )) + .values() + .stream() + .collect(Collectors.toList()); + + List
resultLists = filteredLists.stream() + .collect(Collectors.groupingBy( + H5::getWorkOrderCode, // 按 workOrderCode 分组 + Collectors.collectingAndThen( + Collectors.toList(), + list -> { + double averageActualEmployment = list.stream() + .collect(Collectors.averagingDouble(H5::getActualEmployment)); + H5 resultH5 = new H5(); + resultH5.setWorkOrderCode(list.get(0).getWorkOrderCode()); // 设置 workOrderCode + resultH5.setActualEmployment(averageActualEmployment); + resultH5.setParentOrder(list.get(0).getParentOrder()); + return resultH5; + } + ) + )) + .values() + .stream() + .collect(Collectors.toList()); + + // 将 resultLists 转换为 Map,以便快速查找 + Map parentOrderToH5Map = resultLists.stream() + .collect(Collectors.toMap( + H5::getParentOrder, + h5s -> h5s + )); + + // 更新 resultList 中的 actualEmployment + // 更新 resultList 中的 actualEmployment + resultList.forEach(h51 -> { + H5 matchingH52 = parentOrderToH5Map.get(h51.getWorkOrderCode()); + if (matchingH52 != null) { + h51.setActualEmployment(matchingH52.getActualEmployment()); + } + }); + // 更新 actualEfficiency 为百分比形式,保留一位小数 + resultList.forEach(h5a -> { + double production = h5a.getProduction(); + double productionDuration = h5a.getProductionDuration(); + double actualEmployment = h5a.getActualEmployment(); + double standardEfficiency=h5a.getStandardEfficiency(); + // 避免除以零的情况 + if (productionDuration != 0 && actualEmployment != 0) { + double actualEfficiency = production / productionDuration / actualEmployment; + actualEfficiency = Math.round(actualEfficiency * 10.0) / 10.0; + h5a.setActualEfficiency(actualEfficiency); + String efficiencyAcRate = String.format("%.1f%%", (actualEfficiency/standardEfficiency)*100); // 格式化为百分比形式 + h5a.setEfficiencyAcRate(efficiencyAcRate); // 设置百分比形式 + } else { + h5a.setEfficiencyAcRate("0.0%"); // 或者设为其他默认值 + } + }); + + return resultList; } + } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareDetailServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareDetailServiceImpl.java index fefd8f1d1..a997aa3a4 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareDetailServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareDetailServiceImpl.java @@ -113,11 +113,16 @@ public class MesPrepareDetailServiceImpl implements IMesPrepareDetailService { .replace("\"","") .replace("\"","") .replace("]]","")); + mesPrepareDetailList = mesPrepareDetailList.stream() + .filter(dto ->!dto.getQuantity().equals("0.00")) + .collect(Collectors.toList()); PrintPrepareVo printPrepareVo = new PrintPrepareVo(); printPrepareVo.setMesPrepare(mesPrepare); - printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList.stream() - .filter(dto ->!dto.getQuantity().equals("0.00")) - .collect(Collectors.toList())); + int i = 1; + for(MesPrepareDetail dto:mesPrepareDetailList){ + dto.setXh(i++); + } + printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList); return AjaxResult.success(printPrepareVo); } @@ -134,11 +139,16 @@ public class MesPrepareDetailServiceImpl implements IMesPrepareDetailService { qodetail.setProductDateStr(productDate); qodetail.setRecoil("X"); List mesPrepareDetailList = mesPrepareDetailMapper.selectPreDetailHzList(qodetail); + mesPrepareDetailList = mesPrepareDetailList.stream() + .filter(dto ->!dto.getQuantity().equals("0.00")) + .collect(Collectors.toList()); + int i = 1; + for(MesPrepareDetail dto:mesPrepareDetailList){ + dto.setXh(i++); + } PrintPrepareVo printPrepareVo = new PrintPrepareVo(); printPrepareVo.setMesPrepare(mesPrepare); - printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList.stream() - .filter(dto ->!dto.getQuantity().equals("0.00")) - .collect(Collectors.toList())); + printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList); return AjaxResult.success(printPrepareVo); } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorksServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorksServiceImpl.java index 3f73bc183..a2a860a71 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorksServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorksServiceImpl.java @@ -25,9 +25,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -100,7 +99,6 @@ public class MesReportWorksServiceImpl implements IMesReportWorksService { SysNoticeGroup noticeQo = new SysNoticeGroup(); //取模板 noticeQo.setNoticeId(23L); - List notices = mesReportWorkMapper.getNoticesGroup(noticeQo); if(!CollectionUtils.isEmpty(notices)) { List wecharts = new ArrayList<>(); @@ -108,12 +106,20 @@ public class MesReportWorksServiceImpl implements IMesReportWorksService { WechartDTO wechart0 = new WechartDTO(); wechart0.setUserId(noticedto.getWxId()); String contentInfo = noticedto.getNoticeContent(); - contentInfo = contentInfo.replace("${ymd}", DateUtils.getDate()) + // 定义格式化日期的格式 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + + // 获取当前日期 + Calendar calendar = Calendar.getInstance(); + // 将日期设置为前一天 + calendar.add(Calendar.DATE, -1); + Date yesterday = calendar.getTime(); + + // 格式化前一天的日期 + String currentDate = dateFormat.format(yesterday); + contentInfo = contentInfo.replace("${ymd}", currentDate) .replace("${factory}", prowork.getFactoryCode()) .replace("${carName}", prowork.getWorkorderName()); - - Matcher m = p2.matcher(contentInfo); - contentInfo = m.replaceAll(""); wechart0.setText(contentInfo); wecharts.add(wechart0); } diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/H5ApiMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/H5ApiMapper.xml index 1008e9e8e..95d89ccc7 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/H5ApiMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/H5ApiMapper.xml @@ -20,86 +20,30 @@ 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 916dcf514..caedb7d47 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 @@ -955,9 +955,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java index 97a431b33..5569f5710 100644 --- a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java +++ b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java @@ -10,6 +10,7 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.common.datasource.creator.DynamicDatasourceCreator; import com.op.open.service.OpenService; import com.op.system.api.domain.DataSourcePropertyDTO; +import com.op.system.api.domain.device.EquEquipmentDTO; import com.op.system.api.domain.device.EquRepairOrderDTO; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WechartDTO; @@ -257,4 +258,13 @@ public class OpenController extends BaseController { public AjaxResult sendProductCheckNo(@RequestBody List dots) { return openService.sendProductCheckNo(dots); } + + //给oa提供的设备sap设备增加 + @PostMapping("/addEquSapInfo") + public AjaxResult addEquSapInfo(@RequestBody EquEquipmentDTO dto) { + if(StringUtils.isNotBlank(dto.getFactoryCode())){ + return error("[factoryCode] is null "); + } + return openService.addEquSapInfo(dto); + } } 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 e8d525290..6a3a98247 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 @@ -96,5 +96,9 @@ public interface OpenMapper { int updateProductNoBatchs(@Param("list") List updates); int addProductNoBatchs(@Param("list")List everyList); +// +// int updateEquBatchs(@Param("list") List updates); +// +// int addEquBatchs(@Param("list") List everyList); } diff --git a/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java b/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java index 8baf08324..2e7647557 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java @@ -1,6 +1,7 @@ package com.op.open.service; import com.op.common.core.web.domain.AjaxResult; +import com.op.system.api.domain.device.EquEquipmentDTO; import com.op.system.api.domain.device.EquRepairOrderDTO; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WechartDTO; @@ -43,4 +44,6 @@ public interface OpenService { AjaxResult getDeliveryNoteDetail(Map paramMap); AjaxResult sendProductCheckNo(List dots); + + AjaxResult addEquSapInfo(EquEquipmentDTO dto); } 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 b1f8ca104..0627c90b9 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 @@ -706,7 +706,72 @@ public class OpenServiceImpl implements OpenService { return error(e.getMessage()); } } - + @Override + public AjaxResult addEquSapInfo(EquEquipmentDTO dto) { +// try { +// logger.info("oa增加sap设备发送参数"+JSONObject.toJSONString(dto)); +// List dtos = dto.getDetails(); +// if(CollectionUtils.isEmpty(dtos)){ +// return error("oa增加sap设备发送参数为空"); +// } +// DynamicDataSourceContextHolder.push("ds_"+dtos.get(0).getFactoryCode()); +// Date nowDate = DateUtils.getNowDate(); +// String createBy = SecurityUtils.getUsername(); +// for(EquEquipmentDTO equ:dtos){ +// equ.setCreateBy(createBy); +// equ.setUpdateBy(createBy); +// equ.setCreateTime(nowDate); +// equ.setUpdateTime(nowDate); +// } +// +// +// //sap返回的sap设备编码 +// List codes = dtos.stream().map(EquEquipmentDTO::getSapCode).collect(Collectors.toList()); +// //sap返回的客户编码-本地已存在 +// List exsitCodes = openMapper.getExsitCodes(codes); +// //sap返回的产品编码-本地不存在// 差集 (list2 - list1) +// List noExsitCodes = codes.stream().filter(item -> !exsitCodes.contains(item)).collect(Collectors.toList()); +// +// List updates = new ArrayList<>(); +// for (String exsitCode : exsitCodes) { +// List updates0 = dtos.stream().filter(up -> up.getSapCode().equals(exsitCode)).collect(Collectors.toList()); +// updates.addAll(updates0); +// } +// if (!CollectionUtils.isEmpty(updates)) { +// int m = openMapper.updateEquBatchs(updates); +// System.out.println("oa更新设备成功条数:" + m); +// } +// List adds = new ArrayList<>(); +// for (String noExsitCode : noExsitCodes) { +// List adds0 = dtos.stream().filter(ad -> ad.getSapCode().equals(noExsitCode)).collect(Collectors.toList()); +// adds.addAll(adds0); +// } +// if (!CollectionUtils.isEmpty(adds)) { +// +// int allsize = adds.size(); +// int inserttimes = allsize / 100 + 1; +// for (int m = 0; m < inserttimes; m++) { +// List everyList; +// if (m < (inserttimes - 1)) { +// everyList = adds.subList(m * 100, (m + 1) * 100); +// } else { +// everyList = adds.subList(m * 100, allsize); +// } +// if (everyList.size() > 0) { +// openMapper.addEquBatchs(everyList); +// } +// } +// +// System.out.println("oa新增设备成功条数:" + allsize); +// } +// +// return success(); +// } catch (Exception e) { +// e.printStackTrace(); +// return error(e.getMessage()); +// } + return success(); + } protected Boolean oneMinHas(Date lastData){ if(lastData != null){ int year= Integer.parseInt(String.format("%tY", lastData)); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcProductCpkUpdownController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcProductCpkUpdownController.java new file mode 100644 index 000000000..0e8794c82 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcProductCpkUpdownController.java @@ -0,0 +1,111 @@ +package com.op.quality.controller; + +import java.security.Security; +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.QcProductCpkUpdown; +import com.op.quality.service.IQcProductCpkUpdownService; +import org.apache.catalina.security.SecurityUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; + +/** + * CPK上下限维护Controller + * + * @author Open Platform + * @date 2024-09-12 + */ +@RestController +@RequestMapping("/cpkUpdown") +public class QcProductCpkUpdownController extends BaseController { + @Autowired + private IQcProductCpkUpdownService qcProductCpkUpdownService; + +/** + * 查询CPK上下限维护列表 + */ + +@GetMapping("/list") + public TableDataInfo list(QcProductCpkUpdown qcProductCpkUpdown) { + startPage(); + List list = qcProductCpkUpdownService.selectQcProductCpkUpdownList(qcProductCpkUpdown); + return getDataTable(list); + } + + /** + * 导出CPK上下限维护列表 + */ + @Log(title = "CPK上下限维护", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QcProductCpkUpdown qcProductCpkUpdown) { + List list = qcProductCpkUpdownService.selectQcProductCpkUpdownList(qcProductCpkUpdown); + ExcelUtil util = new ExcelUtil(QcProductCpkUpdown. class); + util.exportExcel(response, list, "CPK上下限维护数据"); + } + + /** + * 获取CPK上下限维护详细信息 + */ + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) { + return success(qcProductCpkUpdownService.selectQcProductCpkUpdownById(id)); + } + + /** + * 新增CPK上下限维护 + */ + @RequiresPermissions("quality:cpkUpDowConfig:add") + @Log(title = "CPK上下限维护", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody QcProductCpkUpdown qcProductCpkUpdown) { + qcProductCpkUpdown.setId(IdUtils.fastSimpleUUID()); + qcProductCpkUpdown.setCreateBy(SecurityUtils.getUsername()); + qcProductCpkUpdown.setCreateTime(DateUtils.getNowDate()); + QcProductCpkUpdown exsit = qcProductCpkUpdownService.checkCpkUpdown(qcProductCpkUpdown); + if(exsit!=null){ + return AjaxResult.error("数据已存在"); + } + + return toAjax(qcProductCpkUpdownService.insertQcProductCpkUpdown(qcProductCpkUpdown)); + } + + /** + * 修改CPK上下限维护 + */ + @RequiresPermissions("quality:cpkUpDowConfig:edit") + @Log(title = "CPK上下限维护", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody QcProductCpkUpdown qcProductCpkUpdown) { + qcProductCpkUpdown.setUpdateBy(SecurityUtils.getUsername()); + qcProductCpkUpdown.setUpdateTime(DateUtils.getNowDate()); + return toAjax(qcProductCpkUpdownService.updateQcProductCpkUpdown(qcProductCpkUpdown)); + } + + /** + * 删除CPK上下限维护 + */ + @RequiresPermissions("quality:cpkUpDowConfig:remove") + @Log(title = "CPK上下限维护", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) { + return toAjax(qcProductCpkUpdownService.deleteQcProductCpkUpdownByIds(ids)); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProductCpkUpdown.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProductCpkUpdown.java new file mode 100644 index 000000000..68cf6b283 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProductCpkUpdown.java @@ -0,0 +1,153 @@ +package com.op.quality.domain; + +import java.math.BigDecimal; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +/** + * 检验节点维护对象 qc_product_cpk_updown + * + * @author Open Platform + * @date 2024-09-12 + */ +public class QcProductCpkUpdown extends BaseEntity { +private static final long serialVersionUID=1L; + + /** id */ + private String id; + + /** 类型编码:material来料检验、produce生产检验、product成品检验 */ + @Excel(name = "类型编码:material来料检验、produce生产检验、product成品检验") + private String typeCode; + + /** 检验节点 */ + @Excel(name = "检验节点") + private String checkType; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + /** 删除标识1删除0正常 */ + private String delFlag; + + /** 物料号 */ + @Excel(name = "物料号") + private String materialCode; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + /** 上限 */ + @Excel(name = "上限") + private BigDecimal upVal; + + /** 下限 */ + @Excel(name = "下限") + private BigDecimal downVal; + + private String ruleCode; + private String ruleName; + + public String getRuleCode() { + return ruleCode; + } + + public void setRuleCode(String ruleCode) { + this.ruleCode = ruleCode; + } + + public String getRuleName() { + return ruleName; + } + + public void setRuleName(String ruleName) { + this.ruleName = ruleName; + } + + public void setId(String id){ + this.id = id; + } + + public String getId(){ + return id; + } + public void setTypeCode(String typeCode){ + this.typeCode = typeCode; + } + + public String getTypeCode(){ + return typeCode; + } + public void setCheckType(String checkType){ + this.checkType = checkType; + } + + public String getCheckType(){ + return checkType; + } + public void setFactoryCode(String factoryCode){ + this.factoryCode = factoryCode; + } + + public String getFactoryCode(){ + return factoryCode; + } + public void setDelFlag(String delFlag){ + this.delFlag = delFlag; + } + + public String getDelFlag(){ + return delFlag; + } + public void setMaterialCode(String materialCode){ + this.materialCode = materialCode; + } + + public String getMaterialCode(){ + return materialCode; + } + public void setMaterialName(String materialName){ + this.materialName = materialName; + } + + public String getMaterialName(){ + return materialName; + } + public void setUpVal(BigDecimal upVal){ + this.upVal = upVal; + } + + public BigDecimal getUpVal(){ + return upVal; + } + public void setDownVal(BigDecimal downVal){ + this.downVal = downVal; + } + + public BigDecimal getDownVal(){ + return downVal; + } + +@Override +public String toString(){ + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id",getId()) + .append("typeCode",getTypeCode()) + .append("checkType",getCheckType()) + .append("createBy",getCreateBy()) + .append("createTime",getCreateTime()) + .append("updateBy",getUpdateBy()) + .append("updateTime",getUpdateTime()) + .append("factoryCode",getFactoryCode()) + .append("delFlag",getDelFlag()) + .append("materialCode",getMaterialCode()) + .append("materialName",getMaterialName()) + .append("upVal",getUpVal()) + .append("downVal",getDownVal()) + .toString(); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProductCpkUpdownMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProductCpkUpdownMapper.java new file mode 100644 index 000000000..c56ad8bc9 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProductCpkUpdownMapper.java @@ -0,0 +1,64 @@ +package com.op.quality.mapper; + +import com.op.quality.domain.QcProductCpkUpdown; + +import java.util.List; + + +/** + * 检验节点维护Mapper接口 + * + * @author Open Platform + * @date 2024-09-12 + */ +public interface QcProductCpkUpdownMapper { + /** + * 查询检验节点维护 + * + * @param id 检验节点维护主键 + * @return 检验节点维护 + */ + public QcProductCpkUpdown selectQcProductCpkUpdownById(String id); + + /** + * 查询检验节点维护列表 + * + * @param qcProductCpkUpdown 检验节点维护 + * @return 检验节点维护集合 + */ + public List selectQcProductCpkUpdownList(QcProductCpkUpdown qcProductCpkUpdown); + + /** + * 新增检验节点维护 + * + * @param qcProductCpkUpdown 检验节点维护 + * @return 结果 + */ + public int insertQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown); + + /** + * 修改检验节点维护 + * + * @param qcProductCpkUpdown 检验节点维护 + * @return 结果 + */ + public int updateQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown); + + /** + * 删除检验节点维护 + * + * @param id 检验节点维护主键 + * @return 结果 + */ + public int deleteQcProductCpkUpdownById(String id); + + /** + * 批量删除检验节点维护 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteQcProductCpkUpdownByIds(String[] ids); + + QcProductCpkUpdown checkCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown); +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcProductCpkUpdownService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcProductCpkUpdownService.java new file mode 100644 index 000000000..d352c3473 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcProductCpkUpdownService.java @@ -0,0 +1,64 @@ +package com.op.quality.service; + +import com.op.quality.domain.QcProductCpkUpdown; + +import java.util.List; + + +/** + * 检验节点维护Service接口 + * + * @author Open Platform + * @date 2024-09-12 + */ +public interface IQcProductCpkUpdownService { + /** + * 查询检验节点维护 + * + * @param id 检验节点维护主键 + * @return 检验节点维护 + */ + public QcProductCpkUpdown selectQcProductCpkUpdownById(String id); + + /** + * 查询检验节点维护列表 + * + * @param qcProductCpkUpdown 检验节点维护 + * @return 检验节点维护集合 + */ + public List selectQcProductCpkUpdownList(QcProductCpkUpdown qcProductCpkUpdown); + + /** + * 新增检验节点维护 + * + * @param qcProductCpkUpdown 检验节点维护 + * @return 结果 + */ + public int insertQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown); + + /** + * 修改检验节点维护 + * + * @param qcProductCpkUpdown 检验节点维护 + * @return 结果 + */ + public int updateQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown); + + /** + * 批量删除检验节点维护 + * + * @param ids 需要删除的检验节点维护主键集合 + * @return 结果 + */ + public int deleteQcProductCpkUpdownByIds(String[] ids); + + /** + * 删除检验节点维护信息 + * + * @param id 检验节点维护主键 + * @return 结果 + */ + public int deleteQcProductCpkUpdownById(String id); + + QcProductCpkUpdown checkCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown); +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProductCpkUpdownServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProductCpkUpdownServiceImpl.java new file mode 100644 index 000000000..20233ec0d --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProductCpkUpdownServiceImpl.java @@ -0,0 +1,104 @@ +package com.op.quality.service.impl; + +import java.util.List; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.quality.domain.QcProductCpkUpdown; +import com.op.quality.mapper.QcProductCpkUpdownMapper; +import com.op.quality.service.IQcProductCpkUpdownService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +/** + * 检验节点维护Service业务层处理 + * + * @author Open Platform + * @date 2024-09-12 + */ +@Service +public class QcProductCpkUpdownServiceImpl implements IQcProductCpkUpdownService { + @Autowired + private QcProductCpkUpdownMapper qcProductCpkUpdownMapper; + + /** + * 查询检验节点维护 + * + * @param id 检验节点维护主键 + * @return 检验节点维护 + */ + @Override + @DS("#header.poolName") + public QcProductCpkUpdown selectQcProductCpkUpdownById(String id) { + return qcProductCpkUpdownMapper.selectQcProductCpkUpdownById(id); + } + + /** + * 查询检验节点维护列表 + * + * @param qcProductCpkUpdown 检验节点维护 + * @return 检验节点维护 + */ + @Override + @DS("#header.poolName") + public List selectQcProductCpkUpdownList(QcProductCpkUpdown qcProductCpkUpdown) { + return qcProductCpkUpdownMapper.selectQcProductCpkUpdownList(qcProductCpkUpdown); + } + + /** + * 新增检验节点维护 + * + * @param qcProductCpkUpdown 检验节点维护 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown) { + qcProductCpkUpdown.setCreateTime(DateUtils.getNowDate()); + return qcProductCpkUpdownMapper.insertQcProductCpkUpdown(qcProductCpkUpdown); + } + + /** + * 修改检验节点维护 + * + * @param qcProductCpkUpdown 检验节点维护 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateQcProductCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown) { + qcProductCpkUpdown.setUpdateTime(DateUtils.getNowDate()); + return qcProductCpkUpdownMapper.updateQcProductCpkUpdown(qcProductCpkUpdown); + } + + /** + * 批量删除检验节点维护 + * + * @param ids 需要删除的检验节点维护主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcProductCpkUpdownByIds(String[] ids) { + return qcProductCpkUpdownMapper.deleteQcProductCpkUpdownByIds(ids); + } + + /** + * 删除检验节点维护信息 + * + * @param id 检验节点维护主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcProductCpkUpdownById(String id) { + return qcProductCpkUpdownMapper.deleteQcProductCpkUpdownById(id); + } + + @Override + @DS("#header.poolName") + public QcProductCpkUpdown checkCpkUpdown(QcProductCpkUpdown qcProductCpkUpdown) { + return qcProductCpkUpdownMapper.checkCpkUpdown(qcProductCpkUpdown); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index 5a0cfaa04..1989db289 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -768,6 +768,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { if(qcStaticTable.getProjectNoArray()!=null){ qcStaticTable.setProjectNo(qcStaticTable.getProjectNoArray()[0]); QcStaticTable upandown = qcStaticTableMapper.getUpAndDown(qcStaticTable); + if(upandown!=null){ dto.setUpperDiff(upandown.getUpperDiff()); dto.setDownDiff(upandown.getDownDiff()); 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 72c7e3266..e93e66549 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 @@ -100,7 +100,7 @@ qct.check_time, qct.check_result, qct.status, qct.check_type, qct.attr1, qct.attr2, qct.attr3, qct.attr4, qct.create_by, qct.create_time, qct.update_by, qct.update_time, qct.factory_code, qct.del_flag,qct.reason,qct.product_type,qct.order_type,qct.jgy,qct.pgy,qct.cxzz, - bp.mvgr5 standardNo + ISNULL(bp.mvgr5, '成品蚊香【物料组】') standardNo from qc_check_task qct left join base_product bp on bp.product_code = qct.material_code where qct.record_id = #{recordId} 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 cbdf1c8d2..c4f7ac0da 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 @@ -161,7 +161,7 @@ qctp.weight from qc_check_task_detail td left join qc_check_type_project qctp on td.type_project_id = qctp.id - left join lanju_op_cloud.dbo.sys_dict_data dic on dic.dict_value = td.unit_code and dic.status ='0' + left join lanju_op_cloud.dbo.sys_dict_data dic on dic.dict_value = td.unit_code and dic.status ='0' and dic.dict_type = 'unit' where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0' and td.rule_name is not null order by qctp.sort diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml index 56de2728f..61be57141 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml @@ -241,6 +241,7 @@ where CONVERT(varchar(10),create_time, 120) = CONVERT(varchar(10),GETDATE(), 120) + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcProductCpkUpdownMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcProductCpkUpdownMapper.xml new file mode 100644 index 000000000..d38098f5e --- /dev/null +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcProductCpkUpdownMapper.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, type_code, check_type, create_by, create_time, update_by, update_time, + factory_code, del_flag, material_code, material_name, up_val, down_val, + rule_code,rule_name + from qc_product_cpk_updown + + + + + + + + + insert into qc_product_cpk_updown + + id, + type_code, + check_type, + create_by, + create_time, + update_by, + update_time, + factory_code, + del_flag, + material_code, + material_name, + up_val, + down_val, + rule_code, + rule_name, + + + #{id}, + #{typeCode}, + #{checkType}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + #{delFlag}, + #{materialCode}, + #{materialName}, + #{upVal}, + #{downVal}, + #{ruleCode}, + #{ruleName}, + + + + + update qc_product_cpk_updown + + type_code =#{typeCode}, + check_type = #{checkType}, + update_by =#{updateBy}, + update_time =#{updateTime}, + del_flag =#{delFlag}, + material_code =#{materialCode}, + material_name =#{materialName}, + up_val =#{upVal}, + down_val =#{downVal}, + rule_code =#{ruleCode}, + rule_name = #{ruleName}, + + where id = #{id} + + + + update qc_product_cpk_updown set del_flag = '1' where id = #{id} + + + + update qc_product_cpk_updown set del_flag = '1' where id in + + #{id} + + + diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOrderController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOrderController.java index 2099b8686..204d1ef57 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOrderController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOrderController.java @@ -329,7 +329,17 @@ public class OdsProcureOrderController extends BaseController { odsProcureOrderService.OutboundPostingSAPfc(orderList); return success(); } - + /** + * 领料单出库过账 + * + * @param orderList + * @return + */ + @PostMapping("/OutboundPostingzcSAP") + public AjaxResult OutboundPostingzcSAP(@RequestBody List orderList) { + odsProcureOrderService.OutboundPostingzcSAP(orderList); + return success(); + } @PostMapping("/listCKT") public AjaxResult listCKT(BaseWarehouse baseWarehouse) { diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOutOrderController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOutOrderController.java index 11707ead1..df3b46c7e 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOutOrderController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOutOrderController.java @@ -65,6 +65,12 @@ public class OdsProcureOutOrderController extends BaseController { List list = odsProcureOutOrderService.selectOdsProcureOutOrderListZUfc(odsProcureOutOrder); return getDataTable(list); } + @PostMapping("/listZC") + public TableDataInfo listZC(OdsProcureOutOrder odsProcureOutOrder) { + startPage(); + List list = odsProcureOutOrderService.selectOdsProcureOutOrderListZC(odsProcureOutOrder); + return getDataTable(list); + } /** * 导出包材出库单列表 */ diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOutOrder.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOutOrder.java index 018c4ab9d..5d17b96a5 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOutOrder.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/OdsProcureOutOrder.java @@ -141,6 +141,15 @@ public class OdsProcureOutOrder extends BaseEntity { */ @Excel(name = "计划数量") private BigDecimal planNumber; + private BigDecimal amount; + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } private String sn; @@ -320,6 +329,43 @@ public class OdsProcureOutOrder extends BaseEntity { private String enterpriseCode; private String sapMag; private String sapXMag; + private String mateOrderInSnId; + + private String whCode; + private String waCode; + private String wlCode; + + public String getWhCode() { + return whCode; + } + + public void setWhCode(String whCode) { + this.whCode = whCode; + } + + public String getWaCode() { + return waCode; + } + + public void setWaCode(String waCode) { + this.waCode = waCode; + } + + public String getWlCode() { + return wlCode; + } + + public void setWlCode(String wlCode) { + this.wlCode = wlCode; + } + + public String getMateOrderInSnId() { + return mateOrderInSnId; + } + + public void setMateOrderInSnId(String mateOrderInSnId) { + this.mateOrderInSnId = mateOrderInSnId; + } public String getSapMag() { return sapMag; diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsOdsMateStorageNewsSn.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsOdsMateStorageNewsSn.java index 8c0ed9106..e2c49a2d3 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsOdsMateStorageNewsSn.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsOdsMateStorageNewsSn.java @@ -88,6 +88,16 @@ public class WmsOdsMateStorageNewsSn extends BaseEntity { */ @Excel(name = "数量") private BigDecimal amount; + @Excel(name = "出库数量") + private BigDecimal outNumber; + + public BigDecimal getOutNumber() { + return outNumber; + } + + public void setOutNumber(BigDecimal outNumber) { + this.outNumber = outNumber; + } /** * 备用1 diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java index 9e51ac78b..21f1d4085 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java @@ -4,6 +4,8 @@ import java.util.List; import com.op.system.api.domain.sap.SapMaterialPosting; import com.op.wms.domain.OdsProcureOutOrder; +import com.op.wms.domain.WmsOdsEmStorageNews; +import com.op.wms.domain.WmsOdsMateStorageNews; import org.apache.ibatis.annotations.Param; /** @@ -59,57 +61,70 @@ public interface OdsProcureOutOrderMapper { * @param IDs 需要删除的数据主键集合 * @return 结果 */ - public int deleteOdsProcureOutOrderByIDs(String[] IDs); + public int deleteOdsProcureOutOrderByIDs(String[] IDs); - OdsProcureOutOrder selectmesPrepare(OdsProcureOutOrder odsProcureOrder); + public OdsProcureOutOrder selectmesPrepare(OdsProcureOutOrder odsProcureOrder); - List selectmesPrepareDetail(OdsProcureOutOrder odsProcureOutOrder); + public List selectmesPrepareDetail(OdsProcureOutOrder odsProcureOutOrder); - void insertWmsRawMissionOut(OdsProcureOutOrder order); + public void insertWmsRawMissionOut(OdsProcureOutOrder order); - void updateOdsProcureOutOrderByid(OdsProcureOutOrder odsProcureOutOrder); + public void updateOdsProcureOutOrderByid(OdsProcureOutOrder odsProcureOutOrder); - List selectOdsProcureOutOrderListByIds(@Param("list") List orderList); + public List selectOdsProcureOutOrderListByIds(@Param("list") List orderList); - List selectOdsProcureOutOrderListZU(OdsProcureOutOrder odsProcureOutOrder); + public List selectOdsProcureOutOrderListZU(OdsProcureOutOrder odsProcureOutOrder); - List selectOdsProcureOutOrderListZUT(OdsProcureOutOrder odsProcureOutOrder1); + public List selectOdsProcureOutOrderListZUT(OdsProcureOutOrder odsProcureOutOrder1); - List selectOdsProcureOutOrderListByu1(@Param("list") List orderList); + public List selectOdsProcureOutOrderListByu1(@Param("list") List orderList); - void updateOdsProcureOutOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List sapMaterialPostingList); + public void updateOdsProcureOutOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List sapMaterialPostingList); - List selectOdsProcureOutOrderListZUKEN(OdsProcureOutOrder order); + public List selectOdsProcureOutOrderListZUKEN(OdsProcureOutOrder order); - List selectOdsProcureOutOrderListZUKENX(OdsProcureOutOrder order); + public List selectOdsProcureOutOrderListZUKENX(OdsProcureOutOrder order); - String selectMachineCode(@Param("order")OdsProcureOutOrder odsProcureOutOrder); + public String selectMachineCode(@Param("order")OdsProcureOutOrder odsProcureOutOrder); - List selectmesPrepareDetailWhite(OdsProcureOutOrder odsProcureOutOrder); + public List selectmesPrepareDetailWhite(OdsProcureOutOrder odsProcureOutOrder); - OdsProcureOutOrder selectmesPreparelike(OdsProcureOutOrder odsProcureOrder); + public OdsProcureOutOrder selectmesPreparelike(OdsProcureOutOrder odsProcureOrder); - List selectOdsProcureOutOrderListZUfc(OdsProcureOutOrder odsProcureOutOrder); + public List selectOdsProcureOutOrderListZUfc(OdsProcureOutOrder odsProcureOutOrder); - List PurchaseOrderOutboundPdafc(OdsProcureOutOrder odsProcureOrder); + public List PurchaseOrderOutboundPdafc(OdsProcureOutOrder odsProcureOrder); public int insertOdsProcureOutOrderfc(OdsProcureOutOrder odsProcureOutOrder); - List selectOdsProcureOutOrderListByu1fc(List orderList); + public List selectOdsProcureOutOrderListByu1fc(List orderList); - void updateOdsProcureOutOrderByidsfc(@Param("order") OdsProcureOutOrder order, @Param("list") List sapMaterialPostingList); + public void updateOdsProcureOutOrderByidsfc(@Param("order") OdsProcureOutOrder order, @Param("list") List sapMaterialPostingList); - OdsProcureOutOrder selectOdsProcureOutOrderListZUfcsy(OdsProcureOutOrder odsProcureOutOrder); + public OdsProcureOutOrder selectOdsProcureOutOrderListZUfcsy(OdsProcureOutOrder odsProcureOutOrder); - OdsProcureOutOrder selectMesPrepareBC(OdsProcureOutOrder odsProcureOutOrder); + public OdsProcureOutOrder selectMesPrepareBC(OdsProcureOutOrder odsProcureOutOrder); - List selectMesPrepareDetailBC(OdsProcureOutOrder order); + public List selectMesPrepareDetailBC(OdsProcureOutOrder order); - List selectWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder); + public List selectWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder); public void insertWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder1); - OdsProcureOutOrder selectWmsOdsProcureOutOrderByID(String id); + public OdsProcureOutOrder selectWmsOdsProcureOutOrderByID(String id); - void updateWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder1); + public void updateWmsOdsProcureOutOrder(OdsProcureOutOrder odsProcureOutOrder1); + + public List selectOdsProcureOutOrderListZC(OdsProcureOutOrder odsProcureOutOrder); + + public List selectWmsOdsProcureOutOrderByIDs(@Param("list") List orderList); + + public void updateWMSOdsProcureOutOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List sapMaterialPostingList); + + + public List selectWmsRawMissionOutByPrdAndMa(OdsProcureOutOrder order1); + + public List selectPreDetailHzList(OdsProcureOutOrder odsProcureOutOrder); + + public List selectWmsOdsProcureOutOrderByOrderStatus(OdsProcureOutOrder order); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsMateStorageNewsSnMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsMateStorageNewsSnMapper.java index 5e9d57bf5..fc7411056 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsMateStorageNewsSnMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsMateStorageNewsSnMapper.java @@ -62,12 +62,20 @@ public interface WmsOdsMateStorageNewsSnMapper { */ public int deleteWmsOdsMateStorageNewsSnByMateOrderInSnIds(Long[] mateOrderInSnIds); - void updateAdd(WmsOdsEmStorageNews wmsOdsEmStorageNews); + public void updateAdd(WmsOdsEmStorageNews wmsOdsEmStorageNews); - void updatekdd(WmsOdsEmStorageNews wmsOdsEmStorageNews); + public void updatekdd(WmsOdsEmStorageNews wmsOdsEmStorageNews); - WmsOdsMateStorageNewsSn selectwmsRfidNotwo(WmsToWCSDTO wcsdto); + public WmsOdsMateStorageNewsSn selectwmsRfidNotwo(WmsToWCSDTO wcsdto); - WmsOdsMateStorageNewsSn selectWmsOdsMateStorageNewsSnByWlCode(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn); + public WmsOdsMateStorageNewsSn selectWmsOdsMateStorageNewsSnByWlCode(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn); + + public WmsOdsMateStorageNewsSn selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(String mateOrderInSnId); + + public void updateWmsOdsMateStorageNewsSnAddoutNumber(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn); + + public WmsOdsMateStorageNewsSn selectWmsOdsMateStorageNewsSnByWlCodeTEM(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn); + + void updatesub(WmsOdsMateStorageNews wmsOdsMateStorageNews); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java index 5d6e81826..0c9a81c5f 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOrderService.java @@ -127,4 +127,6 @@ public interface IOdsProcureOrderService { WmsOdsMateStorageNewsSn SweepMaterialCardSC(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn); String NewConMaterialOutSC(List odsProcureOutOrder); + + void OutboundPostingzcSAP(List orderList); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOutOrderService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOutOrderService.java index f7b999225..e2a81275d 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOutOrderService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOutOrderService.java @@ -64,4 +64,6 @@ public interface IOdsProcureOutOrderService { List selectOdsProcureOutOrderListZUTwo(OdsProcureOutOrder odsProcureOutOrder1); List selectOdsProcureOutOrderListZUfc(OdsProcureOutOrder odsProcureOutOrder); + + List selectOdsProcureOutOrderListZC(OdsProcureOutOrder odsProcureOutOrder); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java index dafb8e49f..7f235470a 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java @@ -1176,6 +1176,10 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { }else{ dtos.addAll(dtos0); } +// for (OdsProcureOrder order1: +// dtos ) { +// +// } String msg= dayin(dtos); return msg; } @@ -1457,115 +1461,199 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { @Override public List ProductionMaterialRequisitionSC(OdsProcureOutOrder odsProcureOutOrder) { - //二维码获取的信息查询对应的sap生产订单,再用生产订单查询子单 DynamicDataSourceContextHolder.push("ds_" + odsProcureOutOrder.getFactoryCode()); - List orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder); - if (orderListone.size()>0){ - return orderListone; - } - OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder); - List orderList= odsProcureOutOrderMapper.selectMesPrepareDetailBC(order); + if (odsProcureOutOrder.getUserDefined4().length()<=10){ + //二维码获取的信息查询对应的sap生产订单,再用生产订单查询子单 - //根据订单号查询对应的最大批次号 - Integer orderItem = 0; - for (OdsProcureOutOrder orderLine1 : - orderList) { - orderItem++; - orderLine1.setUserDefined2(String.format("%05d", orderItem)); + List orderLists=new ArrayList<>(); + List orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder); + if (orderListone.size()>0){ + for (OdsProcureOutOrder order:orderListone){ + if (!"3".equals(order.getOrderStatus())){ + orderLists.add(order); + } + } + return orderLists; + } +// OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder); + List orderList= odsProcureOutOrderMapper.selectPreDetailHzList(odsProcureOutOrder); + //根据订单号查询对应的最大批次号 + Integer orderItem = 0; + for (OdsProcureOutOrder orderLine1 : + orderList) { + orderItem++; + orderLine1.setUserDefined2(String.format("%05d", orderItem)); + } + List orderList1=new ArrayList<>(); + for (OdsProcureOutOrder order1: + orderList) { + OdsProcureOutOrder odsProcureOutOrder1 = new OdsProcureOutOrder(); + odsProcureOutOrder1.setID(IdUtils.fastSimpleUUID()); + odsProcureOutOrder1.setSiteCode(order1.getFactoryCode()); + odsProcureOutOrder1.setProduceCode(odsProcureOutOrder.getUserDefined4());//反冲 + odsProcureOutOrder1.setOutNumber(new BigDecimal("0")); + //odsProcureOutOrder1.setLocCode(order.getWarehouseNo()); + odsProcureOutOrder1.setMaterialCode(order1.getMaterialCode()); + odsProcureOutOrder1.setMaterialDesc(order1.getMaterialDesc()); + odsProcureOutOrder1.setPlanDate(new Date()); + odsProcureOutOrder1.setUnit(order1.getUnit()); + odsProcureOutOrder1.setUserDefined5(odsProcureOutOrder.getUserDefined4()); + //odsProcureOutOrder1.setProductionLineCode(order1.getStationNo()); + //odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo()); + odsProcureOutOrder1.setActive("1"); + odsProcureOutOrder1.setOrderStatus("1");// + odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber()); + odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2()); + odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3()); + odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4()); + odsProcureOutOrder1.setUserDefined10("1"); + odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy()); + odsProcureOutOrder1.setCreateDate(new Date()); + //odsProcureOutOrder1.setCreateDate(new Date()); + //odsProcureOutOrder.set + odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1); + orderList1.add(odsProcureOutOrder1); + } + return orderList1; + }else { + //二维码获取的信息查询对应的sap生产订单,再用生产订单查询子单 + + List orderLists=new ArrayList<>(); + List orderListone= odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder); + if (orderListone.size()>0){ + for (OdsProcureOutOrder order:orderListone){ + if (!"3".equals(order.getOrderStatus())){ + orderLists.add(order); + } + } + return orderLists; + } + OdsProcureOutOrder order = odsProcureOutOrderMapper.selectMesPrepareBC(odsProcureOutOrder); + List orderList= odsProcureOutOrderMapper.selectMesPrepareDetailBC(order); + + //根据订单号查询对应的最大批次号 + Integer orderItem = 0; + for (OdsProcureOutOrder orderLine1 : + orderList) { + orderItem++; + orderLine1.setUserDefined2(String.format("%05d", orderItem)); + } + List orderList1=new ArrayList<>(); + for (OdsProcureOutOrder order1: + orderList) { + OdsProcureOutOrder odsProcureOutOrder1 = new OdsProcureOutOrder(); + odsProcureOutOrder1.setID(IdUtils.fastSimpleUUID()); + odsProcureOutOrder1.setSiteCode(order1.getFactoryCode()); + odsProcureOutOrder1.setProduceCode(order.getProduceCode()); + odsProcureOutOrder1.setOutNumber(new BigDecimal("0")); + //odsProcureOutOrder1.setLocCode(order.getWarehouseNo()); + odsProcureOutOrder1.setMaterialCode(order1.getMaterialCode()); + odsProcureOutOrder1.setMaterialDesc(order1.getMaterialDesc()); + odsProcureOutOrder1.setPlanDate(new Date()); + odsProcureOutOrder1.setUnit(order1.getUnit()); + //odsProcureOutOrder1.setProductionLineCode(order1.getStationNo()); + //odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo()); + odsProcureOutOrder1.setActive("1"); + odsProcureOutOrder1.setOrderStatus("1");// + odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber()); + odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2()); + odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3()); + odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4()); + odsProcureOutOrder1.setUserDefined10("1"); + odsProcureOutOrder1.setUserDefined5(order1.getNeedDate()); + odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy()); + odsProcureOutOrder1.setCreateDate(new Date()); + //odsProcureOutOrder1.setCreateDate(new Date()); + //odsProcureOutOrder.set + odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1); + orderList1.add(odsProcureOutOrder1); + } + return orderList1; } - List orderList1=new ArrayList<>(); - for (OdsProcureOutOrder order1: - orderList) { - OdsProcureOutOrder odsProcureOutOrder1 = new OdsProcureOutOrder(); - odsProcureOutOrder1.setID(IdUtils.fastSimpleUUID()); - odsProcureOutOrder1.setSiteCode(order1.getFactoryCode()); - odsProcureOutOrder1.setProduceCode(order.getProduceCode()); - odsProcureOutOrder1.setOutNumber(new BigDecimal("0")); - //odsProcureOutOrder1.setLocCode(order.getWarehouseNo()); - odsProcureOutOrder1.setMaterialCode(order1.getMaterialCode()); - odsProcureOutOrder1.setMaterialDesc(order1.getMaterialDesc()); - odsProcureOutOrder1.setPlanDate(new Date()); - odsProcureOutOrder1.setUnit(order1.getUnit()); - //odsProcureOutOrder1.setProductionLineCode(order1.getStationNo()); - //odsProcureOutOrder1.setUserDefined1(orderLine1.getBatchNo()); - odsProcureOutOrder1.setActive("1"); - odsProcureOutOrder1.setOrderStatus("0");// - odsProcureOutOrder1.setPlanNumber(order1.getPlanNumber()); - odsProcureOutOrder1.setUserDefined2(order1.getUserDefined2()); - odsProcureOutOrder1.setUserDefined3(order1.getUserDefined3()); - odsProcureOutOrder1.setUserDefined4(odsProcureOutOrder.getUserDefined4()); - odsProcureOutOrder1.setUserDefined10("1"); - odsProcureOutOrder1.setCreateBy(odsProcureOutOrder.getCreateBy()); - odsProcureOutOrder1.setCreateDate(new Date()); - odsProcureOutOrder1.setCreateDate(new Date()); - //odsProcureOutOrder.set - odsProcureOutOrderMapper.insertWmsOdsProcureOutOrder(odsProcureOutOrder1); - orderList1.add(odsProcureOutOrder1); - } - return orderList1; + } @Override public WmsOdsMateStorageNewsSn SweepMaterialCardSC(WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn) { DynamicDataSourceContextHolder.push("ds_" + wmsOdsMateStorageNewsSn.getFactoryCode()); - wmsOdsMateStorageNewsSn.setUserDefined3("1"); - WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSnk= wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByWlCode(wmsOdsMateStorageNewsSn); + wmsOdsMateStorageNewsSn.setUserDefined3("1");//1是入库 + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSnk= wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByWlCodeTEM(wmsOdsMateStorageNewsSn); return wmsOdsMateStorageNewsSnk; } + /** + * 传了领料单号,还有标识卡的信息,例如,物料编号,物料描述,数量,单位,状态,需求时间,工厂, + * 要根据标识卡信息和生产领料单的信息,这样的话,需要用生产领料单和标识卡的信息来查询出来对应的领料单 + * ,进行修改对应领料单的出库数量和状态(如果计划数量小于或者等于出库数量,状态改为完成),然后在出库表中添加记录,进行库存的修改(占用数量),先是明细后是总表 + * 然后是过账,过账选择生产领料单为完成状态并且过账状态是未过账的进行过账,(过账失败的在页面上过账),--过账-成功的话,取消占用减去库存,记录信息,如果失败是记录信息,(页面过账) + * @param orderList + * @return + */ @Override public String NewConMaterialOutSC(List orderList) { - //修改对应订单--插入对应出库托盘数据数据 -// for (OdsProcureOutOrder odsProcureOutOrder: -// orderList) { -// //领料单,物料编号,领料单批次,物料名称,托盘号,出库数量,库位号, -// odsProcureOutOrder. -// } String result="操作成功"; String factoryCode = orderList.get(0).getFactoryCode(); DynamicDataSourceContextHolder.push("ds_" + factoryCode); for (OdsProcureOutOrder odsProcureOutOrder : orderList) { //领料单,物料编号,领料单批次,物料名称,托盘号,出库数量,库位号, - WmsToWCSDTO wcsdto = new WmsToWCSDTO(); - - wcsdto.setRfidNo(odsProcureOutOrder.getSn()); - WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectwmsRfidNotwo(wcsdto); - //明细 + String produceCode= odsProcureOutOrder.getProduceCode();//生产领料单号 + String createBy= odsProcureOutOrder.getCreateBy();//操作人 + String mateOrderInSnId= odsProcureOutOrder.getMateOrderInSnId(); + String waCode= odsProcureOutOrder.getWaCode(); + String whCode= odsProcureOutOrder.getWhCode(); + String wlCode= odsProcureOutOrder.getWlCode(); + String sn= odsProcureOutOrder.getSn(); + String materialCode= odsProcureOutOrder.getMaterialCode(); + String materialDesc= odsProcureOutOrder.getMaterialDesc(); + BigDecimal amount= odsProcureOutOrder.getAmount();//数量 + String userDefined1= odsProcureOutOrder.getUserDefined1();//单位 + String userDefined2= odsProcureOutOrder.getUserDefined2();//批次 + WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(mateOrderInSnId); //wms_raw_mission_out--保存 //ods_procure_out_order--修改 WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan(); wcsInventoryPlan.setSku(odsProcureOutOrder.getMaterialCode()); - // WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan); - + // WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan); OdsProcureOutOrder order = new OdsProcureOutOrder(); - order.setProduceCode(odsProcureOutOrder.getProduceCode());//领料单 - order.setMaterialCode(odsProcureOutOrder.getMaterialCode());// - order.setMaterialDesc(odsProcureOutOrder.getMaterialDesc()); - order.setUserDefined1(odsProcureOutOrder.getUserDefined1());//批次 - order.setSn(odsProcureOutOrder.getSn()); - order.setPlanNumber(odsProcureOutOrder.getPlanNumber()); - order.setLocCode(odsProcureOutOrder.getLocCode()); + order.setProduceCode(produceCode);//领料单 + order.setMaterialCode(materialCode);// + order.setMaterialDesc(materialDesc); + order.setUserDefined1(userDefined2);//批次 + order.setUserDefined2(whCode); + order.setUserDefined3(wlCode); + order.setSn(sn); + order.setPlanNumber(amount); + order.setLocCode(waCode);//库区 order.setID(IdUtils.fastSimpleUUID()); - order.setUnit(odsProcureOutOrder.getUnit()); + order.setUnit(userDefined1); order.setFactoryCode(factoryCode); order.setActive("1"); - order.setCreateBy(odsProcureOutOrder.getCreateBy()); + order.setCreateBy(createBy); order.setCreateDate(new Date()); + order.setSiteCode(factoryCode); odsProcureOutOrderMapper.insertWmsRawMissionOut(order); - - OdsProcureOutOrder odsProcureOutOrder1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByID(odsProcureOutOrder.getID()); - BigDecimal realityNumber1 = odsProcureOutOrder1.getOutNumber();//累出库数 - BigDecimal realityNumber = odsProcureOutOrder1.getPlanNumber();//计划 - BigDecimal planNumber = odsProcureOutOrder.getPlanNumber();//本次实际数量 + OdsProcureOutOrder odsProcureOutOrder1=new OdsProcureOutOrder(); + odsProcureOutOrder1.setProduceCode(produceCode); + odsProcureOutOrder1.setMaterialCode(materialCode); + List odsProcureOutOrders = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder1); + OdsProcureOutOrder order1= odsProcureOutOrders.get(0); + BigDecimal realityNumber1 = order1.getOutNumber();//累出库数 + BigDecimal realityNumber = order1.getPlanNumber();//计划 + BigDecimal planNumber = amount;//本次实际数量 BigDecimal tem = realityNumber1.add(planNumber); - if (tem.compareTo(realityNumber)== 0) { - odsProcureOutOrder1.setOrderStatus("3"); + if (tem.compareTo(realityNumber)>= 0) { + order1.setOrderStatus("3"); } else { - odsProcureOutOrder1.setOrderStatus("2"); + order1.setOrderStatus("2"); } - odsProcureOutOrder1.setOutNumber(tem); - odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(odsProcureOutOrder1);//订单修改 + order1.setOutNumber(tem); + odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(order1);//订单修改 + //明细 +// BigDecimal temk= wmsOdsMateStorageNewsSn.getAmount().subtract(amount); + wmsOdsMateStorageNewsSn.setOutNumber(amount); + wmsOdsMateStorageNewsSn.setLastModifiedBy(createBy); + wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn);//库存明细 WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews(); wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码 wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码 @@ -1573,13 +1661,237 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { wmsOdsEmStorageNews.setProductBatch(wmsOdsMateStorageNewsSn.getUserDefined2()); wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode()); wmsOdsEmStorageNews.setAmount(odsProcureOutOrder.getPlanNumber());//库存 + wmsOdsEmStorageNews.setLastModifiedBy(createBy); wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews);//库存调整 - wmsOdsMateStorageNewsSn.setUserDefined1("1"); - wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn);//库存明细 + } + // + OdsProcureOutOrder order=new OdsProcureOutOrder(); + List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByOrderStatus(order); + if (orderList1.size()>0){ + OutboundPostingzcSAPGY(orderList1); } return result; } + public void OutboundPostingzcSAPGY(List orderList) { + //先根据出库单获取 +// * 退料的移动类型为 262 +// * 领料的移动类型为 261 + List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList); + List orderList2 = new ArrayList<>();//非反冲 + List> mapList = new ArrayList<>();//非反冲 + List sapMaterialPostingFCList = new ArrayList<>();//反冲 + List orderList2FC = new ArrayList<>();//反冲 + for (OdsProcureOutOrder odsProcureOutOrder : + orderList1) { + if (!"X".equals(odsProcureOutOrder.getUserDefined3())){ + Map map = new HashMap<>(); + map.put("AUFNR", odsProcureOutOrder.getProduceCode()); + map.put("PLANT", odsProcureOutOrder.getSiteCode()); + String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode()); + map.put("LGORT", lgort); + map.put("MATNR", odsProcureOutOrder.getMaterialCode()); + map.put("QUANTITY", odsProcureOutOrder.getOutNumber().toString()); + map.put("MEINS", odsProcureOutOrder.getUnit()); + mapList.add(map); + orderList2.add(odsProcureOutOrder); + }else { + SapBackflushMPQuery sapBackflushMPQuery = new SapBackflushMPQuery(); + sapBackflushMPQuery.setPlant(odsProcureOutOrder.getSiteCode()); //工厂 + String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode()); + sapBackflushMPQuery.setLgort(lgort);//库存地点 + sapBackflushMPQuery.setMatnr(odsProcureOutOrder.getMaterialCode());//物料号 + sapBackflushMPQuery.setQuantity(odsProcureOutOrder.getOutNumber().toString()); //数量 + sapBackflushMPQuery.setMeins(odsProcureOutOrder.getUnit()); //基本计量单位 + sapBackflushMPQuery.setBatch(odsProcureOutOrder.getUserDefined2()); //批号 + sapMaterialPostingFCList.add(sapBackflushMPQuery); + orderList2FC.add(odsProcureOutOrder); + } + } + if (mapList.size() > 0) { + //非反冲过账 + SapMaterialPosting sapMaterialPosting = new SapMaterialPosting(); + sapMaterialPosting.setPostingType("261"); + sapMaterialPosting.setMapList(mapList); + R result = remoteSapService.sapMaterialPosting(sapMaterialPosting); + OdsProcureOutOrder order = new OdsProcureOutOrder(); + int code = result.getCode(); + String msg = result.getMsg(); + //order.setSapMaterialPostingList(sapMaterialPostingList); + order.setUserDefined11(msg); + if (code == 200) { + //过账成功 + Map map = new HashMap(); + map = (Map) result.getData(); + String userDefined9 = (String) map.get("MATERIALDOCUMENT"); + order.setUserDefined9(userDefined9); + order.setUserDefined10("2");//成功 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2); + for (OdsProcureOutOrder order1: + orderList2) { + //过账成功--减库存 + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } + } + } else { + // + order.setUserDefined9(""); + order.setUserDefined10("3");//失败 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2); + } + } + if (sapMaterialPostingFCList.size() > 0) { + //反冲过账 + R result2 = remoteSapService.sapBackflushMP(sapMaterialPostingFCList);//x + int code = result2.getCode(); + OdsProcureOutOrder order = new OdsProcureOutOrder(); + String msg = result2.getMsg(); + order.setUserDefined11(msg); + if (code == 200) { + //过账成功 + Map map = new HashMap(); + map = (Map) result2.getData(); + String userDefined9 = (String) map.get("MATERIALDOCUMENT"); + order.setUserDefined9(userDefined9); + order.setUserDefined10("2");//成功 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC); + for (OdsProcureOutOrder order1: + orderList2FC) { + //过账成功--减库存 + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } + } + } else {// + order.setUserDefined9(""); + order.setUserDefined10("3");//失败 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC); + } + } + } + + + /** + * + * @param orderList + */ + @Override + @DS("#header.poolName") + public void OutboundPostingzcSAP(List orderList) { + //先根据出库单获取 +// * 退料的移动类型为 262 +// * 领料的移动类型为 261 + List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList); + List orderList2 = new ArrayList<>();//非反冲 + List> mapList = new ArrayList<>();//非反冲 + List sapMaterialPostingFCList = new ArrayList<>();//反冲 + List orderList2FC = new ArrayList<>();//反冲 + for (OdsProcureOutOrder odsProcureOutOrder : + orderList1) { + if (!"X".equals(odsProcureOutOrder.getUserDefined3())){ + Map map = new HashMap<>(); + map.put("AUFNR", odsProcureOutOrder.getProduceCode()); + map.put("PLANT", odsProcureOutOrder.getSiteCode()); + String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode()); + map.put("LGORT", lgort); + map.put("MATNR", odsProcureOutOrder.getMaterialCode()); + map.put("QUANTITY", odsProcureOutOrder.getOutNumber().toString()); + map.put("MEINS", odsProcureOutOrder.getUnit()); + mapList.add(map); + orderList2.add(odsProcureOutOrder); + }else { + SapBackflushMPQuery sapBackflushMPQuery = new SapBackflushMPQuery(); + sapBackflushMPQuery.setPlant(odsProcureOutOrder.getSiteCode()); //工厂 + String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode()); + sapBackflushMPQuery.setLgort(lgort);//库存地点 + sapBackflushMPQuery.setMatnr(odsProcureOutOrder.getMaterialCode());//物料号 + sapBackflushMPQuery.setQuantity(odsProcureOutOrder.getOutNumber().toString()); //数量 + sapBackflushMPQuery.setMeins(odsProcureOutOrder.getUnit()); //基本计量单位 + sapBackflushMPQuery.setBatch(odsProcureOutOrder.getUserDefined2()); //批号 + sapMaterialPostingFCList.add(sapBackflushMPQuery); + orderList2FC.add(odsProcureOutOrder); + } + } + if (mapList.size() > 0) { + //非反冲过账 + SapMaterialPosting sapMaterialPosting = new SapMaterialPosting(); + sapMaterialPosting.setPostingType("261"); + sapMaterialPosting.setMapList(mapList); + R result = remoteSapService.sapMaterialPosting(sapMaterialPosting); + OdsProcureOutOrder order = new OdsProcureOutOrder(); + int code = result.getCode(); + String msg = result.getMsg(); + //order.setSapMaterialPostingList(sapMaterialPostingList); + order.setUserDefined11(msg); + if (code == 200) { + //过账成功 + Map map = new HashMap(); + map = (Map) result.getData(); + String userDefined9 = (String) map.get("MATERIALDOCUMENT"); + order.setUserDefined9(userDefined9); + order.setUserDefined10("2");//成功 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2); + for (OdsProcureOutOrder order1: + orderList2) { + //过账成功--减库存 + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } + } + } else { + // + order.setUserDefined9(""); + order.setUserDefined10("3");//失败 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2); + } + } + if (sapMaterialPostingFCList.size() > 0) { + //反冲过账 + R result2 = remoteSapService.sapBackflushMP(sapMaterialPostingFCList);//x + int code = result2.getCode(); + OdsProcureOutOrder order = new OdsProcureOutOrder(); + String msg = result2.getMsg(); + order.setUserDefined11(msg); + if (code == 200) { + //过账成功 + Map map = new HashMap(); + map = (Map) result2.getData(); + String userDefined9 = (String) map.get("MATERIALDOCUMENT"); + order.setUserDefined9(userDefined9); + order.setUserDefined10("2");//成功 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC); + for (OdsProcureOutOrder order1: + orderList2FC) { + //过账成功--减库存 + List odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1); + for (WmsOdsMateStorageNews wmsOdsMateStorageNews: + odsEmStorageNews) { + //wmsOdsMateStorageNews + wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername()); + wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整 + } + } + } else {// + order.setUserDefined9(""); + order.setUserDefined10("3");//失败 + odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC); + } + } + } + public String dayin( List orderList) { // 定义请求的URL地址 diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java index 2a759bdd3..95df0c70b 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java @@ -131,4 +131,11 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService List orderList = odsProcureOutOrderMapper.selectOdsProcureOutOrderListZUfc(odsProcureOutOrder); return orderList; } + + @Override + @DS("#header.poolName") + public List selectOdsProcureOutOrderListZC(OdsProcureOutOrder odsProcureOutOrder) { + List orderList = odsProcureOutOrderMapper.selectOdsProcureOutOrderListZC(odsProcureOutOrder); + return orderList; + } } 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 439d308a8..60c54b156 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 @@ -396,6 +396,8 @@ material_desc, unit, user_defined1, + user_defined2, + user_defined3, sn, amount, origin_location, @@ -410,6 +412,8 @@ #{materialDesc}, #{Unit}, #{userDefined1}, + #{userDefined2}, + #{userDefined3}, #{sn}, #{planNumber}, #{locCode}, @@ -436,6 +440,17 @@ #{item.ID} + + update wms_ods_procure_out_order + set User_Defined10 = #{order.userDefined10}, + User_Defined9 = #{order.userDefined9}, + User_Defined11 = #{order.userDefined11} + where ID in + + #{item.ID} + + + update ods_procure_out_order_fc set User_Defined10 = #{order.userDefined10}, @@ -708,8 +723,8 @@ FROM mes_prepare_detail WHERE - prepare_id=#{ID} and - del_flag = '0' + parent_work_order=#{workorderCode} and + del_flag = '0' and recoil= '' + + + + + diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsSnMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsSnMapper.xml index b4a44ba84..bf2a85d01 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsSnMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsSnMapper.xml @@ -79,7 +79,11 @@ where mate_order_in_sn_id = #{mateOrderInSnId} - + insert into wms_ods_mate_storage_news_sn @@ -201,10 +205,20 @@ update wms_ods_mate_storage_news - set occupy_amount = occupy_amount + #{amount}, + set occupy_amount =ISNULL(occupy_amount, 0) + #{amount}, + last_modified_by=#{lastModifiedBy}, gmt_modified=GETDATE() - where wh_code=#{whCode} and wa_code=#{waCode} and wl_code=#{wlCode} and material_code=#{materialCode} and product_bach= #{productBatch} + where wh_code=#{whCode} and wa_code=#{waCode} and wl_code=#{wlCode} and material_code=#{materialCode} + + update wms_ods_mate_storage_news + set occupy_amount =ISNULL(occupy_amount, 0) - #{amount}, + amount = ISNULL(amount, 0) - #{amount}, + last_modified_by=#{lastModifiedBy}, + gmt_modified=GETDATE() + where wh_code=#{userDefined2} and wa_code=#{waCode} and wl_code=#{userDefined3} and material_code=#{materialCode} + + + + update wms_ods_mate_storage_news_sn + set out_number = ISNULL(out_number, 0) + #{outNumber}, + last_modified_by = #{lastModifiedBy}, + gmt_modified=GETDATE() + where mate_order_in_sn_id = #{mateOrderInSnId} + +