新增 枚举

tags/yfai-mes-ext-v1.0
LML丶 1 year ago
parent 5b820c8715
commit 330f9aed05

@ -1,12 +1,149 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
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.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagementDetail;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
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;
@Service
@Slf4j
public class MesShippingOrderManagementService extends BaseMesService<MesShippingOrderManagement> implements IMesShippingOrderManagementService {
@Autowired
private MesShippingOrderManagementDetailService detailService;
@Autowired
private MesPartShippingGroupService shippingGroupService;
@Override
public MesShippingOrderManagement insert(MesShippingOrderManagement bean) {
//插入前构造数据
onInsertBean(bean);
//查询物料发运组数据
DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getShippingOrderNo(), "shippingGroupNo", shipGroupPackBean);
List<MesPartShippingGroup> partShippingGroupList = shippingGroupService.findAll(shipGroupPackBean);
if (CollectionUtils.isEmpty(partShippingGroupList)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】发运组数据为空请检查数据", bean.getShippingOrderNo())
.build();
}
//发运单明细
List<MesShippingOrderManagementDetail> detailInsertList = new ArrayList<>();
MesShippingOrderManagement finalBean = bean;
partShippingGroupList.forEach(k -> {
MesShippingOrderManagementDetail detail = new MesShippingOrderManagementDetail();
detail.setShippingOrderNo(finalBean.getShippingOrderNo());
detail.setOrganizeCode(k.getOrganizeCode());
ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName());
BeanUtils.copyProperties(k, detail, "id");
detailInsertList.add(detail);
});
detailService.insertBatch(detailInsertList);
bean = baseRDao.insert(bean);
return bean;
}
@Override
public MesShippingOrderManagement update(MesShippingOrderManagement bean) {
//更新前构造数据
onUpdateBean(bean);
MesShippingOrderManagement originBean = baseRDao.getById(bean.getId());
if (StringUtils.isEmpty(originBean)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("请选择需要操作的资源。")
.build();
}
//判断是否修改发运组,如果不修改发运组,则不修改明细
if (!bean.getShippingGroupNo().equals(originBean.getShippingGroupNo())) {
DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getShippingOrderNo(), "shippingGroupNo", detailPackBean);
List<MesShippingOrderManagementDetail> detailDeleteList = detailService.findAll(detailPackBean);
detailDeleteList.forEach(k -> {
k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
//查询物料发运组数据
DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getShippingOrderNo(), "shippingGroupNo", shipGroupPackBean);
List<MesPartShippingGroup> partShippingGroupList = shippingGroupService.findAll(shipGroupPackBean);
if (CollectionUtils.isEmpty(partShippingGroupList)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】发运组数据为空请检查数据", bean.getShippingOrderNo())
.build();
}
//发运单明细
List<MesShippingOrderManagementDetail> detailInsertList = new ArrayList<>();
partShippingGroupList.forEach(k -> {
MesShippingOrderManagementDetail detail = new MesShippingOrderManagementDetail();
detail.setOrganizeCode(k.getOrganizeCode());
ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName());
BeanUtils.copyProperties(k, detail, "id");
detailInsertList.add(detail);
});
//软删原明细数据
detailService.updates(detailDeleteList);
//新增新明细数据
detailService.insertBatch(detailInsertList);
}
onModifyBean();
ConvertBean.serviceModelUpdate(bean, AuthUtil.getSessionUser().getUserName());
baseRDao.update(bean);
return originBean;
}
@Override
public void deleteWeaklyByIds(Long[] ids, String userName) {
for (Long id : ids) {
MesShippingOrderManagement bean = baseRDao.getById(id);
if (StringUtils.isEmpty(bean)) continue;
DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getShippingOrderNo(), "shippingGroupNo", detailPackBean);
List<MesShippingOrderManagementDetail> detailDeleteList = detailService.findAll(detailPackBean);
detailDeleteList.forEach(k -> {
k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
});
bean.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelUpdate(bean, AuthUtil.getSessionUser().getUserName());
baseRDao.update(bean);
detailService.updates(detailDeleteList);
}
}
}

Loading…
Cancel
Save