Merge branch 'uat-temp-castle-2412301037-44520&44635' into test

tags/yfai-pcn-ext-v2.75
王杰 4 months ago
commit 8501f466ea

@ -4,6 +4,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementModel;
import io.swagger.annotations.ApiOperation;
import java.util.List;
@ -23,7 +24,7 @@ public interface IMesPartShippingGroupService {
MesPartShippingGroup getMesPartShippingGroup(String organizeCode,String shippingGroupCode);
@ApiOperation(value = "打印发运单数据")
List<MesShippingOrderManagement> doMesMesShippingOrderManagementPrint(MesShippingOrderManagement model, String userName);
List<MesShippingOrderManagementModel> doMesMesShippingOrderManagementPrint(MesShippingOrderManagement model);
@ApiOperation(value = "发运组明细")
MesPartShippingGroupDetail getMesPartShippingGroupDetail(String organizeCode, String shippingGroupCode, String partNo, String custPartNo);

@ -27,6 +27,8 @@ import java.util.List;
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesEnumDetail")
public class MesEnumDetailController {
// @Autowired
// private IMesEnumExtService enumService;
@Autowired
private IMesEnumDetailService mesEnumDetailService;
@ -45,4 +47,20 @@ public class MesEnumDetailController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
// @GetMapping(value = "/enumlist")
// @ApiOperation(value = "获取MES系统枚举")
// public ResultBean enumlistByOrg(@RequestParam(name = "enumName") String enumName, @RequestParam(name = "organizeCode", required = false) String organizeCode) {
// try {
// organizeCode = org.springframework.util.StringUtils.isEmpty(organizeCode) ? AuthUtil.getOrganize().getOrganizeCode() : organizeCode;
// Map<String, Object> map = enumService.doGetMesEnumByEnumName(organizeCode, enumName);
// return ResultBean.success("查询成功")
// .setResultObject(map)
// .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } catch (ImppBusiException busExcep) {
// return ResultBean.fail(busExcep);
// } catch (Exception e) {
// return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
// }
// }
}

@ -6,6 +6,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementModel;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -54,13 +55,13 @@ public class MesPartShippingGroupController {
}
}
@PostMapping(value = "/doPrint")
@ApiOperation(value = "打印未打印拉动单后修改状态")
@ApiOperation(value = "打印未打印发运单后修改状态")
public ResultBean doMesMesShippingOrderManagementPrint(@RequestBody MesShippingOrderManagement model) {
try {
// 数据校验
ValidatorBean.checkNotNull(model.getShippingGroupCode(), "发运组代码不能为空");
List<MesShippingOrderManagement> shippingOrderManagementList = shippingGroupService.doMesMesShippingOrderManagementPrint(model, AuthUtil.getSessionUser().getUserName());
return ResultBean.success("拉动单打印成功")
List<MesShippingOrderManagementModel> shippingOrderManagementList = shippingGroupService.doMesMesShippingOrderManagementPrint(model);
return ResultBean.success("发运单打印成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(shippingOrderManagementList);
} catch (ImppBusiException e) {

@ -7,21 +7,24 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
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.MesConfig;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail;
import cn.estsh.i3plus.pojo.mes.bean.edi.wuhu.MesCimCheryOrder;
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.MesPartShippingGroupDetailRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementDetailRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository;
import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementDetailModel;
import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementModel;
import cn.estsh.i3plus.pojo.mes.repository.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
import java.util.*;
import java.util.function.Function;
import java.util.logging.Handler;
import java.util.stream.Collectors;
@Service
@Slf4j
@ -40,6 +43,12 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService
@Autowired
private MesPartShippingGroupDetailRepository mesPartShippingGroupDetailRepository;
@Autowired
private MesCimCheryOrderRepository cheryOrderRao;
@Autowired
private MesConfigRepository mesConfigRao;
public List<MesPartShippingGroup> findAll(DdlPackBean packBean) {
return shippingGroupRepository.findByHqlWhere(packBean);
}
@ -53,7 +62,16 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService
}
@Override
public List<MesShippingOrderManagement> doMesMesShippingOrderManagementPrint(MesShippingOrderManagement bean, String userName) {
public List<MesShippingOrderManagementModel> doMesMesShippingOrderManagementPrint(MesShippingOrderManagement bean) {
DdlPackBean configPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack("WU_HU_SUPPLIER","cfgKey", configPackBean);
List<MesConfig> configList = mesConfigRao.findByHqlWhere(configPackBean);
String supplierNo = "";
if (configList != null && !configList.isEmpty()) {
supplierNo = configList.get(0).getCfgValue();
}
List<MesShippingOrderManagementModel> modelList = new ArrayList<>();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
//多选
if (!StringUtil.isEmpty(bean.getShippingGroupCode())) {
@ -62,29 +80,87 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService
DdlPreparedPack.getStringEqualPack(bean.getShippingCode(), "shippingCode", packBean);
DdlPreparedPack.getIsNull("lastPrintTime", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
List<MesShippingOrderManagement> pullingOrderInfos = shippingOrderManagementRepository.findByHqlWhere(packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, packBean);
List<MesShippingOrderManagement> pullingOrderInfos = shippingOrderManagementRepository.findByHqlTopWhere(packBean,10);
if (!CollectionUtils.isEmpty(pullingOrderInfos)) {
//把查出来的拉动单打印并修改打印状态为已打印
for (MesShippingOrderManagement pullingOrderInfo : pullingOrderInfos) {
//查询拉动组明细
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(pullingOrderInfo.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(pullingOrderInfo.getId(), "pid", partPackBean);
//把查出来的发运单打印并修改打印状态为已打印
for (MesShippingOrderManagement shippingOrder : pullingOrderInfos) {
MesShippingOrderManagementModel model = new MesShippingOrderManagementModel();
String shippingCodePrefix = shippingOrder.getShippingCode().substring(0, shippingOrder.getShippingCode().length() - 3);
String shippingCodeSuffix = shippingOrder.getShippingCode().substring(shippingOrder.getShippingCode().length() - 3);
model.setShippingCode(shippingCodePrefix);
model.setShippingCodeAfter3(shippingCodeSuffix);
model.setShippingCodeWhole(shippingOrder.getShippingCode());
//查询原始报文
List<MesCimCheryOrder> cheryOrderList = getCheryOrder(shippingOrder.getOrganizeCode(), shippingOrder.getShippingCode());
Map<String, List<MesCimCheryOrder>> cheryOrderMap = new HashMap<>();
if (cheryOrderList != null && !cheryOrderList.isEmpty()) {
MesCimCheryOrder cheryOrder = cheryOrderList.get(0);
model.setPlantName(cheryOrder.getPlantName());
model.setPartkitName(cheryOrder.getPartkitName());
model.setDeliverySendSequence(cheryOrder.getDeliverySendSequence());
model.setReceiveDockName(cheryOrder.getReceiveDockNo()+"--"+cheryOrder.getReceiveDockName());
model.setLastRecRequireTime(cheryOrder.getLastRecRequireTime());
//根据cheryOrder的workshopNo获取对应的车间名称
String workshopName = getWorkshopName(cheryOrder.getOrganizeCode(), cheryOrder.getWorkshopNo());
model.setWorkShop(workshopName);
model.setCreateDateTime(cheryOrder.getCreateDatetime());
model.setPrintDateTime(TimeTool.getNowTime(true));
cheryOrderMap = cheryOrderList.stream().collect(Collectors.groupingBy(MesCimCheryOrder::getVin));
}
//查询发运单明细
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(shippingOrder.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(shippingOrder.getId(), "pid", partPackBean);
DdlPreparedPack.getOrderBy("boxNum",CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), partPackBean);
List<MesShippingOrderManagementDetail> shipOrderPartInfos = shippingOrderManagementDetailRepository.findByHqlWhere(partPackBean);
if (!CollectionUtils.isEmpty(shipOrderPartInfos)) {
pullingOrderInfo.setShipOrderPartInfos(shipOrderPartInfos);
List<MesShippingOrderManagementDetailModel> detailList = new ArrayList<>();
shipOrderPartInfos = shipOrderPartInfos.stream().sorted(Comparator.comparing(MesShippingOrderManagementDetail::getCustInfoSeq)).collect(Collectors.toList());
for (MesShippingOrderManagementDetail shipOrderPartInfo : shipOrderPartInfos) {
MesShippingOrderManagementDetailModel detailModel = new MesShippingOrderManagementDetailModel();
detailModel.setPartNo(shipOrderPartInfo.getPartNo());
detailModel.setPartName(shipOrderPartInfo.getPartName());
detailModel.setQty(shipOrderPartInfo.getPlanQty());
detailModel.setBoxNo(shipOrderPartInfo.getCustInfoSeq());
detailModel.setSupplierNo(supplierNo);
detailModel.setVin(shipOrderPartInfo.getVin().substring(shipOrderPartInfo.getVin().length()-8));
MesCimCheryOrder order = cheryOrderMap.get(shipOrderPartInfo.getVin()).get(0);
if (order != null) {
detailModel.setWholePartNo(order.getMaterialNo());
}
detailList.add(detailModel);
}
model.setShipOrderPartInfos(detailList);
}
pullingOrderInfo.setPrintCount(StringUtil.isEmpty(pullingOrderInfo.getPrintCount())?1:pullingOrderInfo.getPrintCount()+1);
pullingOrderInfo.setLastPrintTime(TimeTool.getNowTime(true));
pullingOrderInfo.setLastPrintUser(userName);
ConvertBean.serviceModelUpdate(pullingOrderInfo, userName);
//查询原有报文 根据shippingCode;
shippingOrder.setPrintCount(StringUtil.isEmpty(shippingOrder.getPrintCount())?1:shippingOrder.getPrintCount()+1);
shippingOrder.setLastPrintTime(TimeTool.getNowTime(true));
shippingOrder.setLastPrintUser(bean.getUserInfo());
ConvertBean.serviceModelUpdate(shippingOrder, bean.getUserInfo());
modelList.add(model);
}
shippingOrderManagementRepository.saveAll(pullingOrderInfos);
}
return pullingOrderInfos;
// return pullingOrderInfos;
return modelList;
}
private String getWorkshopName(String organizeCode, String workshopNo) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workshopNo, "cfgKey", ddlPackBean);
List<MesConfig> configList = mesConfigRao.findByHqlWhere(ddlPackBean);
return configList.isEmpty() ? "" : configList.get(0).getCfgValue();
}
private List<MesCimCheryOrder> getCheryOrder(String organizeCode, String sheetNo) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(sheetNo, "sheetNo", ddlPackBean);
return cheryOrderRao.findByHqlWhere(ddlPackBean);
}
@Override
public MesPartShippingGroupDetail getMesPartShippingGroupDetail(String organizeCode, String shippingGroupCode, String partNo, String custPartNo) {
if(StringUtil.isEmpty(organizeCode) || StringUtil.isEmpty(shippingGroupCode) || StringUtil.isEmpty(partNo) || StringUtil.isEmpty(custPartNo)) return null;

Loading…
Cancel
Save