diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProduceSnService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProduceSnService.java index a935f7b..9aa6a4e 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProduceSnService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProduceSnService.java @@ -16,4 +16,7 @@ public interface IMesProduceSnService extends IBaseMesService { @ApiOperation(value = "根据条码查询产品条码表") List findMesProduceSn(String organizeCode, String sn); + + @ApiOperation(value = "查询条码信息") + List findMesProduceSnList(String organizeCode, List snList); } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordService.java index fc6c76d..992ea9c 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -20,4 +21,7 @@ public interface IMesProductionRecordService extends IBaseMesService findMesProductionRecord(String organizeCode, String sn); ListPager queryRecordGroupByPartNoWorkCellCode(MesProductionRecord mesProductionRecord, Pager pager); + + @ApiOperation(value = "线边库存报表") + ListPager queryMesProductionOffLine(MesProductionRecordModel mesProductionRecordModel,Pager pager); } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java index c86090e..3c77082 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java @@ -4,6 +4,9 @@ import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; +import io.swagger.annotations.ApiOperation; + +import java.util.List; /** * @Description: @@ -15,4 +18,9 @@ public interface IMesShippingOrderManagementDetailService extends IBaseMesServic public ListPager queryDetailGroupByPartNo(MesShippingOrderManagementDetail bean, Pager pager); + @ApiOperation("查询发运单明细") + ListPager queryMesShippingDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager); + + @ApiOperation("发运退回") + void doShippingBack(Long[] idList,String organizeCode,String userName); } diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesLoadingListDetail.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesLoadingListDetail.groovy index eb0c734..6b0c7b7 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesLoadingListDetail.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesLoadingListDetail.groovy @@ -1,4 +1,6 @@ - +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack +import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper @@ -29,23 +31,20 @@ class MesToPiscesMesLoadingListDetail { if (srcData == null || srcData.size() == 0) { return srcData } - Map mesProductionRecordMap = new HashMap<>(); + String organizeCode = mapper.getOrganizeCode(); + Map mesProductionRecordMap = new HashMap<>(); Map mesLoadingListMap = new HashMap<>(); for (Map rowMap : srcData) { //发运单 - if (!StringUtils.isEmpty(rowMap.get("shipping_id"))) { - long shippingId = Long.parseLong(String.valueOf(rowMap.get("shipping_id"))); - if (Objects.isNull(mesProductionRecordMap) || !mesProductionRecordMap.containsKey(shippingId)) { - mesProductionRecordMap.put(shippingId, mesShippingRepository.getById(shippingId)) - } - MesShippingOrderManagement mesProductionRecord = mesProductionRecordMap.get(shippingId) - if (!Objects.isNull(mesProductionRecord)) { - rowMap.put("SHIPPING_FID", mesProductionRecord.getFid()) + if (!StringUtils.isEmpty(rowMap.get("shipping_code"))) { + MesShippingOrderManagement mesShippingOrderManagement = getShippingCode(organizeCode,String.valueOf(rowMap.get("shipping_code")),mesProductionRecordMap) + if (!Objects.isNull(mesShippingOrderManagement)) { + rowMap.put("SHIPPING_FID", mesShippingOrderManagement.getFid()) } else { rowMap.put("SHIPPING_FID", null) - LOGGER.info("发运单id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("shipping_id")))) + LOGGER.info("发运单shipping_code:{},信息不存在", String.valueOf(rowMap.get("shipping_code"))) } }else{ rowMap.put("SHIPPING_FID", null) @@ -61,7 +60,7 @@ class MesToPiscesMesLoadingListDetail { rowMap.put("LOADING_LIST_FID", mesLoadingList.getFid()) } else { rowMap.put("LOADING_LIST_FID", null) - LOGGER.info("装车id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("pid")))) + LOGGER.info("装车id:{},信息不存在", String.valueOf(rowMap.get("pid"))) } }else{ rowMap.put("LOADING_LIST_FID", null) @@ -70,4 +69,14 @@ class MesToPiscesMesLoadingListDetail { return srcData; } + + private MesShippingOrderManagement getShippingCode(String organizeCode, String shippingCode, Map mesShippingOrderManagementMap) { + if (Objects.isNull(mesShippingOrderManagementMap) || !mesShippingOrderManagementMap.containsKey(shippingCode)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(shippingCode, "shippingCode", ddlPackBean); + mesShippingOrderManagementMap.put(shippingCode, mesShippingRepository.getByProperty(ddlPackBean)) + } + return mesShippingOrderManagementMap.get(shippingCode); + } + } \ No newline at end of file diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesShippingDetail.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesShippingDetail.groovy index f8b4953..7c6a304 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesShippingDetail.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesMesShippingDetail.groovy @@ -58,7 +58,7 @@ class MesToPiscesMesShippingDetail { rowMap.put("SHIPPING_FID", mesProductionRecord.getFid()) } else { rowMap.put("SHIPPING_FID", null) - LOGGER.info("发运单id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("pid")))) + LOGGER.info("发运单id:{},信息不存在", String.valueOf(rowMap.get("pid"))) } }else{ rowMap.put("SHIPPING_FID", null) diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy index deb8a58..f5c2f33 100644 --- a/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Mes2Pisces/MesToPiscesProductionAssembly.groovy @@ -73,7 +73,7 @@ class MesToPiscesProductionAssembly { if (!Objects.isNull(mesProductionRecord)) { rowMap.put("PRODUCTION_LOG_FID", mesProductionRecord.getFid()) } else { - LOGGER.info("原材料容器id:{},信息不存在", String.valueOf(rowMap.get(rowMap.get("production_record_id")))) + LOGGER.info("原材料容器id:{},信息不存在", String.valueOf(rowMap.get("production_record_id"))) } }else{ rowMap.put("PRODUCTION_LOG_FID", null) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java index d0ac770..440c4d6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java @@ -1,9 +1,11 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; import cn.estsh.i3plus.ext.mes.api.base.IMesEnumExtService; +import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementDetailService; import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; import cn.estsh.i3plus.platform.common.tool.ExcelTool; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; @@ -53,6 +55,9 @@ public class BaseExtDataController extends MesBaseController { private IMesYfReportService mesYfReportService; @Autowired + private IMesShippingOrderManagementDetailService mesShippingOrderManagementDetailService; + + @Autowired private EntityManager entityManager; @GetMapping(value = "/enumlist") @@ -124,6 +129,10 @@ public class BaseExtDataController extends MesBaseController { mesClass = MesProductionRecord.class; //查询数据 listPager = mesYfReportService.queryMesProductionRecord(JSON.parseObject(exportDataModel.getSelectWhere(), MesProductionRecord.class),null);break; + case MES_SHIPPING_DETAIL_DATA_EXPORT: + mesClass = MesShippingOrderManagementDetailModel.class; + //查询数据 + listPager = mesShippingOrderManagementDetailService.queryMesShippingDetailsByPager(JSON.parseObject(exportDataModel.getSelectWhere(), MesShippingOrderManagementDetailModel.class),null);break; default: break; } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java index 93a7e90..a434b2d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementDetailController.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementDetailService; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; @@ -12,9 +13,9 @@ import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; @Api("发运单管理明细") @RestController @@ -40,4 +41,30 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle } } + @ApiOperation(value = "发运单明细", notes = "发运单明细") + @GetMapping("/master/query") + public ResultBean queryMesShippingDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager) { + try { + return ResultBean.success("查询成功").setListPager(shippingOrderManagementDetailService.queryMesShippingDetailsByPager(mesShippingOrderManagementDetailModel,pager)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation(value = "发运退回", notes = "发运退回") + @PutMapping("/doShippingBack") + public ResultBean doShippingBack(Long[] idList) { + try { + shippingOrderManagementDetailService.doShippingBack(idList,AuthUtil.getOrganizeCode(),AuthUtil.getSessionUser().getUserName()); + return ResultBean.success("退回成功"); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java index c91616f..19796db 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java @@ -1,11 +1,13 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.report; +import cn.estsh.i3plus.ext.mes.api.base.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; import cn.estsh.impp.framework.base.controller.MesBaseController; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; @@ -33,6 +35,9 @@ public class MesBusiReportController extends MesBaseController { @Autowired private IMesYfReportService mesYfReportService; + @Autowired + private IMesProductionRecordService mesProductionRecordService; + @ApiOperation(value = "查询追溯报表", notes = "查询追溯报表") @GetMapping("/traceability/find") public ResultBean findTraceabilityReport(MesProduceSn mesProduceSn) { @@ -72,4 +77,22 @@ public class MesBusiReportController extends MesBaseController { } } + @ApiOperation(value = "线边库存报表", notes = "线边库存报表") + @GetMapping("/mesProductionOffLine/query") + public ResultBean queryMesProductionOffLine(MesProductionRecordModel mesProductionRecordModel, Pager pager) { + try { + ValidatorBean.beginValid(mesProductionRecordModel) + .notNull("partNo", mesProductionRecordModel.getPartNo()) + .notNull("organizeCode", mesProductionRecordModel.getOrganizeCode()) + .notNull("onLineWorkCellCode",mesProductionRecordModel.getOnLineWorkCellCode()) + .notNull("offLineWorkCellCode",mesProductionRecordModel.getOffLineWorkCellCode()) + .notNull("createDateTimeStart",mesProductionRecordModel.getCreateDateTimeStart()) + .notNull("createDateTimeEnd",mesProductionRecordModel.getCreateDateTimeEnd()); + return ResultBean.success("查询成功").setListPager(mesProductionRecordService.queryMesProductionOffLine(mesProductionRecordModel,pager)); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesProdRuleNosortCfgDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesProdRuleNosortCfgDao.java index 86a4a98..c1c5142 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesProdRuleNosortCfgDao.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesProdRuleNosortCfgDao.java @@ -9,4 +9,6 @@ public interface IMesProdRuleNosortCfgDao { List findMesProdRuleNosortCfgByWorkCenterCode(String workCenterCode, String partNo, String organizeCode); + List findMesProdRuleNosortCfgByWorkCellCode(String workCellCode, String partNo, String organizeCode); + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesShippingOrderManagementDetailDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesShippingOrderManagementDetailDao.java index 9cb4ae2..7053b64 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesShippingOrderManagementDetailDao.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesShippingOrderManagementDetailDao.java @@ -1,8 +1,10 @@ package cn.estsh.i3plus.ext.mes.apiservice.dao; import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; +import io.swagger.annotations.ApiOperation; import java.util.List; @@ -18,4 +20,8 @@ public interface IMesShippingOrderManagementDetailDao { int queryOrderDetailGroupByPartCount(MesShippingOrderManagementDetail detail); List queryOrderDetailGroupByPartInfo(MesShippingOrderManagementDetail detail, Pager pager); + + @ApiOperation("查询发运单明细") + ListPager queryMesShippingDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager); + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesBomDaoImpl.java similarity index 97% rename from modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesDaoImpl.java rename to modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesBomDaoImpl.java index ac974cb..3adc1fe 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesBomDaoImpl.java @@ -20,7 +20,7 @@ import java.util.List; @Service @Slf4j -public class MesDaoImpl implements IMesBomDao { +public class MesBomDaoImpl implements IMesBomDao { @Autowired private EntityManager entityManager; diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesLoadingListDetailDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesLoadingListDetailDaoImpl.java index 19ffe74..5b2a1c8 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesLoadingListDetailDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesLoadingListDetailDaoImpl.java @@ -41,8 +41,8 @@ public class MesLoadingListDetailDaoImpl implements IMesLoadingListDetailDao { hql.append(" from mes_loading_list as mll"); hql.append(" inner join mes_loading_list_detail as mlld on mll.id = mlld.pid"); hql.append(" and mll.organize_code = mlld.organize_code and mll.is_deleted = mlld.is_deleted and mll.is_valid = mlld.is_valid "); - hql.append(" inner join mes_shipping as ms on mlld.shipping_id = ms.id "); - hql.append(" and mlld.organize_code = ms.organize_code and mlld.is_deleted = ms.is_deleted and mlld.is_valid = ms.is_valid "); + hql.append(" left join mes_shipping as ms on mlld.shipping_code = ms.shipping_code "); + hql.append(" and ((mlld.organize_code = ms.organize_code and mlld.is_deleted = ms.is_deleted and mlld.is_valid = ms.is_valid) or (ms.id is null)) "); hql.append(" where mll.organize_code = :organizeCode "); hql.append(" and mll.is_deleted = :isDeleted "); hql.append(" and mll.is_valid = :isValid "); @@ -109,8 +109,8 @@ public class MesLoadingListDetailDaoImpl implements IMesLoadingListDetailDao { hql.append(" from mes_loading_list as mll"); hql.append(" inner join mes_loading_list_detail as mlld on mll.id = mlld.pid"); hql.append(" and mll.organize_code = mlld.organize_code and mll.is_deleted = mlld.is_deleted and mll.is_valid = mlld.is_valid "); - hql.append(" inner join mes_shipping as ms on mlld.shipping_id = ms.id "); - hql.append(" and mlld.organize_code = ms.organize_code and mlld.is_deleted = ms.is_deleted and mlld.is_valid = ms.is_valid "); + hql.append(" left join mes_shipping as ms on mlld.shipping_code = ms.shipping_code "); + hql.append(" and ((mlld.organize_code = ms.organize_code and mlld.is_deleted = ms.is_deleted and mlld.is_valid = ms.is_valid) or (ms.id is null)) "); hql.append(" where mll.organize_code = :organizeCode "); hql.append(" and mll.is_deleted = :isDeleted "); hql.append(" and mll.is_valid = :isValid "); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesProdRuleNosortCfgDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesProdRuleNosortCfgDaoImpl.java index e7db34c..7441f61 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesProdRuleNosortCfgDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesProdRuleNosortCfgDaoImpl.java @@ -35,4 +35,22 @@ public class MesProdRuleNosortCfgDaoImpl implements IMesProdRuleNosortCfgDao { return query.getResultList(); } + + @Override + public List findMesProdRuleNosortCfgByWorkCellCode(String workCellCode, String partNo, String organizeCode) { + StringBuffer hql = new StringBuffer("select ns from MesProdRuleNosortCfg ns" + + " left join MesWcEquipment we on ns.equipmentCode = we.equipmentCode " + + " where ns.isDeleted=:isDeleted and ns.isValid = :isValid and ns.organizeCode = :organizeCode " + + " and we.isDeleted=:isDeleted and we.isValid = :isValid and we.organizeCode = :organizeCode " + + " and we.workCellCode = :workCellCode and ns.inPartNo = :inPartNo order by ns.createDatetime desc"); + + Query query = entityManager.createQuery(hql.toString(), MesProdRuleNosortCfg.class); + query.setParameter("organizeCode", organizeCode); + query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + query.setParameter("workCellCode", workCellCode); + query.setParameter("inPartNo", partNo); + + return query.getResultList(); + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java index 32532d4..3cbd941 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesShippingOrderManagementDetailDaoImpl.java @@ -2,9 +2,13 @@ package cn.estsh.i3plus.ext.mes.apiservice.daoimpl; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesShippingOrderManagementDetailDao; import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -15,6 +19,7 @@ import javax.persistence.EntityManager; import javax.persistence.Query; import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * @Description :SAP生产计划 @@ -98,4 +103,88 @@ public class MesShippingOrderManagementDetailDaoImpl implements IMesShippingOrde return modelList; } + + @Override + public ListPager queryMesShippingDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager) { + StringBuilder dataHql = new StringBuilder(); + dataHql.append(" select new ").append(MesShippingOrderManagementDetailModel.class.getName()).append("(m,d)"); + //共用HQL + String commonHql = getCommonHql(mesShippingOrderManagementDetailModel); + //行数 + Query countQuery = entityManager.createQuery("select count(1) " + commonHql); + setParameter(mesShippingOrderManagementDetailModel, countQuery); + //数据 + Query dataQuery = entityManager.createQuery(dataHql.append(commonHql).append(getOrderBy(mesShippingOrderManagementDetailModel)).toString(), MesShippingOrderManagementDetailModel.class); + setParameter(mesShippingOrderManagementDetailModel, dataQuery); + if (Objects.isNull(pager)) return new ListPager<>(dataQuery.getResultList(), pager); + + int count = Integer.parseInt(String.valueOf(countQuery.getSingleResult())); + if (count <= 0) return new ListPager<>(new ArrayList<>(), pager); + pager = PagerHelper.getPager(pager, count); + dataQuery.setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize()); + return new ListPager<>(dataQuery.getResultList(), pager); + } + + private void setParameter(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Query query) { + query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + query.setParameter("organizeCode", mesShippingOrderManagementDetailModel.getOrganizeCode()); + query.setParameter("status", MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getShippingType())) + query.setParameter("shippingType", mesShippingOrderManagementDetailModel.getShippingType()); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getStartScanTimeStart())) + query.setParameter("startScanTimeStart", mesShippingOrderManagementDetailModel.getStartScanTimeStart()); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getStartScanTimeEnd())) + query.setParameter("startScanTimeEnd", mesShippingOrderManagementDetailModel.getStartScanTimeEnd()); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getEndScanTimeStart())) + query.setParameter("endScanTimeStart", mesShippingOrderManagementDetailModel.getEndScanTimeStart()); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getEndScanTimeEnd())) + query.setParameter("endScanTimeEnd", mesShippingOrderManagementDetailModel.getEndScanTimeEnd()); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getPublishTimeStart())) + query.setParameter("publishTimeStart", mesShippingOrderManagementDetailModel.getPublishTimeStart()); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getPublishTimeEnd())) + query.setParameter("publishTimeEnd", mesShippingOrderManagementDetailModel.getPublishTimeEnd()); + } + + private String getOrderBy(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel) { + StringBuilder orderBy = new StringBuilder(); + if (StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getOrderByParam()) || StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getAscOrDesc())) { + mesShippingOrderManagementDetailModel.setOrderByParam("createDatetime"); + mesShippingOrderManagementDetailModel.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); + } + return orderBy.append(" order by d.").append(mesShippingOrderManagementDetailModel.getOrderByParam()).append(" ").append(CommonEnumUtil.ASC_OR_DESC.DESC.getValue() == mesShippingOrderManagementDetailModel.getAscOrDesc() ? "desc" : "asc").toString(); + } + + private String getCommonHql(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel) { + StringBuilder commonHql = new StringBuilder(); + commonHql.append(" from MesShippingOrderManagement m left join MesShippingOrderManagementDetail d on m.id = d.pid"); + commonHql.append(" where m.isDeleted=:isDeleted and m.isValid = :isValid and m.organizeCode = :organizeCode "); + commonHql.append(" and d.isDeleted=:isDeleted and d.isValid = :isValid and d.organizeCode = :organizeCode "); + commonHql.append(" and d.status = :status "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getShippingCode())) + commonHql.append(" and m.shippingCode like '%").append(mesShippingOrderManagementDetailModel.getShippingCode()).append("%' "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getBarcode())) + commonHql.append(" and d.barcode like '%").append(mesShippingOrderManagementDetailModel.getBarcode()).append("%' "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getPartNo())) + commonHql.append(" and d.partNo like '%").append(mesShippingOrderManagementDetailModel.getPartNo()).append("%' "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getCustPartNo())) + commonHql.append(" and d.custPartNo like '%").append(mesShippingOrderManagementDetailModel.getCustPartNo()).append("%' "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getShippingType())) + commonHql.append(" and m.shippingType = :shippingType "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getCustCode())) + commonHql.append(" and m.custCode like '%").append(mesShippingOrderManagementDetailModel.getCustCode()).append("%' "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getStartScanTimeStart())) + commonHql.append(" and m.startScanTime >= :startScanTimeStart "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getStartScanTimeEnd())) + commonHql.append(" and m.startScanTime <= :startScanTimeEnd "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getEndScanTimeStart())) + commonHql.append(" and m.endScanTime >= :endScanTimeStart "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getEndScanTimeEnd())) + commonHql.append(" and m.endScanTime <= :endScanTimeEnd "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getPublishTimeStart())) + commonHql.append(" and m.publishTime >= :publishTimeStart "); + if (!StringUtils.isEmpty(mesShippingOrderManagementDetailModel.getPublishTimeEnd())) + commonHql.append(" and m.publishTime <= :publishTimeEnd "); + return commonHql.toString(); + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProduceSnServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProduceSnServiceImpl.java index 5d09ee9..d474b1a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProduceSnServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProduceSnServiceImpl.java @@ -2,6 +2,8 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesProduceSnService; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.ext.mes.pojo.util.OverwriteStringJoin; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; @@ -11,6 +13,7 @@ import org.springframework.util.CollectionUtils; import java.util.Comparator; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -34,4 +37,15 @@ public class MesProduceSnServiceImpl extends BaseMesService implem } return produceSnList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList()); } + + @Override + public List findMesProduceSnList(String organizeCode, List snList) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(snList, "productSn", packBean); + List produceSnList = baseRDao.findByHqlWhere(packBean); + if (CollectionUtils.isEmpty(produceSnList)) { + MesException.throwMesBusiException("条码【%s】信息不存在", OverwriteStringJoin.join(MesExtConstWords.COMMA, snList)); + } + return produceSnList.stream().filter(Objects::nonNull).sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList()); + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordServiceImpl.java index f2f73f6..8014fe6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordServiceImpl.java @@ -1,9 +1,12 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; +import cn.estsh.i3plus.ext.mes.api.base.IMesProdRuleNosortCfgService; import cn.estsh.i3plus.ext.mes.api.base.IMesProductionRecordService; +import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesProdRuleNosortCfgDao; import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanUtil; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.util.OverwriteStringJoin; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -11,10 +14,16 @@ import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesPart; +import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleNosortCfg; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; +import cn.estsh.i3plus.pojo.mes.repository.MesProdRuleNoSortCfgRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; import org.hibernate.SQLQuery; import org.hibernate.transform.Transformers; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -38,6 +47,9 @@ public class MesProductionRecordServiceImpl extends BaseMesService findMesProductionRecord(String organizeCode, String sn) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); @@ -56,6 +68,29 @@ public class MesProductionRecordServiceImpl extends BaseMesService queryMesProductionOffLine(MesProductionRecordModel mesProductionRecordModel, Pager pager) { + List mesProdRuleNosortCfgs = mesProdRuleNosortCfgDao.findMesProdRuleNosortCfgByWorkCellCode(mesProductionRecordModel.getOnLineWorkCellCode(), mesProductionRecordModel.getPartNo(), mesProductionRecordModel.getOrganizeCode()); + if(CollectionUtils.isEmpty(mesProdRuleNosortCfgs) || StringUtil.isEmpty(mesProdRuleNosortCfgs.iterator().next().getOutPartNo())) return new ListPager<>(new ArrayList<>(),pager); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesProductionRecordModel.getOrganizeCode()); + DdlPreparedPack.getInPackArray(new Object[]{mesProdRuleNosortCfgs.iterator().next().getOutPartNo(),mesProductionRecordModel.getPartNo()},"partNo",packBean); + DdlPreparedPack.getInPackArray(new Object[]{mesProductionRecordModel.getOffLineWorkCellCode(),mesProductionRecordModel.getOnLineWorkCellCode()},"workCellCode",packBean); + DdlPreparedPack.getStringBiggerPack(mesProductionRecordModel.getCreateDateTimeStart(),"createDatetime",packBean); + DdlPreparedPack.getStringSmallerPack(mesProductionRecordModel.getCreateDateTimeEnd(),"createDatetime",packBean); + DdlPreparedPack.getNumEqualPack( MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(),"reportStatus",packBean); + pager = PagerHelper.getPager(pager, baseRDao.findByHqlWhereCount(packBean)); + List productionRecordList = baseRDao.findByHqlWherePage(packBean,pager); + if(CollectionUtils.isEmpty(productionRecordList)) return new ListPager<>(new ArrayList<>(),pager); + List mesProductionRecordModelList = new ArrayList<>(); + MesProductionRecordModel model; + for (MesProductionRecord mesProductionRecord : productionRecordList) { + model = new MesProductionRecordModel(); + BeanUtils.copyProperties(mesProductionRecord,model); + model.setOffLineWorkCellCode(mesProductionRecord.getWorkCellCode()); + } + return new ListPager<>(mesProductionRecordModelList, pager); + } + private ListPager queryERPMaterialStockHqlPager(MesProductionRecord mesProductionRecord, Pager pager) { String org = mesProductionRecord.getOrganizeCode(); String startTime = mesProductionRecord.getCompleteDateTimeStart(); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java index b0f5bd9..6358836 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementDetailService.java @@ -1,20 +1,32 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; +import cn.estsh.i3plus.ext.mes.api.base.IMesProduceSnService; import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementDetailService; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesShippingOrderManagementDetailDao; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.model.MesShippingOrderManagementDetailModel; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; +import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; @Service @Slf4j @@ -23,6 +35,12 @@ public class MesShippingOrderManagementDetailService extends BaseMesService(modelList, pager); } + @Override + public ListPager queryMesShippingDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager) { + return shippingOrderManagementDetailDao.queryMesShippingDetailsByPager(mesShippingOrderManagementDetailModel, pager); + } + + @Override + public void doShippingBack(Long[] idList, String organizeCode, String userName) { + List detailList = getManagementDetails(idList, organizeCode, userName); + if (CollectionUtils.isEmpty(detailList)) return; + Map> mesProduceSnMap = getMesProduceSnMap(organizeCode, detailList); + List updateMesProduceSn = new ArrayList<>(); + for (MesShippingOrderManagementDetail detail : detailList) { + if (!mesProduceSnMap.containsKey(detail.getBarcode())) + MesException.throwMesBusiException("发运单条码[%s]信息不存在", detail.getBarcode()); + //更新条码状态为完成 + MesProduceSn mesProduceSn = mesProduceSnMap.get(detail.getBarcode()).iterator().next(); + mesProduceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()); + mesProduceSn.setSystemSyncStatus(CommonEnumUtil.FALSE); + ConvertBean.serviceModelUpdate(mesProduceSn, userName); + updateMesProduceSn.add(mesProduceSn); + //软删明细 + detail.setIsDeleted(CommonEnumUtil.VALID); + detail.setSystemSyncStatus(CommonEnumUtil.FALSE); + ConvertBean.serviceModelUpdate(detail, userName); + } + baseRDao.saveAll(detailList); + if (!updateMesProduceSn.isEmpty()) { + mesProduceSnRepository.saveAll(updateMesProduceSn); + } + } + + private Map> getMesProduceSnMap(String organizeCode, List detailList) { + List snList = detailList.stream().map(MesShippingOrderManagementDetail::getBarcode).filter(StringUtils::isEmpty).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(snList)) MesException.throwMesBusiException("发运单条码信息不存在"); + List mesProduceSnList = mesProduceSnService.findMesProduceSnList(organizeCode, snList); + return mesProduceSnList.stream().collect(Collectors.groupingBy(MesProduceSn::getProductSn)); + } + + private List getManagementDetails(Long[] idList, String organizeCode, String userName) { + if (Objects.isNull(idList) || StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(userName)) return null; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackArray(idList, "id", packBean); + List detailList = baseRDao.findByHqlWhere(packBean); + if (CollectionUtils.isEmpty(detailList) || detailList.size() <= 0) + MesException.throwMesBusiException("选择数据不存在,请检查数据"); + return detailList; + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 4702273..7c951c6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -898,8 +898,9 @@ public class MesWorkOrderService extends BaseMesService implements String sn = getStringList(mesWorkOrder); //保存数据 List mesProductOffLineList = new ArrayList<>(); + String nowTime = TimeTool.getNowTime(true); for (MesBom mesBom : mesBoms) { - mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, false)); + mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, false,nowTime)); } mesProductOffLineService.insertBatch(mesProductOffLineList); } @@ -992,8 +993,9 @@ public class MesWorkOrderService extends BaseMesService implements MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(mesWorkOrder.getPartNo(), mesWorkOrder.getOrganizeCode()); //成品汇报 if (isReport) { + String nowTime = TimeTool.getNowTime(true); for (MesBom mesBom : mesBoms) { - mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrderNew, mesProductVersion, sn, mesBom, false)); + mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrderNew, mesProductVersion, sn, mesBom, false,nowTime)); } } //成品移库 @@ -1006,8 +1008,9 @@ public class MesWorkOrderService extends BaseMesService implements } else if (MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue() == mesWorkOrder.getWorkOrderType()) { MesProdRuleNosortCfg mesProdRuleNoSortCfg = mesProdRuleNosortCfgService.findMesProdRuleNosortCfgByWorkCenterCode(mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getPartNo(), mesWorkOrder.getOrganizeCode()); if (MesExtEnumUtil.NOSORT_REPORT_TYPE.REPORT.getValue() == mesProdRuleNoSortCfg.getReportType()) { + String nowTime = TimeTool.getNowTime(true); for (MesBom mesBom : mesBoms) { - mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrderNew, mesProductVersion, sn, mesBom, false)); + mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrderNew, mesProductVersion, sn, mesBom, false,nowTime)); } } @@ -1051,8 +1054,9 @@ public class MesWorkOrderService extends BaseMesService implements List mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); //保存数据 List mesProductOffLineList = new ArrayList<>(); + String nowTime = TimeTool.getNowTime(true); for (MesBom mesBom : mesBoms) { - mesProductOffLineList.add(getMesProductOffLine(model, mesPart, mesProductVersion, mesBom)); + mesProductOffLineList.add(getMesProductOffLine(model, mesPart, mesProductVersion, mesBom,nowTime)); } mesProductOffLineService.insertBatch(mesProductOffLineList); } @@ -1100,7 +1104,7 @@ public class MesWorkOrderService extends BaseMesService implements workOrderLogService.saveMesWorkOrderLog(mesWorkOrder,type,qty); } - private MesProductOffLine getMesProductOffLine(WmsProductModel model, MesPart mesPart, MesProductVersion mesProductVersion, MesBom mesBom) { + private MesProductOffLine getMesProductOffLine(WmsProductModel model, MesPart mesPart, MesProductVersion mesProductVersion, MesBom mesBom,String nowTime) { MesProductOffLine newMesProductOffLine = new MesProductOffLine(); newMesProductOffLine.setReportPartNo(mesPart.getPartNo()); newMesProductOffLine.setReportPartNameRdd(mesPart.getPartName()); @@ -1122,6 +1126,7 @@ public class MesWorkOrderService extends BaseMesService implements newMesProductOffLine.setOrderNo(model.getShipOrderNo()); newMesProductOffLine.setCustNo(model.getCustNo()); newMesProductOffLine.setCustOrder(model.getCustOrderNo()); + newMesProductOffLine.setDescription(nowTime); ConvertBean.serviceModelInitialize(newMesProductOffLine, model.getUserName()); return newMesProductOffLine; @@ -1170,7 +1175,8 @@ public class MesWorkOrderService extends BaseMesService implements } //汇报 if (isItemReport) { - mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, true)); + String nowTime = TimeTool.getNowTime(true); + mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, true,nowTime)); } //移库 if (isItemMove) { @@ -1229,7 +1235,7 @@ public class MesWorkOrderService extends BaseMesService implements private MesProductOffLine creatMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion, - String sn, MesBom mesBom, boolean isItemReport) { + String sn, MesBom mesBom, boolean isItemReport,String nowTime) { MesProductOffLine newMesProductOffLine; newMesProductOffLine = new MesProductOffLine(); if (!isItemReport) { @@ -1254,6 +1260,7 @@ public class MesWorkOrderService extends BaseMesService implements newMesProductOffLine.setReportType(mesWorkOrder.getReportType()); newMesProductOffLine.setSapWorkCenter(mesWorkOrder.getErpWorkCenter()); newMesProductOffLine.setOrganizeCode(mesWorkOrder.getOrganizeCode()); + newMesProductOffLine.setDescription(nowTime); ConvertBean.serviceModelInitialize(newMesProductOffLine, mesWorkOrder.getCreateUser()); return newMesProductOffLine; diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesShippingOrderManagementDetailModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesShippingOrderManagementDetailModel.java index f135343..1da5af2 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesShippingOrderManagementDetailModel.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesShippingOrderManagementDetailModel.java @@ -1,6 +1,10 @@ package cn.estsh.i3plus.ext.mes.pojo.model; +import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import io.swagger.annotations.ApiParam; import lombok.Data; @@ -25,4 +29,146 @@ public class MesShippingOrderManagementDetailModel { @ApiParam("计量单位") private String unit; + @ApiParam("工厂代码") + private String organizeCode; + + @ApiParam("发运单") + private String shippingCode; + + @ApiParam("状态") + @AnnoOutputColumn(refClass = MesExtEnumUtil.SHIPPING_ORDER_STATUS.class, refForeignKey = "value", value = "description") + private Integer status; + + @ApiParam("客户排序信息序号") + private Long custInfoSeq; + + @ApiParam("条码") + private String barcode; + + @ApiParam("客户订单号") + private String custOrderNo; + + @ApiParam("创建时间") + private String createDatetime; + + @ApiParam("创建人") + private String createUser; + + @ApiParam(value = "更新时间") + private String modifyDatetime; + + @ApiParam(value = "更新人") + private String modifyUser; + + @ApiParam("发运单类型") + @AnnoOutputColumn(refClass = MesExtEnumUtil.SHIPPING_ORDER_TYPE.class, refForeignKey = "value", value = "description") + private Integer shippingType; + + @ApiParam("客户代码") + private String custCode; + + @ApiParam("客户名称") + private String custName; + + @ApiParam("客户工厂代码") + private String custOrganizeCode; + + @ApiParam("客户工厂名称") + private String custOrganizeName; + + @ApiParam("开始扫描时间") + private String startScanTime; + + @ApiParam("开始扫描时间(开始)") + private String startScanTimeStart; + + @ApiParam("开始扫描时间(结束)") + private String startScanTimeEnd; + + @ApiParam("结束扫描时间") + private String endScanTime; + + @ApiParam("结束扫描时间(开始)") + private String endScanTimeStart; + + @ApiParam("结束扫描时间(结束)") + private String endScanTimeEnd; + + @ApiParam("发布时间") + private String publishTime; + + @ApiParam("发布时间(开始)") + private String publishTimeStart; + + @ApiParam("发布时间(结束)") + private String publishTimeEnd; + + @ApiParam("累计打印次数") + private Integer printCount; + + @ApiParam("最后打印用户") + private String lastPrintUser; + + @ApiParam("最后打印时间") + private String lastPrintTime; + + @ApiParam("发运组代码") + private String shippingGroupCode; + + @ApiParam("发运组名称") + private String shippingGroupName; + + @ApiParam("车系代码") + private String carSerialCode; + + @ApiParam(value = "排序属性") + public String orderByParam = ""; + + @ApiParam(value = "排序类型,1 正序,2 倒序",example = "1") + public Integer ascOrDesc; + + @ApiParam("明细id") + private Long id; + + @ApiParam("明细状态") + @AnnoOutputColumn(refClass = MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.class, refForeignKey = "value", value = "description") + private Integer detailsStatus; + + public MesShippingOrderManagementDetailModel(){ + } + + public MesShippingOrderManagementDetailModel(MesShippingOrderManagement m, MesShippingOrderManagementDetail d){ + this.shippingCode = m.getShippingCode(); + this.status = m.getStatus(); + this.detailsStatus = d.getStatus(); + this.custInfoSeq = d.getCustInfoSeq(); + this.partName = d.getPartName(); + this.partNo = d.getPartNo(); + this.barcode = d.getBarcode(); + this.custPartNo = d.getCustPartNo(); + this.planQty = d.getPlanQty(); + this.actualQty = d.getActualQty(); + this.unit = d.getUnit(); + this.custOrderNo = m.getOrderCode(); + this.createDatetime = d.getCreateDatetime(); + this.createUser = d.getCreateUser(); + this.modifyDatetime = d.getModifyDatetime(); + this.modifyUser = d.getModifyUser(); + this.shippingType = m.getShippingType(); + this.custCode = m.getCustCode(); + this.custName = m.getCustName(); + this.custOrganizeCode = m.getCustOrganizeCode(); + this.custOrganizeName = m.getCustOrganizeName(); + this.startScanTime = m.getStartScanTime(); + this.endScanTime = m.getEndScanTime(); + this.publishTime = m.getPublishTime(); + this.printCount = m.getPrintCount(); + this.lastPrintTime = m.getLastPrintTime(); + this.lastPrintUser = m.getLastPrintUser(); + this.shippingGroupCode = m.getShippingGroupCode(); + this.shippingGroupName = m.getShippingGroupName(); + this.carSerialCode = d.getCarSerialCode(); + this.id = d.getId(); + } + } diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardResultModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardResultModel.java index 55c2d7b..552d4ee 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardResultModel.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/board/MesWorkCenterBoardResultModel.java @@ -117,4 +117,9 @@ public class MesWorkCenterBoardResultModel { this.partNo = partNo; } + public MesWorkCenterBoardResultModel(String serialNumber, String createDateTime) { + this.serialNumber = serialNumber; + this.createDateTime = createDateTime; + } + }