|  |  |  | @ -1,5 +1,7 @@ | 
		
	
		
			
				|  |  |  |  | package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; | 
		
	
		
			
				|  |  |  |  | import cn.estsh.i3plus.ext.mes.api.base.IMesPartShippingGroupService; | 
		
	
		
			
				|  |  |  |  | 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; | 
		
	
	
		
			
				
					|  |  |  | @ -73,6 +75,12 @@ public class MesShippingOrderManagementDetailService extends BaseMesService<MesS | 
		
	
		
			
				|  |  |  |  |     private MesJisShippingRepository jisShippingRepository; | 
		
	
		
			
				|  |  |  |  |     @Autowired | 
		
	
		
			
				|  |  |  |  |     private MesPartService mesPartService; | 
		
	
		
			
				|  |  |  |  |     @Autowired | 
		
	
		
			
				|  |  |  |  |     private IMesPartShippingGroupService mesPartShippingGroupService; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     @Autowired | 
		
	
		
			
				|  |  |  |  |     private IMesConfigService configService; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     protected void setPackQueryBean(MesShippingOrderManagementDetail bean, DdlPackBean packBean) { | 
		
	
		
			
				|  |  |  |  |         DdlPreparedPack.getNumEqualPack(bean.getPid(), "pid", packBean); | 
		
	
	
		
			
				
					|  |  |  | @ -132,10 +140,10 @@ public class MesShippingOrderManagementDetailService extends BaseMesService<MesS | 
		
	
		
			
				|  |  |  |  |     public ResultBean supplyByCBR(Long[] ids) { | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         /*String organizeCode = AuthUtil.getOrganizeCode(); | 
		
	
		
			
				|  |  |  |  |         String userName = AuthUtil.getSessionUser().getUserName();*/ | 
		
	
		
			
				|  |  |  |  |         String organizeCode = "CR01"; | 
		
	
		
			
				|  |  |  |  |         String userName ="zxw"; | 
		
	
		
			
				|  |  |  |  |         String organizeCode = AuthUtil.getOrganizeCode(); | 
		
	
		
			
				|  |  |  |  |         String userName = AuthUtil.getSessionUser().getUserName(); | 
		
	
		
			
				|  |  |  |  |         /*String organizeCode = "CR01"; | 
		
	
		
			
				|  |  |  |  |         String userName ="zxw";*/ | 
		
	
		
			
				|  |  |  |  |         List<MesShippingOrderManagementDetail> detailList = getManagementDetails(ids, organizeCode, userName); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { | 
		
	
	
		
			
				
					|  |  |  | @ -203,30 +211,15 @@ public class MesShippingOrderManagementDetailService extends BaseMesService<MesS | 
		
	
		
			
				|  |  |  |  |                 log.info("计划数量和实际数量不相等"); | 
		
	
		
			
				|  |  |  |  |                 return ResultBean.fail(String.format("计划数量和实际数量不相等")); | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |             MesPartShippingGroup mesPartShippingGroup = mesPartShippingGroupService.getMesPartShippingGroup(organizeCode, mesShippingOrderManagement.getShippingGroupCode()); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |             mesShippingOrderManagementDetail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); | 
		
	
		
			
				|  |  |  |  |             mesShippingOrderManagementDetail.setRemark("手工发运"); | 
		
	
		
			
				|  |  |  |  |             ConvertBean.serviceModelUpdate(mesShippingOrderManagementDetail, userName); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |             DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); | 
		
	
		
			
				|  |  |  |  |             DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.MOVE_RULE_GROUP_TYPE.MOVE_RULE_GROUP_TYPE_10.getValue(), "groupType", ddlPackBean); | 
		
	
		
			
				|  |  |  |  |             DdlPreparedPack.getStringEqualPack(mesShippingOrderManagement.getShippingGroupCode(), "code", ddlPackBean); | 
		
	
		
			
				|  |  |  |  |             MesMoveRule moveRule = mesMoveRuleRepository.getByProperty(ddlPackBean); | 
		
	
		
			
				|  |  |  |  |             if (moveRule == null) { | 
		
	
		
			
				|  |  |  |  |                 log.info("移库规则不存在:发运组代码:{}", mesShippingOrderManagement.getShippingGroupCode()); | 
		
	
		
			
				|  |  |  |  |                 return ResultBean.fail(String.format("移库规则不存在:发运单编号:%s,发运组代码:%s,", mesShippingOrderManagement.getShippingCode(),mesShippingOrderManagement.getShippingGroupCode())); | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |             DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); | 
		
	
		
			
				|  |  |  |  |             DdlPreparedPack.getStringEqualPack(mesShippingOrderManagementDetail.getVisualOrderNo(), "workOrderNo", packBean); | 
		
	
		
			
				|  |  |  |  |             MesWorkOrderPart workOrderPart = mesWorkOrderPartRepository.getByProperty(packBean); | 
		
	
		
			
				|  |  |  |  |             if (workOrderPart == null) { | 
		
	
		
			
				|  |  |  |  |                 log.info("工单零件信息不存在:工单号:{}", mesShippingOrderManagementDetail.getVisualOrderNo()); | 
		
	
		
			
				|  |  |  |  |                 return ResultBean.fail(String.format("工单零件信息不存在:工单号:%s", mesShippingOrderManagementDetail.getVisualOrderNo())); | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |             mesJisShippings.add(getMesJisShipping(mesShippingOrderManagement, mesShippingOrderManagementDetail,moveRule.getErpSrcLocateNo(), workOrderPart,userName)); | 
		
	
		
			
				|  |  |  |  |             mesJisShippings.add(getMesJisShippings(mesShippingOrderManagement, null, userName, mesPartShippingGroup)); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         if (!CollectionUtils.isEmpty(detailList)) { | 
		
	
		
			
				|  |  |  |  |             shippingOrderDetailRepository.saveAll(detailList); | 
		
	
	
		
			
				
					|  |  |  | @ -238,6 +231,36 @@ public class MesShippingOrderManagementDetailService extends BaseMesService<MesS | 
		
	
		
			
				|  |  |  |  |         return ResultBean.success("操作成功"); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     public MesJisShipping getMesJisShippings(MesShippingOrderManagement orderManagement, MesShippingOrderManagementDetail orderManagementDetail,String userName,MesPartShippingGroup mesPartShippingGroup) { | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         String warerhouse = mesPartShippingGroup == null || StringUtils.isEmpty(mesPartShippingGroup.getSrcWarerhouse()) ? configService.getCfgValue(orderManagement.getOrganizeCode(), "ERP_WAREHOUS") : mesPartShippingGroup.getSrcWarerhouse(); | 
		
	
		
			
				|  |  |  |  |         String erpWarehous = configService.getCfgValue(orderManagement.getOrganizeCode(), "ERP_WAREHOUS"); | 
		
	
		
			
				|  |  |  |  |         String useCustOrderNo = configService.getCfgValue(orderManagement.getOrganizeCode(), "USE_CUST_ORDER_NO"); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         MesJisShipping jisShipping = new MesJisShipping(); | 
		
	
		
			
				|  |  |  |  |         BeanUtils.copyProperties(orderManagement, jisShipping); | 
		
	
		
			
				|  |  |  |  |         BeanUtils.copyProperties(orderManagementDetail, jisShipping); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setFactoryCode(orderManagement.getCustOrganizeCode()); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setShippingTime(TimeTool.getNowTime(true)); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setErpWarerhouse(warerhouse); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setErpWarehous(erpWarehous); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setDock(orderManagement.getSendDockCode()); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setCusCode(orderManagement.getCustCode()); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setCusDock(orderManagement.getCustDockCode()); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setCustOrderNo(useCustOrderNo); | 
		
	
		
			
				|  |  |  |  |         // 20241115 没有给carNo赋值
 | 
		
	
		
			
				|  |  |  |  |         jisShipping.setCarNo(orderManagementDetail.getVin()); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setSerialNumber(orderManagementDetail.getBarcode()); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setQuantityPerCar(1d); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setOffTime(TimeTool.getNowTime(true)); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setShippingOrderCode(orderManagement.getShippingCode()); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setFid(UUID.randomUUID().toString()); | 
		
	
		
			
				|  |  |  |  |         jisShipping.setSystemSyncStatus(CommonEnumUtil.FALSE); | 
		
	
		
			
				|  |  |  |  |         ConvertBean.serviceModelInitialize(jisShipping, userName); | 
		
	
		
			
				|  |  |  |  |         return jisShipping; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     public MesJisShipping getMesJisShipping(MesShippingOrderManagement orderManagement,MesShippingOrderManagementDetail detail, String srcLocateNo, MesWorkOrderPart orderPart, String userName) { | 
		
	
		
			
				|  |  |  |  |         MesJisShipping jisShipping = new MesJisShipping(); | 
		
	
		
			
				|  |  |  |  |         BeanUtils.copyProperties(orderManagement, jisShipping, MesExtConstWords.ID); | 
		
	
	
		
			
				
					|  |  |  | 
 |