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 333ceb9..61137fd 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 @@ -35,7 +35,7 @@ public interface IMesShippingOrderManagementDetailService extends IBaseMesServic public ResultBean supplyByCBR(Long[] ids); @ApiOperation("手动发运改数量") - public ResultBean updateQty(Long[] ids, double qty); + public ResultBean updateQty(Long[] ids); @ApiOperation("发运退回") void doShippingBack(Long[] idList,String organizeCode,String userName); 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 62db6ab..c3b3bcd 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 @@ -91,11 +91,11 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle } } - @ApiOperation(value = "根据CBR匹配零件号", notes = "根据CBR匹配零件号") + @ApiOperation(value = "手工发运", notes = "手工发运") @GetMapping("/master/part/updateQty") - public ResultBean supplyByCBR(Long[] ids, double qty) { + public ResultBean updateQty(Long[] ids) { try { - return shippingOrderManagementDetailService.updateQty(ids, qty); + return shippingOrderManagementDetailService.updateQty(ids); } catch (ImppBusiException e) { return ResultBean.fail(e); } catch (Exception e) { @@ -103,7 +103,6 @@ public class MesShippingOrderManagementDetailController extends BaseMesControlle } } - @ApiOperation(value = "发运退回", notes = "发运退回") @PutMapping("/doShippingBack") public ResultBean doShippingBack(@RequestBody Long[] idList) { 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 65f21b0..f3335a3 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 @@ -6,6 +6,7 @@ import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesShippingOrderManagementDetailD 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.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -13,24 +14,21 @@ 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.*; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; -import cn.estsh.i3plus.pojo.mes.repository.MesCimGmCbrRuleRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementDetailRepository; +import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.util.ResultBean; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; 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.*; +import java.util.function.Function; import java.util.stream.Collectors; @Service @@ -44,6 +42,9 @@ public class MesShippingOrderManagementDetailService extends BaseMesService queryMesShippingErrorDetailsByPager(MesShippingOrderManagementDetailModel mesShippingOrderManagementDetailModel, Pager pager) { + mesShippingOrderManagementDetailModel.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue()); return shippingOrderManagementDetailDao.queryMesShippingDetailsByPager(mesShippingOrderManagementDetailModel, pager); } @@ -127,8 +138,80 @@ public class MesShippingOrderManagementDetailService extends BaseMesService detailList = getManagementDetails(ids, organizeCode, userName); + List orderNoList = detailList.stream().map(MesShippingOrderManagementDetail::getShippingCode).distinct().collect(Collectors.toList()); + + DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(orderNoList, "shippingCode", orderPackBean); + List shippingOrderManagements = shippingOrderRepository.findByHqlWhere(orderPackBean); + + Map orderMap = shippingOrderManagements.stream().collect(Collectors.toMap(MesShippingOrderManagement::getShippingCode, Function.identity())); + + List mesJisShippings = new ArrayList<>(); + + + + for (MesShippingOrderManagementDetail mesShippingOrderManagementDetail : detailList) { + MesShippingOrderManagement mesShippingOrderManagement = orderMap.get(mesShippingOrderManagementDetail.getShippingCode()); + if (StringUtils.isEmpty(mesShippingOrderManagementDetail.getPartNo())) { + log.info("客户零件号对应的零件号为空:{}", mesShippingOrderManagementDetail.getCustPartNo()); + return ResultBean.fail(String.format("客户零件号对应的零件号为空:%s", mesShippingOrderManagementDetail.getCustPartNo())); + } + mesShippingOrderManagementDetail.setActualQty((int)mesShippingOrderManagementDetail.getPlanQty()); + mesShippingOrderManagementDetail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); + 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); + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(mesShippingOrderManagementDetail.getVisualOrderNo(), "workOrderNo", packBean); + + MesWorkOrderPart workOrderPart = mesWorkOrderPartRepository.getByProperty(packBean); + + mesJisShippings.add(getMesJisShipping(mesShippingOrderManagement, mesShippingOrderManagementDetail,moveRule.getErpSrcLocateNo(), workOrderPart,userName)); + } + if (!CollectionUtils.isEmpty(detailList)) { + shippingOrderDetailRepository.saveAll(detailList); + } + // jis同步 + if(!CollectionUtils.isEmpty(mesJisShippings)){ + jisShippingRepository.saveAll(mesJisShippings); + } + return ResultBean.success("操作成功"); + } + + + public MesJisShipping getMesJisShipping(MesShippingOrderManagement orderManagement,MesShippingOrderManagementDetail detail, String srcLocateNo, MesWorkOrderPart orderPart, String userName) { + MesJisShipping jisShipping = new MesJisShipping(); + BeanUtils.copyProperties(orderManagement, jisShipping); + BeanUtils.copyProperties(detail, jisShipping); + jisShipping.setFactoryCode(orderManagement.getCustOrganizeCode()); + jisShipping.setShippingTime(TimeTool.getNowTime(true)); + jisShipping.setErpWarerhouse(srcLocateNo); + jisShipping.setErpWarehous(srcLocateNo); + jisShipping.setDock(orderManagement.getSendDockCode()); + jisShipping.setCusCode(orderManagement.getCustCode()); + jisShipping.setCusDock(orderManagement.getCustDockCode()); + jisShipping.setCustOrderNo(detail.getCustOrderNo()); + // 子零件信息赋值 + jisShipping.setPartNo(orderPart.getPartNo()); + jisShipping.setUnit(orderPart.getItemUnit()); + // 20241115 没有给carNo赋值 + jisShipping.setCarNo(detail.getVin()); + jisShipping.setSerialNumber(orderPart.getWorkOrderNo()); + jisShipping.setQuantityPerCar(orderPart.getItemQty()); + jisShipping.setOffTime(TimeTool.getNowTime(true)); + jisShipping.setShippingOrderCode(orderManagement.getShippingCode()); + jisShipping.setFid(UUID.randomUUID().toString()); + jisShipping.setSystemSyncStatus(CommonEnumUtil.FALSE); + ConvertBean.serviceModelInitialize(jisShipping, userName); + return jisShipping; } @Override