装车单跳过,是否要将装车单关联的发运单也一并完成,同时一并发给WMS

tags/yfai-pcn-ext-v2.0
jun 8 months ago
parent 0cd56db811
commit e22af55524

@ -17,5 +17,5 @@ import java.util.List;
public interface IMesJisShippingService {
@ApiOperation(value = "构筑发运报工数据")
List<MesJisShipping> getJisShipping(MesShippingOrderManagement orderManagement, List<MesShippingOrderManagementDetail> orderManagementDetailList, String org);
List<MesJisShipping> getJisShipping(MesShippingOrderManagement orderManagement, List<MesShippingOrderManagementDetail> orderManagementDetailList,String userName);
}

@ -1,11 +1,14 @@
package cn.estsh.i3plus.ext.mes.pcn.api.busi;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingCheckModel;
import cn.estsh.i3plus.pojo.mes.bean.MesJisShipping;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* @Description :
* @Reference :
@ -27,6 +30,9 @@ public interface IMesSortShippingCheckService {
@ApiOperation(value = "查询发运单-自动推单")
MesShippingOrderManagement queryShippingOrderNoByAutoPushOrder(String shippingGroupNo, String org);
@ApiOperation("保存发运数据")
List<MesJisShipping> getMesJisShippings(MesShippingOrderManagement mesShippingOrderManagement,String userName);
void update(MesShippingOrderManagement item);
void updateDetail(MesShippingOrderManagementDetail item);

@ -10,7 +10,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesJisShipping;
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.MesShippingOrderManagementDetail;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -30,7 +29,7 @@ import java.util.UUID;
**/
@Service
@Slf4j
public class MesJisShippingService implements IMesJisShippingService {
public class MesJisShippingServiceImpl implements IMesJisShippingService {
@Autowired
private IMesPartShippingGroupService mesPartShippingGroupService;
@ -38,8 +37,10 @@ public class MesJisShippingService implements IMesJisShippingService {
@Autowired
private IMesConfigService configService;
public List<MesJisShipping> getJisShipping(MesShippingOrderManagement orderManagement, List<MesShippingOrderManagementDetail> orderManagementDetailList, String org) {
MesPartShippingGroup mesPartShippingGroup = mesPartShippingGroupService.getMesPartShippingGroup(org, orderManagement.getShippingGroupCode());
public List<MesJisShipping> getJisShipping(MesShippingOrderManagement orderManagement, List<MesShippingOrderManagementDetail> orderManagementDetailList,String userName) {
MesPartShippingGroup mesPartShippingGroup = mesPartShippingGroupService.getMesPartShippingGroup(orderManagement.getOrganizeCode(), orderManagement.getShippingGroupCode());
String warerhouse = mesPartShippingGroup == null || StringUtils.isEmpty(mesPartShippingGroup.getSrcWarerhouse()) ? configService.getCfgValue(orderManagement.getOrganizeCode(), "ERP_WARERHOUSE") : mesPartShippingGroup.getSrcWarerhouse();
String erpWarehous = configService.getCfgValue(orderManagement.getOrganizeCode(), "ERP_WAREHOUS");
List<MesJisShipping> jisShippingList = new ArrayList<>();
orderManagementDetailList.forEach(k -> {
MesJisShipping jisShipping = new MesJisShipping();
@ -47,8 +48,8 @@ public class MesJisShippingService implements IMesJisShippingService {
BeanUtils.copyProperties(k, jisShipping, "id");
jisShipping.setFactoryCode(orderManagement.getCustOrganizeCode());
jisShipping.setShippingTime(TimeTool.getNowTime(true));
jisShipping.setErpWarerhouse(mesPartShippingGroup == null || StringUtils.isEmpty(mesPartShippingGroup.getSrcWarerhouse()) ? configService.getCfgValue(org, "ERP_WARERHOUSE"): mesPartShippingGroup.getSrcWarerhouse());
jisShipping.setErpWarehous(configService.getCfgValue(org, "ERP_WAREHOUS"));
jisShipping.setErpWarerhouse(warerhouse);
jisShipping.setErpWarehous(erpWarehous);
jisShipping.setDock(orderManagement.getSendDockCode());
jisShipping.setCusCode(orderManagement.getCustCode());
jisShipping.setCusDock(orderManagement.getCustDockCode());
@ -59,7 +60,7 @@ public class MesJisShippingService implements IMesJisShippingService {
jisShipping.setShippingOrderCode(orderManagement.getShippingCode());
jisShipping.setFid(UUID.randomUUID().toString());
jisShipping.setSystemSyncStatus(CommonEnumUtil.FALSE);
ConvertBean.serviceModelInitialize(jisShipping, AuthUtil.getSessionUser().getUserName());
ConvertBean.serviceModelInitialize(jisShipping, userName);
jisShippingList.add(jisShipping);
});

@ -1,7 +1,7 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesJisShippingService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesShippingLoadingCheckService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesSortShippingCheckService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.aspect.MonitorLog;
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesShippingLoadingCheckModel;
@ -49,15 +49,15 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
@Autowired
private MesShippingOrderManagementDetailRepository shippingOrderManagementDetailRepository;
@Autowired
private MesProduceSnRepository produceSnRepository;
@Autowired
private IMesJisShippingService jisShippingService;
@Autowired
private MesJisShippingRepository jisShippingRepository;
@Autowired
private MesPartShippingGroupService mesPartShippingGroupService;
@Autowired
private IMesSortShippingCheckService mesSortShippingCheckService;
@Override
public MesShippingLoadingCheckModel doLoadingOrderNoQuery(MesLoadingList loadingList) {
@ -341,12 +341,12 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
if((!Objects.isNull(isPass) && (Objects.equals(MesPcnExtConstWords.ONE,isPass) || Objects.equals(MesPcnExtConstWords.THREE,isPass)))){
if(Objects.equals(MesPcnExtConstWords.ONE,isPass)){
loadingList.setRemark(MesPcnExtConstWords.STRONGER_PASS);
}else{
}else if(Objects.equals(MesPcnExtConstWords.THREE,isPass)){
//跳过的单据和明细,系统默认是完成的
loadingList.setStatus(MesExtEnumUtil.MES_LOADING_STATUS.SCANNED.getValue());
loadingList.setRemark(MesPcnExtConstWords.SHIP_PASS);
//明细跳过
updateLoadingDetails(loadingList.getOrganizeCode(),userName,loadingList.getId());
updateLoadingList(loadingList,userName);
}
ConvertBean.serviceModelUpdate(loadingList,userName);
vehiclesOrderRepository.update(loadingList);
@ -375,12 +375,61 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
vehiclesOrderDetailRepository.update(item);
}
private void updateLoadingList(MesLoadingList loadingList, String userName) {
List<MesLoadingListDetail> mesLoadingListDetailList = getMesLoadingListList(loadingList.getId(), loadingList.getOrganizeCode());
if (CollectionUtils.isEmpty(mesLoadingListDetailList)) return;
List<String> shippingCodeList = mesLoadingListDetailList.stream().map(MesLoadingListDetail::getShippingCode).distinct().collect(Collectors.toList());
//关闭装发运单明细
List<MesShippingOrderManagement> mesShippingOrderManagementList = getMesShippingOrderManagementList(loadingList.getOrganizeCode(), shippingCodeList);
if (!CollectionUtils.isEmpty(mesShippingOrderManagementList)) {
//发送数据给wms
for (MesShippingOrderManagement mesShippingOrderManagement : mesShippingOrderManagementList) {
jisShippingRepository.saveAll(mesSortShippingCheckService.getMesJisShippings(mesShippingOrderManagement, userName));
}
//关闭发运单明细
closeShippingOrderDetails(loadingList.getOrganizeCode(), userName, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
}
//关闭发运单
closeShippingOrder(loadingList.getOrganizeCode(), userName, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
//明细跳过
updateLoadingDetails(loadingList.getOrganizeCode(), userName, loadingList.getId());
}
private void closeShippingOrderDetails(String organizeCode, String userName, List<Long> idList) {
if (CollectionUtils.isEmpty(idList) || StringUtils.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(idList, "pid", packBean);
shippingOrderManagementDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status", "remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean);
}
private List<MesShippingOrderManagement> getMesShippingOrderManagementList(String organizeCode, List<String> shippingCodeList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(shippingCodeList, "shippingCode", packBean);
return shippingOrderManagementRepository.findByHqlWhere(packBean);
}
private void closeShippingOrder(String organizeCode, String userName, List<Long> idList) {
if (CollectionUtils.isEmpty(idList) || StringUtils.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(idList, "id", packBean);
shippingOrderManagementRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status", "remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean);
}
private List<MesLoadingListDetail> getMesLoadingListList(long id, String organizeCode) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(id, "pid", packBean);
DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(), "status", packBean);
return vehiclesOrderDetailRepository.findByHqlWhere(packBean);
}
private void updateLoadingDetails(String organizeCode, String userName, long id) {
if(StringUtil.isEmptyAndNull(id) || StringUtils.isEmpty(organizeCode)) return;
if (StringUtil.isEmptyAndNull(id) || StringUtils.isEmpty(organizeCode)) return;
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(id, "pid",packBean);
vehiclesOrderDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(),MesPcnExtConstWords.SHIP_PASS}, packBean);
DdlPreparedPack.getNumEqualPack(id, "pid", packBean);
vehiclesOrderDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status", "remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(), MesPcnExtConstWords.SHIP_PASS}, packBean);
}
}

@ -562,7 +562,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
}
if(StringUtils.isEmpty(orderManagement.getOrderCode()) || StringUtils.isEmpty(orderManagement.getLoadingListId())){
//保存当前发运单明细报工
jisShippingRepository.saveAll(getMesJisShippings(organizeCode, orderManagement));
jisShippingRepository.saveAll(getMesJisShippings(orderManagement,userInfo));
}else{
//查询装车单明细
DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(organizeCode);
@ -581,7 +581,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
List<MesShippingOrderManagement> shippingOrderManagementList = shippingOrderManagementRepository.findByHqlWhere(jisBean);
for (MesShippingOrderManagement mesShippingOrderManagement : shippingOrderManagementList) {
//保存当前发运单明细报工
jisShippingRepository.saveAll(getMesJisShippings(organizeCode, mesShippingOrderManagement));
jisShippingRepository.saveAll(getMesJisShippings(mesShippingOrderManagement,userInfo));
}
if(!StringUtil.isEmpty(vehiclesOrderDetail)){
@ -598,12 +598,12 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
}
private List<MesJisShipping> getMesJisShippings(String organizeCode, MesShippingOrderManagement mesShippingOrderManagement) {
DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(organizeCode);
public List<MesJisShipping> getMesJisShippings(MesShippingOrderManagement mesShippingOrderManagement,String userName) {
DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(mesShippingOrderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(mesShippingOrderManagement.getId(), "pid", detailPackBean);
List<MesShippingOrderManagementDetail> shippingOrderManagementDetails = shippingOrderManagementDetailRepository.findByHqlWhere(detailPackBean);
//当前装车单所有发运单明细 需要报工的数据
return jisShippingService.getJisShipping(mesShippingOrderManagement, shippingOrderManagementDetails, organizeCode);
return jisShippingService.getJisShipping(mesShippingOrderManagement, shippingOrderManagementDetails,userName);
}
@Override

Loading…
Cancel
Save