Conflicts:
	modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/constant/MesCommonConstant.java
tags/yfai-mes-ext-v1.0
gsz 12 months ago
commit 796c7fafa2

@ -0,0 +1,15 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckPart;
/**
* @Description :
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/5/14 14:07
* @Modify:
**/
public interface IMesEquipmentSpotCheckPartService extends IBaseMesService<MesEquipmentSpotCheckPart> {
}

@ -0,0 +1,20 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.ext.mes.pojo.model.MesLoadingListDetailModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingListDetail;
import java.util.List;
/**
* @Description:
* @CreateDate 2024/04/16
* @Author mingliang.li
*/
public interface IMesLoadingListDetailService extends IBaseMesService<MesLoadingListDetail> {
ListPager<MesLoadingListDetailModel> queryLoadingListDetail(MesLoadingListDetail detail, Pager pager);
}

@ -0,0 +1,13 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingList;
/**
* @Description:
* @CreateDate 2024/04/16
* @Author mingliang.li
*/
public interface IMesLoadingListService extends IBaseMesService<MesLoadingList> {
}

@ -1,13 +0,0 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrderDetail;
/**
* @Description:
* @CreateDate 2024/04/16
* @Author mingliang.li
*/
public interface IMesLoadingVehiclesOrderDetailService extends IBaseMesService<MesLoadingVehiclesOrderDetail> {
}

@ -1,13 +0,0 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrder;
/**
* @Description:
* @CreateDate 2024/04/16
* @Author mingliang.li
*/
public interface IMesLoadingVehiclesOrderService extends IBaseMesService<MesLoadingVehiclesOrder> {
}

@ -0,0 +1,13 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesLocationConfig;
/**
* @Description:
* @CreateDate 2024/04/16
* @Author mingliang.li
*/
public interface IMesLocationConfigService extends IBaseMesService<MesLocationConfig> {
}

@ -5,8 +5,6 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagementDetail; import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagementDetail;
import java.util.List;
/** /**
* @Description: * @Description:
* @CreateDate 2024/04/16 * @CreateDate 2024/04/16

@ -1,7 +1,6 @@
package cn.estsh.i3plus.ext.mes.api.base; package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
/** /**
@ -14,5 +13,8 @@ public interface IMesShippingOrderManagementService extends IBaseMesService<MesS
@ApiOperation(value = "发运", notes = "发运") @ApiOperation(value = "发运", notes = "发运")
public void saveShipping(MesShippingOrderManagement shippingOrderManagement); public void saveShipping(MesShippingOrderManagement shippingOrderManagement);
@ApiOperation(value = "关闭发运单", notes = "关闭发运单")
public void saveShippingClose(MesShippingOrderManagement shippingOrderManagement);
} }

@ -217,6 +217,28 @@ public abstract class BaseMesController<T extends BaseBean> extends BaseControll
} }
} }
@PostMapping(value = "/insert-batch")
@ApiOperation(value = "批量新增信息")
public ResultBean<T> insertBatch(@RequestBody List<T> beanList) {
try {
baseService.validateImport(beanList);
// 导入数据初始化
for (T bean : beanList) {
ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName());
bean.setOrganizeCode(AuthUtilExt.getOrganizeCode());
}
baseService.insertBatch(beanList);
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e).build();
} catch (Exception e) {
return ResultBean.fail(e);
}
}
@PostMapping(value = "/update") @PostMapping(value = "/update")
@ApiOperation(value = "修改信息", notes = "修改信息") @ApiOperation(value = "修改信息", notes = "修改信息")
public ResultBean<T> update(@RequestBody T bean) { public ResultBean<T> update(@RequestBody T bean) {

@ -25,19 +25,19 @@ public class MesCraftRouteDetailController extends BaseMesController<MesCraftRou
@Autowired @Autowired
private IMesCraftRouteDetailService mesCraftRouteDetailService; private IMesCraftRouteDetailService mesCraftRouteDetailService;
@PostMapping(value = "/insert-batch") // @PostMapping(value = "/insert-batch")
@ApiOperation(value = "批量新增") // @ApiOperation(value = "批量新增")
public ResultBean insertMesCraftRouteDetailBatch(@RequestBody List<MesCraftRouteDetail> mesCraftRouteDetailList) { // public ResultBean insertMesCraftRouteDetailBatch(@RequestBody List<MesCraftRouteDetail> mesCraftRouteDetailList) {
try { // try {
mesCraftRouteDetailService.insertMesCraftRouteDetailBatch(mesCraftRouteDetailList); // mesCraftRouteDetailService.insertMesCraftRouteDetailBatch(mesCraftRouteDetailList);
return ResultBean.success("新增成功") // return ResultBean.success("新增成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); // .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) { // } catch (ImppBusiException e) {
return ResultBean.fail(e).build(); // return ResultBean.fail(e).build();
} catch (Exception e) { // } catch (Exception e) {
return ResultBean.fail(e); // return ResultBean.fail(e);
} // }
} // }
@PostMapping(value = "/update-batch") @PostMapping(value = "/update-batch")
@ApiOperation(value = "批量修改") @ApiOperation(value = "批量修改")

@ -0,0 +1,14 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckPart;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
*/
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesEquipmentSpotCheckPart")
public class MesEquipmentSpotCheckPartController extends BaseMesController<MesEquipmentSpotCheckPart>{
}

@ -1,8 +1,7 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base; package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrder; import cn.estsh.i3plus.pojo.mes.bean.MesLoadingList;
import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -11,7 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesLoadingVehiclesOrder") @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesLoadingVehiclesOrder")
public class MesLoadingVehiclesOrderController extends BaseMesController<MesLoadingVehiclesOrder> { public class MesLoadingListController extends BaseMesController<MesLoadingList> {
} }

@ -0,0 +1,47 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingListDetailService;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.ext.mes.pojo.model.MesLoadingListDetailModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingListDetail;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(description = "装车单明细页面")
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesLoadingVehiclesOrderDetail")
public class MesLoadingListDetailController extends BaseMesController<MesLoadingListDetail> {
@Autowired
private IMesLoadingListDetailService detailService;
@PostMapping(value = "/query-Detail")
@ApiOperation(value = "查询装车单明细")
public ResultBean getLoadingListDetail(MesLoadingListDetail detail, Pager pager) {
try {
detail.setOrganizeCode(AuthUtil.getOrganizeCode());
ListPager<MesLoadingListDetailModel> mesList = detailService.queryLoadingListDetail(detail, pager);
return ResultBean.success("查询成功").setListPager(mesList)
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -1,16 +0,0 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrderDetail;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(description = "装车单明细页面")
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesLoadingVehiclesOrderDetail")
public class MesLoadingVehiclesOrderDetailController extends BaseMesController<MesLoadingVehiclesOrderDetail> {
}

@ -0,0 +1,33 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesLocationConfig;
import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.stream.Collectors;
@Api(description = "图片位置配置页面")
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesLocationConfig")
public class MesLocationConfigController extends BaseMesController<MesLocationConfig> {
}

@ -3,11 +3,11 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementService; import cn.estsh.i3plus.ext.mes.api.base.IMesShippingOrderManagementService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
@ -66,4 +66,37 @@ public class MesShippingOrderManagementController extends BaseMesController<MesS
} }
} }
@PostMapping(value = "/close")
@ApiOperation(value = "关闭发运单")
public ResultBean<MesShippingOrderManagement> saveShippingClose(@RequestBody List<MesShippingOrderManagement> beanList) {
try {
// List<String> orderNoList =
// beanList.stream().filter(k -> k.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue() &&
// k.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()).map(k -> k.getShippingCode()).collect(Collectors.toList());
//
// if (!CollectionUtils.isEmpty(orderNoList)) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("【%s】发运单状态不是【%s】或【%s】请选择状态为【%s】或【%s】的数据", orderNoList, MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getDescription(),
// MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getDescription(), MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getDescription(),
// MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getDescription())
// .build();
// }
//新增初始化
for (MesShippingOrderManagement orderManagement : beanList) {
orderManagement.setOrganizeCode(AuthUtilExt.getOrganizeCode());
shippingOrderManagementService.saveShippingClose(orderManagement);
}
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e).build();
} catch (Exception e) {
return ResultBean.fail(e);
}
}
} }

@ -0,0 +1,24 @@
package cn.estsh.i3plus.ext.mes.apiservice.dao;
import cn.estsh.i3plus.ext.mes.pojo.model.MesLoadingListDetailModel;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingListDetail;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* @Description : SAP
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/5/7 15:13
* @Modify:
**/
public interface IMesLoadingListDetailDao {
@ApiOperation(value = "分页查询装车单明细", notes = "分页查询装车单明细")
List<MesLoadingListDetailModel> queryLoadingListDetailModel(MesLoadingListDetail detail, Pager pager);
@ApiOperation(value = "分页查询装车单明细", notes = "分页查询装车单明细")
int queryLoadingListDetailModelCount(MesLoadingListDetail detail);
}

@ -0,0 +1,137 @@
package cn.estsh.i3plus.ext.mes.apiservice.daoimpl;
import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesLoadingListDetailDao;
import cn.estsh.i3plus.ext.mes.pojo.model.MesLoadingListDetailModel;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingListDetail;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.ArrayList;
import java.util.List;
/**
* @Description :SAP
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/5/6 15:52
* @Modify:
**/
@Service
@Slf4j
public class MesLoadingListDetailDaoImpl implements IMesLoadingListDetailDao {
@Autowired
private EntityManager entityManager;
@Override
public List<MesLoadingListDetailModel> queryLoadingListDetailModel(MesLoadingListDetail detail, Pager pager) {
StringBuffer hql = new StringBuffer("select mll.order_code ,mll.cust_name ,mll.cust_organize_name ,mll.shipping_group_name , ");
hql.append(" mlld.status , mll.truck_no ,mll.weather , ms.shipping_code ,ms.start_scan_time ,ms.end_scan_time ,ms.status as shipStatus , ");
hql.append(" mlld.create_date_time , mll.create_user ,mll.modify_date_time , ms.modify_user ");
hql.append(" from mes_loading_list as mll");
hql.append(" inner join mes_loading_list_detail as mlld on mll.id = mlld.pid");
hql.append(" and mll.organize_code = mlld.organize_code and mll.is_deleted = mlld.is_deleted and mll.is_valid = mlld.is_valid ");
hql.append(" inner join mes_shipping as ms on mlld.shipping_id = ms.pid ");
hql.append(" and mlld.organize_code = ms.organize_code and mlld.is_deleted = ms.is_deleted and mlld.is_valid = ms.is_valid ");
hql.append(" where mll.organize_code = :organizeCode ");
hql.append(" and mll.is_deleted = :isDeleted ");
hql.append(" and mll.is_valid = :isValid ");
hql.append(" and mlld.pid = :pid ");
if (!StringUtils.isEmpty(detail.getShippingCode())) {
hql.append(" and mlld.shipping_code = :shippingCode ");
}
Query query = entityManager.createNativeQuery(hql.toString());
query.setParameter("organizeCode", detail.getOrganizeCode());
query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
query.setParameter("pid", detail.getPid());
if (!StringUtils.isEmpty(detail.getShippingCode())) {
query.setParameter("shippingCode", detail.getShippingCode());
}
List list = query.getResultList();
List<MesLoadingListDetailModel> modelList = new ArrayList<>();
for (Object result : list) {
Object[] cells = (Object[]) result;
MesLoadingListDetailModel model = new MesLoadingListDetailModel();
model.setOrderCode(StringUtils.isEmpty(cells[0]) ? "" : String.valueOf(cells[0]));
model.setCustName(StringUtils.isEmpty(cells[1]) ? "" : String.valueOf(cells[1]));
model.setCustOrganizeName(StringUtils.isEmpty(cells[2]) ? "" : String.valueOf(cells[2]));
model.setShippingGroupName(StringUtils.isEmpty(cells[3]) ? "" : String.valueOf(cells[3]));
model.setStatus(StringUtils.isEmpty(cells[4]) ? 0 : Integer.parseInt(String.valueOf(cells[4])));
model.setTruckNo(StringUtils.isEmpty(cells[5]) ? "" : String.valueOf(cells[5]));
model.setWeather(StringUtils.isEmpty(cells[6]) ? 0 : Integer.parseInt(String.valueOf(cells[6])));
model.setShippingCode(StringUtils.isEmpty(cells[7]) ? "" : String.valueOf(cells[7]));
model.setStartScanTime(StringUtils.isEmpty(cells[8]) ? "" : String.valueOf(cells[8]));
model.setEndScanTime(StringUtils.isEmpty(cells[9]) ? "" : String.valueOf(cells[9]));
model.setShippingStatus(StringUtils.isEmpty(cells[10]) ? 0 : Integer.parseInt(String.valueOf(cells[10])));
model.setCreateDatetime(StringUtils.isEmpty(cells[11]) ? "" : String.valueOf(cells[11]));
model.setCreateUser(StringUtils.isEmpty(cells[12]) ? "" : String.valueOf(cells[12]));
model.setModifyDatetime(StringUtils.isEmpty(cells[13]) ? "" : String.valueOf(cells[13]));
model.setModifyUser(StringUtils.isEmpty(cells[14]) ? "" : String.valueOf(cells[14]));
modelList.add(model);
}
return modelList;
}
@Override
public int queryLoadingListDetailModelCount(MesLoadingListDetail detail) {
StringBuffer hql = new StringBuffer("select count(1) ");
hql.append(" from mes_loading_list as mll");
hql.append(" inner join mes_loading_list_detail as mlld on mll.id = mlld.pid");
hql.append(" and mll.organize_code = mlld.organize_code and mll.is_deleted = mlld.is_deleted and mll.is_valid = mlld.is_valid ");
hql.append(" inner join mes_shipping as ms on mlld.shipping_id = ms.pid ");
hql.append(" and mlld.organize_code = ms.organize_code and mlld.is_deleted = ms.is_deleted and mlld.is_valid = ms.is_valid ");
hql.append(" where mll.organize_code = :organizeCode ");
hql.append(" and mll.is_deleted = :isDeleted ");
hql.append(" and mll.is_valid = :isValid ");
hql.append(" and mlld.pid = :pid ");
if (!StringUtils.isEmpty(detail.getShippingCode())) {
hql.append(" and mlld.shipping_code = :shippingCode ");
}
if (!StringUtils.isEmpty(detail.getStatus())) {
hql.append(" and mlld.status = :status ");
}
Query query = entityManager.createNativeQuery(hql.toString());
query.setParameter("organizeCode", detail.getOrganizeCode());
query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
query.setParameter("pid", detail.getPid());
if (!StringUtils.isEmpty(detail.getShippingCode())) {
query.setParameter("shippingCode", detail.getShippingCode());
}
if (!StringUtils.isEmpty(detail.getStatus())) {
query.setParameter("status", detail.getStatus());
}
List list = query.getResultList();
if (CollectionUtils.isEmpty(list)) {
return 0;
}
return list.size();
}
}

@ -12,6 +12,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesSpotCheckOrderPart; import cn.estsh.i3plus.pojo.mes.bean.MesSpotCheckOrderPart;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -52,6 +53,7 @@ public abstract class BaseMesService<T extends BaseBean> implements IBaseMesServ
@Override @Override
public ListPager<T> queryPager(T bean, Pager pager) { public ListPager<T> queryPager(T bean, Pager pager) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode(), bean.getIsValid()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode(), bean.getIsValid());
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
setPackQueryBean(bean, packBean); setPackQueryBean(bean, packBean);
pager = PagerHelper.getPager(pager, baseRDao.findByHqlWhereCount(packBean)); pager = PagerHelper.getPager(pager, baseRDao.findByHqlWhereCount(packBean));
List<T> list = baseRDao.findByHqlWherePage(packBean, pager); List<T> list = baseRDao.findByHqlWherePage(packBean, pager);

@ -48,9 +48,9 @@ public class EquipmentExtService implements IEquipmentExtService {
pager = PagerHelper.getPager(pager, equipmentDao.queryMesEquipmentByPagerOrgCount(mesEquipment)); pager = PagerHelper.getPager(pager, equipmentDao.queryMesEquipmentByPagerOrgCount(mesEquipment));
List<MesEquipmentModel> equipmentModels = equipmentDao.queryMesEquipmentByPagerOrg(mesEquipment, pager); List<MesEquipmentModel> equipmentModels = equipmentDao.queryMesEquipmentByPagerOrg(mesEquipment, pager);
for (MesEquipmentModel equipmentModel : equipmentModels) { for (MesEquipmentModel equipmentModel : equipmentModels) {
if(equipmentModel.getStatus() != null){ // if(equipmentModel.getStatus() != null){
equipmentModel.setStatusName(LocaleUtils.getLocaleRes(equStatusEnumMap.get(equipmentModel.getStatus().toString()))); // equipmentModel.setStatusName(LocaleUtils.getLocaleRes(equStatusEnumMap.get(equipmentModel.getStatus().toString())));
} // }
} }
return new ListPager(equipmentModels, pager); return new ListPager(equipmentModels, pager);
} }

@ -11,6 +11,8 @@ import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
@Service @Service
@Slf4j @Slf4j
public class MesCustomerDockService extends BaseMesService<MesCustomerDock> implements IMesCustomerDockService { public class MesCustomerDockService extends BaseMesService<MesCustomerDock> implements IMesCustomerDockService {
@ -58,4 +60,27 @@ public class MesCustomerDockService extends BaseMesService<MesCustomerDock> impl
DdlPreparedPack.getNumEqualPack(bean.getCustDockType(), "custDockType", packBean); DdlPreparedPack.getNumEqualPack(bean.getCustDockType(), "custDockType", packBean);
} }
@Override
public void validateImport(List<MesCustomerDock> beanList) {
for (MesCustomerDock bean : beanList) {
// 数据校验
ValidatorBean.checkNotNull(bean.getCustCode(), "客户代码不能为空");
ValidatorBean.checkNotNull(bean.getCustDockCode(), "客户道口代码不能为空");
ValidatorBean.checkNotNull(bean.getCustDockDesc(), "客户道口描述不能为空");
//todo
//查询数据库校验字段,待确定
// DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
// DdlPreparedPack.getStringEqualPack(bean.getCustCode(), "custCode", packBean);
// MesCustomer customer = customerRepository.getByProperty(packBean);
// if (StringUtils.isEmpty(customer)) {
// throw new ImppBusiException(String.format("客户代码【%s】不存在", bean.getCustCode()));
// }
//
// bean.setCustName(customer.getCustName());
}
}
} }

@ -6,14 +6,17 @@ import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesDefectRecordDao;
import cn.estsh.i3plus.ext.mes.pojo.model.MesDefectRecordModel; import cn.estsh.i3plus.ext.mes.pojo.model.MesDefectRecordModel;
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; 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.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesDefectType; import cn.estsh.i3plus.pojo.mes.bean.MesDefectType;
import cn.estsh.i3plus.pojo.mes.bean.MesDefectWarnConfig; import cn.estsh.i3plus.pojo.mes.bean.MesDefectWarnConfig;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.repository.MesDefectTypeRepository; import cn.estsh.i3plus.pojo.mes.repository.MesDefectTypeRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository; import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -39,19 +42,63 @@ public class MesDefectWarnConfigService extends BaseMesService<MesDefectWarnConf
protected void onInsertBean(MesDefectWarnConfig item) { protected void onInsertBean(MesDefectWarnConfig item) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getDefectTypeCode(), "缺陷类型不能为空");
ValidatorBean.checkNotNull(item.getDefectLocation(), "零件类型不能为空");
ValidatorBean.checkNotNull(item.getPartTypeCode(), "零件类型不能为空"); ValidatorBean.checkNotNull(item.getPartTypeCode(), "零件类型不能为空");
ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空");
ValidatorBean.checkNotNull(item.getFrontBack(), "正面反面不能为空");
DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getDefectTypeCode(), "defectTypeCode", packBean);
DdlPreparedPack.getStringLikerPack(item.getDefectLocation(), "defectLocation", packBean);
DdlPreparedPack.getStringEqualPack(item.getPartTypeCode(), "partTypeCode", packBean);
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", packBean);
DdlPreparedPack.getNumEqualPack(item.getFrontBack(), "frontBack", packBean);
boolean flg = baseRDao.isExitByHql(packBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】缺陷类型【%s】缺陷位置代码【%s】零件类型【%s】零件号【%s】正面反面已经存在请检查数据", item.getDefectTypeCode(), item.getDefectLocation(),
item.getPartTypeCode(), item.getPartNo(), item.getFrontBack())
.build();
}
} }
protected void onUpdateBean(MesDefectWarnConfig item) { protected void onUpdateBean(MesDefectWarnConfig item) {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getDefectTypeCode(), "缺陷类型不能为空");
ValidatorBean.checkNotNull(item.getDefectLocation(), "零件类型不能为空");
ValidatorBean.checkNotNull(item.getPartTypeCode(), "零件类型不能为空"); ValidatorBean.checkNotNull(item.getPartTypeCode(), "零件类型不能为空");
ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空");
ValidatorBean.checkNotNull(item.getFrontBack(), "正面反面不能为空");
DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getDefectTypeCode(), "defectTypeCode", packBean);
DdlPreparedPack.getStringEqualPack(item.getDefectLocation(), "defectLocation", packBean);
DdlPreparedPack.getStringEqualPack(item.getPartTypeCode(), "partTypeCode", packBean);
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", packBean);
DdlPreparedPack.getNumEqualPack(item.getFrontBack(), "frontBack", packBean);
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", packBean);
boolean flg = baseRDao.isExitByHql(packBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】缺陷类型【%s】缺陷位置代码【%s】零件类型【%s】零件号【%s】正面反面已经存在请检查数据", item.getDefectTypeCode(), item.getDefectLocation(),
item.getPartTypeCode(), item.getPartNo(), item.getFrontBack())
.build();
}
} }
protected void setPackQueryBean(MesDefectWarnConfig bean, DdlPackBean packBean) { protected void setPackQueryBean(MesDefectWarnConfig bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getDefectTypeCode(), "defectTypeCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getDefectTypeCode(), "defectTypeCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getDefectLocation(), "defectLocation", packBean); DdlPreparedPack.getStringEqualPack(bean.getDefectLocation(), "defectLocation", packBean);
DdlPreparedPack.getStringEqualPack(bean.getPartTypeCode(), "partTypeCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getPartTypeCode(), "partTypeCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getPartNo(), "partNo", packBean);
} }
@Override @Override
@ -66,7 +113,7 @@ public class MesDefectWarnConfigService extends BaseMesService<MesDefectWarnConf
for (MesDefectRecordModel model : modelList) { for (MesDefectRecordModel model : modelList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
DdlPreparedPack.getStringEqualPack(model.getDefectTypeCode(), "defectTypeCode", packBean); DdlPreparedPack.getStringEqualPack(model.getDefectTypeCode(), "defectTypeCode", packBean);
DdlPreparedPack.getStringLikerPack(model.getDefectLocation(), "defectLocation", packBean); DdlPreparedPack.getStringEqualPack(model.getDefectLocation(), "defectLocation", packBean);
DdlPreparedPack.getStringEqualPack(model.getPartTypeCode(), "partTypeCode", packBean); DdlPreparedPack.getStringEqualPack(model.getPartTypeCode(), "partTypeCode", packBean);
DdlPreparedPack.getStringEqualPack(model.getPartNo(), "partNo", packBean); DdlPreparedPack.getStringEqualPack(model.getPartNo(), "partNo", packBean);
DdlPreparedPack.getNumEqualPack(model.getFrontBack(), "frontBack", packBean); DdlPreparedPack.getNumEqualPack(model.getFrontBack(), "frontBack", packBean);

@ -4,7 +4,6 @@ import cn.estsh.i3plus.ext.mes.api.base.IMesEquipmentSpotCheckDetailService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckDetail; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesShift;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -12,4 +11,12 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
public class MesEquipmentSpotCheckDetailService extends BaseMesService<MesEquipmentSpotCheckDetail> implements IMesEquipmentSpotCheckDetailService { public class MesEquipmentSpotCheckDetailService extends BaseMesService<MesEquipmentSpotCheckDetail> implements IMesEquipmentSpotCheckDetailService {
protected void setPackQueryBean(MesEquipmentSpotCheckDetail bean, DdlPackBean packBean) {
DdlPreparedPack.getNumEqualPack(bean.getPid(), "pid", packBean);
DdlPreparedPack.getStringLikerPack(bean.getSpotCheckItemCode(), "spotCheckItemCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getSpotCheckItemName(), "spotCheckItemName", packBean);
DdlPreparedPack.getNumEqualPack(bean.getDataType(), "dataType", packBean);
DdlPreparedPack.getNumEqualPack(bean.getSpotCheckItemType(), "spotCheckItemType", packBean);
}
} }

@ -0,0 +1,20 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesEquipmentSpotCheckPartService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckPart;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class MesEquipmentSpotCheckPartService extends BaseMesService<MesEquipmentSpotCheckPart> implements IMesEquipmentSpotCheckPartService {
protected void setPackQueryBean(MesEquipmentSpotCheckPart bean, DdlPackBean packBean) {
DdlPreparedPack.getNumEqualPack(bean.getPid(), "pid", packBean);
DdlPreparedPack.getStringEqualPack(bean.getPartNo(), "partNo", packBean);
}
}

@ -1,9 +1,13 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingGroupDetailService; import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingGroupDetailService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; 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.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingGroupDetail; import cn.estsh.i3plus.pojo.mes.bean.MesLoadingGroupDetail;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -20,7 +24,46 @@ public class MesLoadingGroupDetailServiceImpl extends BaseMesService<MesLoadingG
@Override @Override
protected void setPackQueryBean(MesLoadingGroupDetail bean, DdlPackBean packBean) { protected void setPackQueryBean(MesLoadingGroupDetail bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getShippingGroupNo(), "shippingGroupNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getLoadingGroupNo(), "loadingGroupNo", packBean);
}
@Override
protected void onInsertBean(MesLoadingGroupDetail item) {
// 数据校验
ValidatorBean.checkNotNull(item.getShippingGroupCode(), "发运组代码不能为空");
DdlPackBean roadPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getLoadingGroupNo(), "loadingGroupNo", roadPackBean);
DdlPreparedPack.getStringEqualPack(item.getShippingGroupCode(), "shippingGroupCode", roadPackBean);
boolean flg = baseRDao.isExitByHql(roadPackBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("发运组代码【%s】已经存在请检查数据", item.getShippingGroupCode())
.build();
}
}
@Override
protected void onUpdateBean(MesLoadingGroupDetail item) {
// 数据校验
ValidatorBean.checkNotNull(item.getShippingGroupCode(), "发运组代码不能为空");
DdlPackBean roadPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getLoadingGroupNo(), "loadingGroupNo", roadPackBean);
DdlPreparedPack.getStringEqualPack(item.getShippingGroupCode(), "shippingGroupCode", roadPackBean);
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", roadPackBean);
boolean flg = baseRDao.isExitByHql(roadPackBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("发运组代码【%s】已经存在请检查数据", item.getShippingGroupCode())
.build();
}
} }
} }

@ -1,9 +1,13 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingGroupService; import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingGroupService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; 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.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingGroup; import cn.estsh.i3plus.pojo.mes.bean.MesLoadingGroup;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -22,8 +26,49 @@ public class MesLoadingGroupServiceImpl extends BaseMesService<MesLoadingGroup>
protected void setPackQueryBean(MesLoadingGroup bean, DdlPackBean packBean) { protected void setPackQueryBean(MesLoadingGroup bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getLoadingGroupNo(), "loadingGroupNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getLoadingGroupNo(), "loadingGroupNo", packBean);
DdlPreparedPack.getStringEqualPack(bean.getLoadingGroupName(), "loadingGroupName", packBean); DdlPreparedPack.getStringEqualPack(bean.getLoadingGroupName(), "loadingGroupName", packBean);
DdlPreparedPack.getStringEqualPack(bean.getCusCode(), "custCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCustCode(), "custCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getCustOrganizeCode(), "custOrganizeCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCustOrganizeCode(), "custOrganizeCode", packBean);
} }
@Override
protected void onInsertBean(MesLoadingGroup item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCustCode(), "客户代码不能为空");
ValidatorBean.checkNotNull(item.getCustOrganizeCode(), "客户工厂代码不能为空");
ValidatorBean.checkNotNull(item.getLoadingGroupNo(), "装车组代码不能为空");
ValidatorBean.checkNotNull(item.getLoadingGroupName(), "装车组名称不能为空");
DdlPackBean roadPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getLoadingGroupNo(), "loadingGroupNo", roadPackBean);
boolean flg = baseRDao.isExitByHql(roadPackBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("装车组代码【%s】已经存在请检查数据", item.getLoadingGroupNo())
.build();
}
}
@Override
protected void onUpdateBean(MesLoadingGroup item) {
// 数据校验
ValidatorBean.checkNotNull(item.getCustCode(), "客户代码不能为空");
ValidatorBean.checkNotNull(item.getCustOrganizeCode(), "客户工厂代码不能为空");
ValidatorBean.checkNotNull(item.getLoadingGroupNo(), "装车组代码不能为空");
ValidatorBean.checkNotNull(item.getLoadingGroupName(), "装车组名称不能为空");
DdlPackBean roadPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getLoadingGroupNo(), "loadingGroupNo", roadPackBean);
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", roadPackBean);
boolean flg = baseRDao.isExitByHql(roadPackBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("装车组代码【%s】已经存在请检查数据", item.getLoadingGroupNo())
.build();
}
}
} }

@ -0,0 +1,30 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingListDetailService;
import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesLoadingListDetailDao;
import cn.estsh.i3plus.ext.mes.pojo.model.MesLoadingListDetailModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingListDetail;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
public class MesLoadingListDetailService extends BaseMesService<MesLoadingListDetail> implements IMesLoadingListDetailService {
@Autowired
private IMesLoadingListDetailDao detailDao;
@Override
public ListPager<MesLoadingListDetailModel> queryLoadingListDetail(MesLoadingListDetail detail, Pager pager) {
pager = PagerHelper.getPager(pager, detailDao.queryLoadingListDetailModelCount(detail));
List<MesLoadingListDetailModel> list = detailDao.queryLoadingListDetailModel(detail, pager);
return new ListPager<>(list, pager);
}
}

@ -1,16 +1,19 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingVehiclesOrderService; import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingListService;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrder; import cn.estsh.i3plus.pojo.mes.bean.MesLoadingList;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrderDetail; import cn.estsh.i3plus.pojo.mes.bean.MesLoadingListDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.repository.MesLoadingListDetailRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupRepository; import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository; import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
@ -29,33 +32,36 @@ import java.util.List;
@Service @Service
@Slf4j @Slf4j
public class MesLoadingVehiclesOrderService extends BaseMesService<MesLoadingVehiclesOrder> implements IMesLoadingVehiclesOrderService { public class MesLoadingListService extends BaseMesService<MesLoadingList> implements IMesLoadingListService {
@Autowired @Autowired
private MesLoadingVehiclesOrderDetailService detailService; private MesLoadingListDetailService detailService;
@Autowired @Autowired
private MesPartShippingGroupRepository partShippingGroupRepository; private MesPartShippingGroupRepository partShippingGroupRepository;
@Autowired @Autowired
private MesShippingOrderManagementRepository shippingOrderManagementRepository; private MesShippingOrderManagementRepository shippingOrderManagementRepository;
@Autowired
private MesLoadingListDetailRepository listDetailRepository;
@Autowired
private ISyncFuncService syncFuncService;
@Override @Override
public MesLoadingVehiclesOrder insert(MesLoadingVehiclesOrder bean) { public MesLoadingList insert(MesLoadingList bean) {
//插入前构造并校验数据 //插入前构造并校验数据
onInsertBean(bean); onInsertBean(bean);
MesShippingOrderManagement shippingOrderManagement = bean.getShippingOrderNoList().get(0); MesShippingOrderManagement shippingOrderManagement = bean.getShippingOrderNoList().get(0);
DdlPackBean partShipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); MesPartShippingGroup partShippingGroup = partShippingGroupRepository.getById(shippingOrderManagement.getPartShippingId());
DdlPreparedPack.getStringEqualPack(shippingOrderManagement.getShippingGroupNo(), "shippingGroupNo", partShipGroupPackBean);
MesPartShippingGroup partShippingGroup = partShippingGroupRepository.getByProperty(partShipGroupPackBean);
if (StringUtils.isEmpty(partShippingGroup)) { if (StringUtils.isEmpty(partShippingGroup)) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组数据为空请检查数据", shippingOrderManagement.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组数据为空请检查数据", shippingOrderManagement.getShippingCode())
.build(); .build();
} }
@ -63,14 +69,14 @@ public class MesLoadingVehiclesOrderService extends BaseMesService<MesLoadingVeh
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组是否有装车不能为空请检查数据", shippingOrderManagement.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组是否有装车不能为空请检查数据", shippingOrderManagement.getShippingCode())
.build(); .build();
} }
if (partShippingGroup.getIsLoading() == MesCommonConstant.FALSE_INTEGER) { if (partShippingGroup.getIsLoading() == MesCommonConstant.FALSE_INTEGER) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组是否有装车配置为否则不需要生成装车单请检查数据", shippingOrderManagement.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组是否有装车配置为否则不需要生成装车单请检查数据", shippingOrderManagement.getShippingCode())
.build(); .build();
} }
@ -78,14 +84,14 @@ public class MesLoadingVehiclesOrderService extends BaseMesService<MesLoadingVeh
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组是否先装车不能为空请检查数据", shippingOrderManagement.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组是否先装车不能为空请检查数据", shippingOrderManagement.getShippingCode())
.build(); .build();
} }
if (StringUtils.isEmpty(partShippingGroup.getIsEnableMemory()) || partShippingGroup.getIsEnableMemory() == 0) { if (StringUtils.isEmpty(partShippingGroup.getIsEnableMemory()) || partShippingGroup.getIsEnableMemory() == 0) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组是否启用记忆不能为空请检查数据", shippingOrderManagement.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组是否启用记忆不能为空请检查数据", shippingOrderManagement.getShippingCode())
.build(); .build();
} }
@ -94,48 +100,52 @@ public class MesLoadingVehiclesOrderService extends BaseMesService<MesLoadingVeh
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组配置是否逆转为【是】逆转数不能小于1请检查数据", shippingOrderManagement.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组配置是否逆转为【是】逆转数不能小于1请检查数据", shippingOrderManagement.getShippingCode())
.build(); .build();
} }
//生成工单号
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.LOADING_LIST_CODE);
// genSerialNoModel.setPartNo(bean.getPartNo());
List<String> resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList();
bean.setStatus(MesExtEnumUtil.LOADING_DETAIL_ORDER_STATUS.CREATE.getValue());
bean.setOrderCode(resultList.get(0));
bean.setIsFirstInstall(partShippingGroup.getIsFirstInstall()); bean.setIsFirstInstall(partShippingGroup.getIsFirstInstall());
bean.setIsEnableMemory(partShippingGroup.getIsEnableMemory()); bean.setIsEnableMemory(partShippingGroup.getIsEnableMemory());
bean.setSeq(bean.getOrderCode());
bean.setStatus(MesExtEnumUtil.LOADING_ORDER_STATUS.CREATE.getValue());
String customerCode = bean.getShippingOrderNoList().get(0).getCustCode();
String customerName = bean.getShippingOrderNoList().get(0).getCustName();
String customerOrganizeCode = bean.getShippingOrderNoList().get(0).getCustOrganizeCode();
String customerOrganizeName = bean.getShippingOrderNoList().get(0).getCustOrganizeName();
bean.setCustCode(customerCode);
bean.setCustName(customerName);
bean.setCustOrganizeCode(customerOrganizeCode);
bean.setCustOrganizeName(customerOrganizeName);
bean = baseRDao.insert(bean);
List<MesLoadingVehiclesOrderDetail> detailList = new ArrayList<>(); List<MesLoadingListDetail> detailList = new ArrayList<>();
MesLoadingVehiclesOrder finalBean = bean; MesLoadingList finalBean = bean;
List<String> orderNoList = new ArrayList<>();
bean.getShippingOrderNoList().forEach(k -> { bean.getShippingOrderNoList().forEach(k -> {
MesLoadingVehiclesOrderDetail detail = new MesLoadingVehiclesOrderDetail(); MesLoadingListDetail detail = new MesLoadingListDetail();
k.setOrderCode(finalBean.getOrderCode());
orderNoList.add(k.getShippingCode());
BeanUtils.copyProperties(k, detail, "id"); BeanUtils.copyProperties(k, detail, "id");
detail.setLoadingOrderNo(finalBean.getLoadingOrderNo()); detail.setStatus(MesExtEnumUtil.LOADING_DETAIL_ORDER_STATUS.CREATE.getValue());
detail.setWeatherCondition(finalBean.getWeatherCondition()); detail.setPid(finalBean.getId());
detail.setShippingId(k.getId());
ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
detailList.add(detail); detailList.add(detail);
}); });
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); shippingOrderManagementRepository.saveAll(bean.getShippingOrderNoList());
DdlPreparedPack.getInPackList(orderNoList, "shippingOrderNo", orderPackBean);
List<MesShippingOrderManagement> orderManagementList = shippingOrderManagementRepository.findByHqlWhere(orderPackBean);
orderManagementList.forEach(k -> k.setLoadingOrderNo(finalBean.getLoadingOrderNo()));
String customerCode = bean.getShippingOrderNoList().get(0).getCustCode();
String customerName = bean.getShippingOrderNoList().get(0).getCustName();
String customerOrganizeCode = bean.getShippingOrderNoList().get(0).getCustOrganizeCode();
String customerOrganizeName = bean.getShippingOrderNoList().get(0).getCustomerOrganizeName();
bean.setSeq(bean.getLoadingOrderNo());
bean.setStatus(MesExtEnumUtil.LOADING_ORDER_STATUS.CREATE.getValue());
bean.setCustomerCode(customerCode);
bean.setCustomerName(customerName);
bean.setCustomerOrganizeCode(customerOrganizeCode);
bean.setCustomerOrganizeName(customerOrganizeName);
shippingOrderManagementRepository.saveAll(orderManagementList);
detailService.insertBatch(detailList); detailService.insertBatch(detailList);
bean = baseRDao.insert(bean);
return bean; return bean;
} }
@ -143,11 +153,11 @@ public class MesLoadingVehiclesOrderService extends BaseMesService<MesLoadingVeh
public void deleteWeaklyByIds(Long[] ids, String userName) { public void deleteWeaklyByIds(Long[] ids, String userName) {
for (Long id : ids) { for (Long id : ids) {
MesLoadingVehiclesOrder bean = baseRDao.getById(id); MesLoadingList bean = baseRDao.getById(id);
if (StringUtils.isEmpty(bean)) continue; if (StringUtils.isEmpty(bean)) continue;
DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getLoadingOrderNo(), "loadingOrderNo", detailPackBean); DdlPreparedPack.getNumEqualPack(bean.getId(), "pid", detailPackBean);
List<MesLoadingVehiclesOrderDetail> detailDeleteList = detailService.findAll(detailPackBean); List<MesLoadingListDetail> detailDeleteList = detailService.findAll(detailPackBean);
detailDeleteList.forEach(k -> { detailDeleteList.forEach(k -> {
k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName()); ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
@ -160,67 +170,25 @@ public class MesLoadingVehiclesOrderService extends BaseMesService<MesLoadingVeh
} }
// @Override protected void onInsertBean(MesLoadingList item) {
// public MesLoadingVehiclesOrder update(MesLoadingVehiclesOrder bean) {
// //更新前构造并校验数据
// onUpdateBean(bean);
//
// MesShippingOrderManagement shippingOrderManagement = bean.getShippingOrderNoList().get(0);
// DdlPackBean partShipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
// DdlPreparedPack.getStringEqualPack(shippingOrderManagement.getShippingGroupNo(), "shippingGroupNo", partShipGroupPackBean);
// MesPartShippingGroup partShippingGroup = partShippingGroupRepository.getByProperty(partShipGroupPackBean);
//
// if (StringUtils.isEmpty(partShippingGroup)) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("【%s】零件发运组数据为空请检查数据", shippingOrderManagement.getShippingGroupNo())
// .build();
// }
//
// if (StringUtils.isEmpty(partShippingGroup.getIsLoading()) || partShippingGroup.getIsLoading() == 0) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("【%s】零件发运组是否有装车不能为空请检查数据", shippingOrderManagement.getShippingGroupNo())
// .build();
// }
// if (partShippingGroup.getIsLoading() == MesCommonConstant.FALSE_INTEGER) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("【%s】零件发运组是否有装车配置为否则不需要生成装车单请检查数据", shippingOrderManagement.getShippingGroupNo())
// .build();
// }
//
// if (StringUtils.isEmpty(partShippingGroup.getIsFirstInstall()) || partShippingGroup.getIsFirstInstall() == 0) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("【%s】零件发运组是否先装车不能为空请检查数据", shippingOrderManagement.getShippingGroupNo())
// .build();
// }
// if (StringUtils.isEmpty(partShippingGroup.getIsEnableMemory()) || partShippingGroup.getIsEnableMemory() == 0) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("【%s】零件发运组是否启用记忆不能为空请检查数据", shippingOrderManagement.getShippingGroupNo())
// .build();
// }
//
// }
protected void onInsertBean(MesLoadingVehiclesOrder item) {
List<String> shippingOrderNoList = new ArrayList<>(); List<String> shippingOrderNoList = new ArrayList<>();
List<String> listDetailByShippingCodeList = new ArrayList<>();
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(item.getLoadingOrderNo(), "装车单号不能为空"); ValidatorBean.checkNotNull(item.getOrderCode(), "装车单号不能为空");
ValidatorBean.checkNotNull(item.getWeatherCondition(), "天气不能为空"); ValidatorBean.checkNotNull(item.getWeather(), "天气不能为空");
ValidatorBean.checkNotNull(item.getShippingOrderNoList(), "发运单不能为空"); ValidatorBean.checkNotNull(item.getShippingOrderNoList(), "发运单不能为空");
item.getShippingOrderNoList().forEach(k -> { item.getShippingOrderNoList().forEach(k -> {
if (k.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue() && k.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()) { if (k.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue() && k.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()) {
shippingOrderNoList.add(k.getShippingCode()); shippingOrderNoList.add(k.getShippingCode());
} }
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(k.getId(), "shippingId", partPackBean);
boolean flg = listDetailRepository.isExitByHql(partPackBean);
if (flg) {
listDetailByShippingCodeList.add(k.getShippingCode());
}
}); });
if (!CollectionUtils.isEmpty(shippingOrderNoList)) { if (!CollectionUtils.isEmpty(shippingOrderNoList)) {
@ -231,25 +199,31 @@ public class MesLoadingVehiclesOrderService extends BaseMesService<MesLoadingVeh
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.build(); .build();
} }
if (!CollectionUtils.isEmpty(listDetailByShippingCodeList)) {
throw ImppExceptionBuilder.newInstance()
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail(String.format("发运单【%s】生成装车单,请重新选择数据", listDetailByShippingCodeList))
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.build();
}
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getLoadingOrderNo(), "loadingOrderNo", partPackBean); DdlPreparedPack.getStringEqualPack(item.getOrderCode(), "orderCode", partPackBean);
// DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", partPackBean);
boolean flg = baseRDao.isExitByHql(partPackBean); boolean flg = baseRDao.isExitByHql(partPackBean);
if (flg) { if (flg) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("发运单【%s】已经存在请检查数据", item.getLoadingOrderNo()) .setErrorDetail("装车单【%s】已经存在请检查数据", item.getOrderCode())
.build(); .build();
} }
} }
protected void setPackQueryBean(MesLoadingVehiclesOrder bean, DdlPackBean packBean) { protected void setPackQueryBean(MesLoadingList bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getLoadingOrderNo(), "loadingOrderNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getOrderCode(), "orderCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getCustomerCode(), "customerCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCustCode(), "custCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getCustomerOrganizeCode(), "customerOrganizeCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCustOrganizeCode(), "custOrganizeCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getCarNo(), "carNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getTruckNo(), "truckNo", packBean);
} }
} }

@ -1,20 +0,0 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingVehiclesOrderDetailService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrder;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrderDetail;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class MesLoadingVehiclesOrderDetailService extends BaseMesService<MesLoadingVehiclesOrderDetail> implements IMesLoadingVehiclesOrderDetailService {
protected void setPackQueryBean(MesLoadingVehiclesOrderDetail bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getLoadingOrderNo(), "loadingOrderNo", packBean);
}
}

@ -0,0 +1,11 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesLocationConfigService;
import cn.estsh.i3plus.pojo.mes.bean.MesLocationConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class MesLocationConfigService extends BaseMesService<MesLocationConfig> implements IMesLocationConfigService {
}

@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
public class MesPartShippingGroupDetailService extends BaseMesService<MesPartShippingGroupDetail> implements IMesPartShippingGroupDetailService { public class MesPartShippingGroupDetailService extends BaseMesService<MesPartShippingGroupDetail> implements IMesPartShippingGroupDetailService {
protected void setPackQueryBean(MesPartShippingGroupDetail bean, DdlPackBean packBean) { protected void setPackQueryBean(MesPartShippingGroupDetail bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getShippingGroupNo(), "shippingGroupNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getShippingGroupCode(), "shippingGroupCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getPartNo(), "partNo", packBean);
} }
} }

@ -18,6 +18,8 @@ public class MesPartShippingGroupService extends BaseMesService<MesPartShippingG
protected void setPackQueryBean(MesPartShippingGroup bean, DdlPackBean packBean) { protected void setPackQueryBean(MesPartShippingGroup bean, DdlPackBean packBean) {
DdlPreparedPack.getStringLikerPack(bean.getShippingGroupCode(), "shippingGroupCode", packBean); DdlPreparedPack.getStringLikerPack(bean.getShippingGroupCode(), "shippingGroupCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getCustCode(), "custCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getCustOriganizeCode(), "custOriganizeCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getShippingGroupName(), "shippingGroupName", packBean); DdlPreparedPack.getStringLikerPack(bean.getShippingGroupName(), "shippingGroupName", packBean);
} }
@ -53,7 +55,7 @@ public class MesPartShippingGroupService extends BaseMesService<MesPartShippingG
ValidatorBean.checkNotNull(item.getShippingGroupCode(), "发运组代码不能为空"); ValidatorBean.checkNotNull(item.getShippingGroupCode(), "发运组代码不能为空");
DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getShippingGroupCode(), "shippingGroupNo", seriesPackBean); DdlPreparedPack.getStringEqualPack(item.getShippingGroupCode(), "shippingGroupCode", seriesPackBean);
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", seriesPackBean); DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", seriesPackBean);
boolean flg = baseRDao.isExitByHql(seriesPackBean); boolean flg = baseRDao.isExitByHql(seriesPackBean);
if (flg) { if (flg) {

@ -10,9 +10,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.repository.MesJisShippingRepository; import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -43,7 +41,13 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
private MesPartShippingGroupRepository partShippingGroupRepository; private MesPartShippingGroupRepository partShippingGroupRepository;
@Autowired @Autowired
private MesCustomerDockRepository customerDockRepository;
@Autowired
private MesJisShippingRepository jisShippingRepository; private MesJisShippingRepository jisShippingRepository;
@Autowired
private MesProduceSnRepository produceSnRepository;
@Autowired @Autowired
private IMesConfigService configService; private IMesConfigService configService;
@ -55,13 +59,16 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
protected void setPackQueryBean(MesShippingOrderManagement bean, DdlPackBean packBean) { protected void setPackQueryBean(MesShippingOrderManagement bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getShippingGroupNo(), "shippingGroupNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getShippingCode(), "shippingCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getShippingGroupCode(), "shippingGroupCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getCustCode(), "custCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCustCode(), "custCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getCustOrganizeCode(), "custOrganizeCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getCustOrganizeCode(), "custOrganizeCode", packBean);
DdlPreparedPack.getStringEqualPack(bean.getShippingGroupNo(), "shippingGroupNo", packBean); DdlPreparedPack.getNumEqualPack(bean.getStatus(), "status", packBean);
DdlPreparedPack.getInPackArray(bean.getStatusArray(), "status", packBean);
if (!StringUtils.isEmpty(bean.getReleaseTimeStart()) || !StringUtils.isEmpty(bean.getReleaseTimeEnd())) { if (!StringUtils.isEmpty(bean.getReleaseTimeStart()) || !StringUtils.isEmpty(bean.getReleaseTimeEnd())) {
DdlPreparedPack.timeBuilder(bean.getReleaseTimeStart(), bean.getReleaseTimeEnd(), "releaseTime", packBean, false); DdlPreparedPack.timeBuilder(bean.getReleaseTimeStart(), bean.getReleaseTimeEnd(), "releaseTime", packBean, false);
} }
// DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
} }
@Override @Override
@ -70,14 +77,14 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
onInsertBean(bean); onInsertBean(bean);
DdlPackBean partShipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPackBean partShipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getShippingGroupNo(), "shippingGroupNo", partShipGroupPackBean); DdlPreparedPack.getStringEqualPack(bean.getShippingGroupCode(), "shippingGroupCode", partShipGroupPackBean);
MesPartShippingGroup partShippingGroup = partShippingGroupRepository.getByProperty(partShipGroupPackBean); MesPartShippingGroup partShippingGroup = partShippingGroupRepository.getByProperty(partShipGroupPackBean);
if (StringUtils.isEmpty(partShippingGroup)) { if (StringUtils.isEmpty(partShippingGroup)) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组数据为空请检查数据", bean.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组数据为空请检查数据", bean.getShippingGroupCode())
.build(); .build();
} }
@ -85,37 +92,52 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组是否有装车不能为空请检查数据", bean.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组是否有装车不能为空请检查数据", bean.getShippingGroupCode())
.build(); .build();
} }
if (StringUtils.isEmpty(partShippingGroup.getIsFirstInstall()) || partShippingGroup.getIsFirstInstall() == 0) { if (StringUtils.isEmpty(partShippingGroup.getIsFirstInstall()) || partShippingGroup.getIsFirstInstall() == 0) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组是否先装车不能为空请检查数据", bean.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组是否先装车不能为空请检查数据", bean.getShippingGroupCode())
.build(); .build();
} }
if (StringUtils.isEmpty(partShippingGroup.getIsEnableMemory()) || partShippingGroup.getIsEnableMemory() == 0) { if (StringUtils.isEmpty(partShippingGroup.getIsEnableMemory()) || partShippingGroup.getIsEnableMemory() == 0) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组是否启用记忆不能为空请检查数据", bean.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组是否启用记忆不能为空请检查数据", bean.getShippingGroupCode())
.build();
}
DdlPackBean custDockPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getCustCode(), "custCode", custDockPackBean);
MesCustomerDock customerDock = customerDockRepository.getByProperty(custDockPackBean);
if (StringUtils.isEmpty(customerDock)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】客户零件号未维护客户道口请检查数据", bean.getCustCode())
.build(); .build();
} }
bean.setCustDockCode(customerDock.getCustDockCode());
bean.setPartShippingId(partShippingGroup.getId());
bean.setShippingType(MesExtEnumUtil.SHIPPING_ORDER_TYPE.SORT_SHIPPING.getValue());
bean.setIsLoading(partShippingGroup.getIsLoading()); bean.setIsLoading(partShippingGroup.getIsLoading());
bean.setIsFirstInstall(partShippingGroup.getIsFirstInstall()); bean.setIsFirstInstall(partShippingGroup.getIsFirstInstall());
bean.setIsEnableMemory(partShippingGroup.getIsEnableMemory()); bean.setIsEnableMemory(partShippingGroup.getIsEnableMemory());
//查询物料发运组明细数据 //查询物料发运组明细数据
DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getShippingGroupNo(), "shippingGroupNo", shipGroupPackBean); DdlPreparedPack.getStringEqualPack(bean.getShippingGroupCode(), "shippingGroupCode", shipGroupPackBean);
List<MesPartShippingGroupDetail> groupDetailList = shippingGroupDetailService.findAll(shipGroupPackBean); List<MesPartShippingGroupDetail> groupDetailList = shippingGroupDetailService.findAll(shipGroupPackBean);
if (CollectionUtils.isEmpty(groupDetailList)) { if (CollectionUtils.isEmpty(groupDetailList)) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组明细数据为空请检查数据", bean.getShippingGroupNo()) .setErrorDetail("【%s】零件发运组明细数据为空请检查数据", bean.getShippingGroupCode())
.build(); .build();
} }
@ -128,8 +150,10 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
BeanUtils.copyProperties(k, detail, "id"); BeanUtils.copyProperties(k, detail, "id");
MesPart part = partService.getPartByPartNo(k.getPartNo(), k.getOrganizeCode()); MesPart part = partService.getPartByPartNo(k.getPartNo(), k.getOrganizeCode());
detail.setPartName(part.getPartName()); detail.setPartName(part.getPartName());
detail.setUnit(part.getUnit());
detail.setCustPartNo(k.getCustPartNo()); detail.setCustPartNo(k.getCustPartNo());
detail.setPlanQty(1); detail.setPlanQty(1);
detail.setShippingId(finalBean.getId());
// detail.setActualQty(1); // detail.setActualQty(1);
detail.setShippingCode(finalBean.getShippingCode()); detail.setShippingCode(finalBean.getShippingCode());
detail.setOrganizeCode(k.getOrganizeCode()); detail.setOrganizeCode(k.getOrganizeCode());
@ -159,7 +183,61 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
} }
//判断是否修改发运组,如果不修改发运组,则不修改明细 //判断是否修改发运组,如果不修改发运组,则不修改明细
if (!bean.getShippingGroupNo().equals(originBean.getShippingGroupNo())) { if (!bean.getShippingGroupCode().equals(originBean.getShippingGroupCode())) {
DdlPackBean partShipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getShippingGroupCode(), "shippingGroupCode", partShipGroupPackBean);
MesPartShippingGroup partShippingGroup = partShippingGroupRepository.getByProperty(partShipGroupPackBean);
if (StringUtils.isEmpty(partShippingGroup)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组数据为空请检查数据", bean.getShippingGroupCode())
.build();
}
if (StringUtils.isEmpty(partShippingGroup.getIsLoading()) || partShippingGroup.getIsLoading() == 0) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组是否有装车不能为空请检查数据", bean.getShippingGroupCode())
.build();
}
if (StringUtils.isEmpty(partShippingGroup.getIsFirstInstall()) || partShippingGroup.getIsFirstInstall() == 0) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组是否先装车不能为空请检查数据", bean.getShippingGroupCode())
.build();
}
if (StringUtils.isEmpty(partShippingGroup.getIsEnableMemory()) || partShippingGroup.getIsEnableMemory() == 0) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】零件发运组是否启用记忆不能为空请检查数据", bean.getShippingGroupCode())
.build();
}
DdlPackBean custDockPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getCustCode(), "custCode", custDockPackBean);
MesCustomerDock customerDock = customerDockRepository.getByProperty(custDockPackBean);
if (StringUtils.isEmpty(customerDock)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】客户零件号未维护客户道口请检查数据", bean.getCustCode())
.build();
}
bean.setCustDockCode(customerDock.getCustDockCode());
bean.setPartShippingId(partShippingGroup.getId());
bean.setShippingType(MesExtEnumUtil.SHIPPING_ORDER_TYPE.SORT_SHIPPING.getValue());
bean.setIsLoading(partShippingGroup.getIsLoading());
bean.setIsFirstInstall(partShippingGroup.getIsFirstInstall());
bean.setIsEnableMemory(partShippingGroup.getIsEnableMemory());
DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getShippingCode(), "shippingCode", detailPackBean); DdlPreparedPack.getStringEqualPack(bean.getShippingCode(), "shippingCode", detailPackBean);
@ -170,24 +248,31 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
}); });
//查询物料发运组数据 //查询物料发运组数据
DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getShippingGroupNo(), "shippingGroupNo", shipGroupPackBean); DdlPreparedPack.getStringEqualPack(bean.getShippingGroupCode(), "shippingGroupCode", shipGroupPackBean);
List<MesPartShippingGroupDetail> shippingGroupDetailList = shippingGroupDetailService.findAll(shipGroupPackBean); List<MesPartShippingGroupDetail> shippingGroupDetailList = shippingGroupDetailService.findAll(shipGroupPackBean);
if (CollectionUtils.isEmpty(shippingGroupDetailList)) { if (CollectionUtils.isEmpty(shippingGroupDetailList)) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】发运组明细数据为空请检查数据", bean.getShippingGroupNo()) .setErrorDetail("【%s】发运组明细数据为空请检查数据", bean.getShippingGroupCode())
.build(); .build();
} }
//发运单明细 //发运单明细
List<MesShippingOrderManagementDetail> detailInsertList = new ArrayList<>(); List<MesShippingOrderManagementDetail> detailInsertList = new ArrayList<>();
shippingGroupDetailList.forEach(k -> { shippingGroupDetailList.forEach(k -> {
MesShippingOrderManagementDetail detail = new MesShippingOrderManagementDetail(); MesShippingOrderManagementDetail detail = new MesShippingOrderManagementDetail();
BeanUtils.copyProperties(k, detail, "id");
MesPart part = partService.getPartByPartNo(k.getPartNo(), k.getOrganizeCode());
detail.setPartName(part.getPartName());
detail.setUnit(part.getUnit());
detail.setCustPartNo(k.getCustPartNo());
detail.setPlanQty(1);
detail.setShippingId(originBean.getId());
detail.setShippingCode(originBean.getShippingCode());
detail.setOrganizeCode(k.getOrganizeCode()); detail.setOrganizeCode(k.getOrganizeCode());
// ConvertBean.serviceModelInitialize(detail, "LML"); detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue());
ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName()); ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName());
BeanUtils.copyProperties(k, detail, "id");
detailInsertList.add(detail); detailInsertList.add(detail);
}); });
//软删原明细数据 //软删原明细数据
@ -196,8 +281,6 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
detailService.insertBatch(detailInsertList); detailService.insertBatch(detailInsertList);
} }
onModifyBean();
// ConvertBean.serviceModelUpdate(bean, "LML");
ConvertBean.serviceModelUpdate(bean, AuthUtil.getSessionUser().getUserName()); ConvertBean.serviceModelUpdate(bean, AuthUtil.getSessionUser().getUserName());
baseRDao.update(bean); baseRDao.update(bean);
return originBean; return originBean;
@ -211,7 +294,7 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
MesShippingOrderManagement bean = baseRDao.getById(id); MesShippingOrderManagement bean = baseRDao.getById(id);
if (StringUtils.isEmpty(bean)) continue; if (StringUtils.isEmpty(bean)) continue;
DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(bean.getShippingCode(), "shippingGroupNo", detailPackBean); DdlPreparedPack.getStringEqualPack(bean.getShippingCode(), "shippingCode", detailPackBean);
List<MesShippingOrderManagementDetail> detailDeleteList = detailService.findAll(detailPackBean); List<MesShippingOrderManagementDetail> detailDeleteList = detailService.findAll(detailPackBean);
detailDeleteList.forEach(k -> { detailDeleteList.forEach(k -> {
k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
@ -232,7 +315,7 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
ValidatorBean.checkNotNull(item.getSeq(), "顺序号不能为空"); ValidatorBean.checkNotNull(item.getSeq(), "顺序号不能为空");
ValidatorBean.checkNotNull(item.getCustCode(), "客户代码不能为空"); ValidatorBean.checkNotNull(item.getCustCode(), "客户代码不能为空");
ValidatorBean.checkNotNull(item.getCustCode(), "客户工厂代码不能为空"); ValidatorBean.checkNotNull(item.getCustCode(), "客户工厂代码不能为空");
ValidatorBean.checkNotNull(item.getShippingGroupNo(), "发运组代码不能为空"); ValidatorBean.checkNotNull(item.getShippingGroupCode(), "发运组代码不能为空");
ValidatorBean.checkNotNull(item.getStatus(), "状态不能为空"); ValidatorBean.checkNotNull(item.getStatus(), "状态不能为空");
DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
@ -246,6 +329,17 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
.build(); .build();
} }
DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getSeq(), "seq", packBean);
boolean flg1 = baseRDao.isExitByHql(packBean);
if (flg1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】顺序号已经存在请检查数据", item.getSeq())
.build();
}
} }
@ -256,8 +350,32 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
ValidatorBean.checkNotNull(item.getSeq(), "顺序号不能为空"); ValidatorBean.checkNotNull(item.getSeq(), "顺序号不能为空");
ValidatorBean.checkNotNull(item.getCustCode(), "客户代码不能为空"); ValidatorBean.checkNotNull(item.getCustCode(), "客户代码不能为空");
ValidatorBean.checkNotNull(item.getCustOrganizeCode(), "客户工厂代码不能为空"); ValidatorBean.checkNotNull(item.getCustOrganizeCode(), "客户工厂代码不能为空");
ValidatorBean.checkNotNull(item.getShippingGroupNo(), "发运组代码不能为空"); ValidatorBean.checkNotNull(item.getShippingGroupCode(), "发运组代码不能为空");
ValidatorBean.checkNotNull(item.getStatus(), "状态不能为空"); ValidatorBean.checkNotNull(item.getStatus(), "状态不能为空");
DdlPackBean shipGroupPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getShippingCode(), "shippingCode", shipGroupPackBean);
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", shipGroupPackBean);
boolean flg = baseRDao.isExitByHql(shipGroupPackBean);
if (flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】发运单已经存在请检查数据", item.getShippingCode())
.build();
}
DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(item.getSeq(), "seq", packBean);
DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", packBean);
boolean flg1 = baseRDao.isExitByHql(packBean);
if (flg1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【%s】顺序号已经存在请检查数据", item.getSeq())
.build();
}
} }
@ -321,4 +439,42 @@ public class MesShippingOrderManagementService extends BaseMesService<MesShippin
jisShippingRepository.saveAll(jisShippingList); jisShippingRepository.saveAll(jisShippingList);
} }
@Override
public void saveShippingClose(MesShippingOrderManagement bean) {
MesShippingOrderManagement originBean = baseRDao.getById(bean.getId());
DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(originBean.getShippingCode(), "shippingCode", detailPackBean);
List<MesShippingOrderManagementDetail> detailDeleteList = detailService.findAll(detailPackBean);
originBean.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.CLOSE.getValue());
ConvertBean.serviceModelUpdate(originBean, AuthUtil.getSessionUser().getUserName());
//修改当前发运单明细状态
detailDeleteList.forEach(k -> {
k.setActualQty(0);
k.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.CLOSE.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
//若扫描过的条码 则恢复条码
if (!StringUtils.isEmpty(k.getBarcode())) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(k.getBarcode(), "productSn", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
MesProduceSn produceSn = produceSnRepository.getByProperty(packBean);
produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue());
ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName());
produceSnRepository.save(produceSn);
}
});
baseRDao.save(originBean);
detailService.updates(detailDeleteList);
}
} }

@ -1,18 +1,97 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi; package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.api.busi.IMesSpotCheckOrderPartService; import cn.estsh.i3plus.ext.mes.api.busi.IMesSpotCheckOrderPartService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; 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.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesSpotCheckOrderPart; import cn.estsh.i3plus.pojo.mes.bean.MesSpotCheckOrderPart;
import cn.estsh.i3plus.pojo.mes.repository.MesSpotCheckOrderRepository;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
public class MesSpotCheckOrderPartService extends BaseMesService<MesSpotCheckOrderPart> implements IMesSpotCheckOrderPartService { public class MesSpotCheckOrderPartService extends BaseMesService<MesSpotCheckOrderPart> implements IMesSpotCheckOrderPartService {
@Autowired
private MesSpotCheckOrderRepository checkOrderRepository;
protected void setPackQueryBean(MesSpotCheckOrderPart bean, DdlPackBean packBean) { protected void setPackQueryBean(MesSpotCheckOrderPart bean, DdlPackBean packBean) {
DdlPreparedPack.getNumEqualPack(bean.getSpotCheckOrderId(), "spotCheckOrderId", packBean); DdlPreparedPack.getNumEqualPack(bean.getSpotCheckOrderId(), "spotCheckOrderId", packBean);
} }
@Override
public void validateImport(List<MesSpotCheckOrderPart> beanList) {
// 数据校验
ValidatorBean.checkNotNull(beanList.get(0).getSpotCheckOrderId(), "点检单不能为空");
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(AuthUtilExt.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(beanList.get(0).getSpotCheckOrderId(), "id", orderPackBean);
boolean flg = checkOrderRepository.isExitByHql(orderPackBean);
if (!flg) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("点检单【%s】不存在请检查数据", beanList.get(0).getSpotCheckOrderId())
.build();
}
DdlPackBean packBean = DdlPackBean.getDdlPackBean(AuthUtilExt.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(beanList.get(0).getSpotCheckOrderId(), "spotCheckOrderId", packBean);
List<MesSpotCheckOrderPart> orderPartList = baseRDao.findByHqlWhere(packBean);
Map<String, List<MesSpotCheckOrderPart>> orderPartMap = orderPartList.stream().collect(Collectors.groupingBy(k -> k.getPartNo()));
List<String> partNoList = new ArrayList<>();
List<String> repeatPartNoList = new ArrayList<>();
Map<String, String> importMap = new HashMap<>();
for (MesSpotCheckOrderPart bean : beanList) {
// 数据校验
ValidatorBean.checkNotNull(bean.getSpotCheckOrderId(), "点检单不能为空");
ValidatorBean.checkNotNull(bean.getPartNo(), "零件号不能为空");
if (orderPartMap.containsKey(bean.getPartNo())) {
partNoList.add(bean.getPartNo());
}
if (importMap.containsKey(bean.getPartNo())) {
repeatPartNoList.add(bean.getPartNo());
} else {
importMap.put(bean.getPartNo(), bean.getPartNo());
}
}
if (!CollectionUtils.isEmpty(partNoList)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("点检单【%s】零件号【%s】已经存在请检查数据", beanList.get(0).getSpotCheckOrderId(), partNoList)
.build();
}
if (!CollectionUtils.isEmpty(repeatPartNoList)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("添加零件号中【%s】零件号重复请检查数据", repeatPartNoList)
.build();
}
}
} }

@ -0,0 +1,297 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel;
import cn.estsh.i3plus.mes.api.iservice.busi.IExcelImportService;
import cn.estsh.i3plus.mes.apiservice.serviceimpl.busi.CommonService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.mes.bean.MesCarSeries;
import cn.estsh.i3plus.pojo.mes.bean.MesCarSeriesModel;
import cn.estsh.i3plus.pojo.mes.bean.MesPartPtr;
import cn.estsh.i3plus.pojo.mes.model.ExcelImportErrorModel;
import cn.estsh.i3plus.pojo.mes.model.ExcelImportResultModel;
import cn.estsh.i3plus.pojo.mes.repository.MesPartPtrRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
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.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description:
* @CreateDate 2022/6/27 17:28
* @Author
*/
@Service
@Slf4j
public class MesCarSeriesExcelService implements IExcelImportService {
@Autowired
private CommonService commonService;
@Autowired
private MesPartRepository partRepository;
@Autowired
private MesPartPtrRepository partPtrRepository;
@Override
public ExcelImportResultModel insertDataByExcel(Workbook workbook, String organizeCode, String userName) {
//读取表格
ExcelImportResultModel excelImportResultModel = this.sheetExtractMesStationBom(workbook.getSheetAt(0), organizeCode, userName);
//数据入库
this.insertExcelMesPartPtr(excelImportResultModel);
return excelImportResultModel;
// return null;
}
/**
* BOM-
*
* @param sheetAt
* @param organizeCode
* @param userName
* @return
*/
private ExcelImportResultModel sheetExtractMesStationBom(Sheet sheetAt, String organizeCode, String userName) {
//从0行开始读取
int totalNumberOfRows = sheetAt.getLastRowNum() + 1;
//MesStationBom集合
List<MesPartPtr> partPtrList = new ArrayList<>();
//成功数量
Integer successRowNum = 0;
//失败数量
Integer failRowNum = 0;
//错误的行号
String errorRows = "";
//错误行信息集合
List<ExcelImportErrorModel> excelImportErrorModels = new ArrayList<>();
Map<String, String> map = new HashMap<>();
for (int i = (sheetAt.getFirstRowNum() + 1); i < totalNumberOfRows; i++) {
Row row = sheetAt.getRow(i);
//空行跳过
if (null == row) {
continue;
}
//获取总列数
Short lastCellNum = row.getLastCellNum();
if (lastCellNum > 0) {
int rowNum = i + 1; //当前行号
int errorNum = 0; //错误数量
String cellNum = ""; //错误列号
String errorInfo = ""; //错误信息
//车系代码
String carSeriesCode = row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
//车系名称
String carSeriesName = null;
try {
row.getCell(1).setCellType(CellType.STRING);
carSeriesName = row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//客户代码
String custCode = null;
try {
row.getCell(2).setCellType(CellType.STRING);
custCode = row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//客户工厂代码
String custOrganizeCode = null;
try {
row.getCell(3).setCellType(CellType.STRING);
custOrganizeCode = row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//年型
String yearModel = null;
try {
row.getCell(4).setCellType(CellType.STRING);
yearModel = row.getCell(4, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//客户车型
String custCarType = null;
try {
row.getCell(5).setCellType(CellType.STRING);
custCarType = row.getCell(5, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//车系条码
String carSeriesSn = null;
try {
row.getCell(6).setCellType(CellType.STRING);
carSeriesSn = row.getCell(6, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//零件组
String partGroup = null;
try {
row.getCell(7).setCellType(CellType.STRING);
partGroup = row.getCell(7, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//车型代码
String carModelCode = null;
try {
row.getCell(8).setCellType(CellType.STRING);
carModelCode = row.getCell(8, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//车型名称
String carModelName = null;
try {
row.getCell(9).setCellType(CellType.STRING);
carModelName = row.getCell(9, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//颜色
String carModelColor = null;
try {
row.getCell(10).setCellType(CellType.STRING);
carModelColor = row.getCell(10, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//条码参数
String snParam = null;
try {
row.getCell(11).setCellType(CellType.STRING);
snParam = row.getCell(11, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//打印参数
String printParam = null;
try {
row.getCell(12).setCellType(CellType.STRING);
printParam = row.getCell(12, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//零件号
String partNo = null;
try {
row.getCell(13).setCellType(CellType.STRING);
partNo = row.getCell(13, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//客户零件号
String custPartNo = null;
try {
row.getCell(14).setCellType(CellType.STRING);
custPartNo = row.getCell(14, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//散件类型
String loosePartType = null;
try {
row.getCell(14).setCellType(CellType.STRING);
loosePartType = row.getCell(14, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//显示顺序
String displaySeq = null;
try {
row.getCell(15).setCellType(CellType.STRING);
displaySeq = row.getCell(15, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//显示名称
String displayName = null;
try {
row.getCell(16).setCellType(CellType.STRING);
displayName = row.getCell(16, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//装饰条颜色
String trimStripColor = null;
try {
row.getCell(17).setCellType(CellType.STRING);
trimStripColor = row.getCell(17, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//装饰条颜色
String remark = null;
try {
row.getCell(18).setCellType(CellType.STRING);
remark = row.getCell(18, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//没有错误的时候封装MesStationBom
if (errorNum == 0) {
MesCarSeries carSeries = new MesCarSeries();
carSeries.setCarSeriesCode(carSeriesCode);
carSeries.setCarSeriesName(carSeriesName);
carSeries.setCustCode(custCode);
carSeries.setCustOrganizeCode(custOrganizeCode);
carSeries.setYearModel(yearModel);
carSeries.setCustCarType(custCarType);
carSeries.setCarSeriesSn(carSeriesSn);
carSeries.setPartGroup(partGroup);
carSeries.setOrganizeCode(organizeCode);
ConvertBean.serviceModelInitialize(carSeries, AuthUtil.getSessionUser().getUserName());
MesCarSeriesModel model = new MesCarSeriesModel();
model.setCarSeriesCode(carSeriesCode);
model.setCarSeriesName(carSeriesName);
model.setCarModelCode(carModelCode);
model.setCarModelName(carModelName);
model.setCarModelColor(carModelColor);
successRowNum++;
} else {
//封装错误行信息ExcelImportErrorModel
excelImportErrorModels = commonService.getExcelImportErrorModels(excelImportErrorModels, rowNum, errorNum, cellNum, errorInfo);
errorRows += rowNum + ";";
failRowNum++;
}
}
}
//校验EXCEL数据
commonService.checkExcelData(failRowNum, successRowNum, errorRows);
//封装返回结果
ExcelImportResultModel excelImportResultModel = commonService.getExcelImportResultModel(failRowNum, successRowNum, excelImportErrorModels, errorRows);
excelImportResultModel.setExcelList((failRowNum > 0) ? null : partPtrList);
return excelImportResultModel;
}
private void insertExcelMesPartPtr(ExcelImportResultModel excelImportResultModel) {
if (excelImportResultModel == null) {
return;
}
List<MesPartPtr> partPtrList = excelImportResultModel.getExcelList();
if (CollectionUtils.isEmpty(partPtrList)) {
return;
}
partPtrList.forEach(k -> {
if (StringUtils.isEmpty(k.getId())) {
partPtrRepository.insert(k);
} else {
partPtrRepository.update(k);
}
});
}
}

@ -0,0 +1,364 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel;
import cn.estsh.i3plus.mes.api.iservice.busi.IExcelImportService;
import cn.estsh.i3plus.mes.apiservice.serviceimpl.busi.CommonService;
import cn.estsh.i3plus.mes.apiservice.util.MesCommonUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModel;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerCarModelDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerOriganze;
import cn.estsh.i3plus.pojo.mes.model.ExcelImportErrorModel;
import cn.estsh.i3plus.pojo.mes.model.ExcelImportResultModel;
import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
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.HashMap;
import java.util.List;
import java.util.Map;
/**
*
*/
@Service
@Slf4j
public class MesCustomerCarModelExcelService implements IExcelImportService {
@Autowired
private CommonService commonService;
@Autowired
private MesCustomerRepository customerRepository;
@Autowired
private MesCustomerOriganizeRepository customerOriganizeRepository;
@Autowired
private MesCustomerPartRepository customerPartRepository;
@Autowired
private MesPartRepository partRepository;
@Autowired
private MesCustomerCarModelRepository customerCarModelRepository;
@Override
public ExcelImportResultModel insertDataByExcel(Workbook workbook, String organizeCode, String userName) {
//读取表格
ExcelImportResultModel excelImportResultModel = this.sheetExtractMesStationBom(workbook.getSheetAt(0), organizeCode, userName);
// //数据入库
// this.insertExcelMesItemPartErrorPrevention(excelImportResultModel);
return excelImportResultModel;
// return null;
}
/**
* BOM-
*
* @param sheetAt
* @param organizeCode
* @param userName
* @return
*/
private ExcelImportResultModel sheetExtractMesStationBom(Sheet sheetAt, String organizeCode, String userName) {
//从0行开始读取
int totalNumberOfRows = sheetAt.getLastRowNum() + 1;
//客户车型信息集合
List<MesCustomerCarModel> modelList = new ArrayList<>();
List<MesCustomerCarModelDetail> modelDetailList = new ArrayList<>();
// 查询客户信息表
Map<String, Object> customerMap;
try {
customerMap = MesCommonUtil.getCodeEntityMap(customerRepository, "custCode", organizeCode, "客户信息表");
} catch (Exception e) {
customerMap = null;
}
// 查询客户工厂信息
Map<String, Object> customerOriganizeMap;
try {
customerOriganizeMap = MesCommonUtil.getCodeEntityMap(customerOriganizeRepository, "custOrganizeCode", organizeCode, "客户工厂信息表");
} catch (Exception e) {
customerOriganizeMap = null;
}
// 查询客户零件关系
Map<String, Object> customerPartMap;
try {
customerPartMap = MesCommonUtil.getCodeEntityMap(customerPartRepository, "customerPartNo", organizeCode, "客户零件关系表");
} catch (Exception e) {
customerPartMap = null;
}
// 查询客户零件关系
Map<String, Object> partMap;
try {
partMap = MesCommonUtil.getCodeEntityMap(partRepository, "partNo", organizeCode, "物料信息表");
} catch (Exception e) {
partMap = null;
}
// //查询关键件条码校验规则表
// List<MesItemPartErrorPrevention> itemPartErrorPreventionList = itemPartErrorPreventionRepository.findByProperty(new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED},
// new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()});
// Map<String, List<MesItemPartErrorPrevention>> preventionMap =
// itemPartErrorPreventionList.stream().collect(Collectors.groupingBy(k -> k.getPreventionObjectCode() + "&" + k.getPartNo()));
//成功数量
Integer successRowNum = 0;
//失败数量
Integer failRowNum = 0;
//错误的行号
String errorRows = "";
//错误行信息集合
List<ExcelImportErrorModel> excelImportErrorModels = new ArrayList<>();
Map<String, String> map = new HashMap<>();
for (int i = (sheetAt.getFirstRowNum() + 1); i < totalNumberOfRows; i++) {
Row row = sheetAt.getRow(i);
//空行跳过
if (null == row) {
continue;
}
//获取总列数
Short lastCellNum = row.getLastCellNum();
if (lastCellNum > 0) {
int rowNum = i + 1; //当前行号
int errorNum = 0; //错误数量
String cellNum = ""; //错误列号
String errorInfo = ""; //错误信息
//客户代码
String custCode = row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
//客户工厂代码
String custOrganizeCode = null;
try {
row.getCell(1).setCellType(CellType.STRING);
custOrganizeCode = row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//车型代码
String carModelCode = null;
try {
row.getCell(2).setCellType(CellType.STRING);
carModelCode = row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//车型名称
String carModelName = null;
try {
row.getCell(3).setCellType(CellType.STRING);
carModelName = row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//客户零件号
String customerPartNo = null;
try {
row.getCell(4).setCellType(CellType.STRING);
customerPartNo = row.getCell(4, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//备注
String remark = null;
try {
row.getCell(5).setCellType(CellType.STRING);
remark = row.getCell(5, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//是否罕见车型
String isUncommon = null;
try {
row.getCell(6).setCellType(CellType.STRING);
isUncommon = row.getCell(6, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//零件号
String partNo = null;
try {
row.getCell(7).setCellType(CellType.STRING);
partNo = row.getCell(7, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//供货零件号
String supperPartNo = null;
try {
row.getCell(8).setCellType(CellType.STRING);
supperPartNo = row.getCell(8, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//供货数量
String qty = null;
try {
row.getCell(9).setCellType(CellType.STRING);
qty = row.getCell(9, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
} catch (Exception e) {
}
//校验客户代码
if (StringUtils.isEmpty(custCode)) {
errorNum++;
cellNum += "A;";
errorInfo += "第A列数据必填;";
} else {
if (CollectionUtils.isEmpty(customerMap) ||
(!CollectionUtils.isEmpty(customerMap) && !customerMap.containsKey(custCode))) {
errorNum++;
cellNum += "A;";
errorInfo += "第A列数据无效;";
}
}
//校验客户代码
if (StringUtils.isEmpty(custOrganizeCode)) {
errorNum++;
cellNum += "B;";
errorInfo += "第B列数据必填;";
} else {
if (CollectionUtils.isEmpty(customerOriganizeMap) ||
(!CollectionUtils.isEmpty(customerOriganizeMap) && !customerOriganizeMap.containsKey(custOrganizeCode))) {
errorNum++;
cellNum += "B;";
errorInfo += "第B列数据无效;";
}
}
//校验车型代码
if (StringUtils.isEmpty(carModelCode)) {
errorNum++;
cellNum += "C;";
errorInfo += "第C列数据必填;";
}
//校验车型名称
if (StringUtils.isEmpty(carModelName)) {
errorNum++;
cellNum += "D;";
errorInfo += "第D列数据必填;";
}
//校验客户零件号
if (StringUtils.isEmpty(customerPartNo)) {
errorNum++;
cellNum += "E;";
errorInfo += "第E列数据必填:";
} else {
if (CollectionUtils.isEmpty(customerPartMap) ||
(!CollectionUtils.isEmpty(customerPartMap) && !customerPartMap.containsKey(customerPartNo))) {
errorNum++;
cellNum += "E;";
errorInfo += "第E列数据无效;";
}
}
//校验客户零件号
if (StringUtils.isEmpty(partNo)) {
errorNum++;
cellNum += "G;";
errorInfo += "第G列数据必填:";
} else {
if (CollectionUtils.isEmpty(partMap) ||
(!CollectionUtils.isEmpty(partMap) && !partMap.containsKey(partNo))) {
errorNum++;
cellNum += "G;";
errorInfo += "第G列数据无效;";
}
}
//校验供货零件号
if (StringUtils.isEmpty(supperPartNo)) {
errorNum++;
cellNum += "H;";
errorInfo += "第H列数据必填:";
} else {
if (CollectionUtils.isEmpty(partMap) ||
(!CollectionUtils.isEmpty(partMap) && !partMap.containsKey(supperPartNo))) {
errorNum++;
cellNum += "H;";
errorInfo += "第H列数据无效;";
}
}
//校验客户零件号
if (StringUtils.isEmpty(qty)) {
errorNum++;
cellNum += "H;";
errorInfo += "第H列数据必填:";
} else {
//是否为数字
if (!NumberUtils.isDigits(qty)) {
errorNum++;
cellNum += "H;";
errorInfo += "第H列数据必须为数字;";
}
}
//没有错误的时候封装MesStationBom
if (errorNum == 0) {
MesCustomerCarModel model = new MesCustomerCarModel();
model.setCarModelCode(carModelCode);
model.setCarModelName(carModelName);
model.setCustCode(custCode);
model.setCustOrganizeCode(custOrganizeCode);
MesCustomerOriganze customerOriganze = (MesCustomerOriganze) customerOriganizeMap.get(custOrganizeCode);
model.setCustOrganizeName(customerOriganze.getCustOrganizeName());
model.setRemark(remark);
model.setIsUncommon(Integer.parseInt(isUncommon));
model.setOrganizeCode(organizeCode);
ConvertBean.serviceModelInitialize(model, AuthUtil.getSessionUser().getUserName());
modelList.add(model);
MesCustomerCarModelDetail modelDetail = new MesCustomerCarModelDetail();
modelDetail.setOrganizeCode(organizeCode);
modelDetail.setCustomerPartNo(customerPartNo);
modelDetail.setPartNo(partNo);
modelDetail.setSupperPartNo(supperPartNo);
modelDetail.setQty(Integer.parseInt(qty));
ConvertBean.serviceModelInitialize(modelDetail, AuthUtil.getSessionUser().getUserName());
modelDetailList.add(modelDetail);
successRowNum++;
} else {
//封装错误行信息ExcelImportErrorModel
excelImportErrorModels = commonService.getExcelImportErrorModels(excelImportErrorModels, rowNum, errorNum, cellNum, errorInfo);
errorRows += rowNum + ";";
failRowNum++;
}
}
}
//校验EXCEL数据
commonService.checkExcelData(failRowNum, successRowNum, errorRows);
//封装返回结果
ExcelImportResultModel excelImportResultModel = commonService.getExcelImportResultModel(failRowNum, successRowNum, excelImportErrorModels, errorRows);
excelImportResultModel.setExcelList((failRowNum > 0) ? null : modelList);
if (CollectionUtils.isEmpty(modelList)) {
return excelImportResultModel;
} else {
//数据入库
modelList.forEach(k -> {
if (StringUtils.isEmpty(k.getId())) {
// itemPartErrorPreventionRepository.insert(k);
} else {
// itemPartErrorPreventionRepository.update(k);
}
});
}
return excelImportResultModel;
}
}

@ -0,0 +1,156 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel;
import cn.estsh.i3plus.mes.api.iservice.busi.IExcelImportService;
import cn.estsh.i3plus.mes.apiservice.serviceimpl.busi.CommonService;
import cn.estsh.i3plus.mes.apiservice.util.MesCommonUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.mes.bean.MesPartPtr;
import cn.estsh.i3plus.pojo.mes.model.ExcelImportErrorModel;
import cn.estsh.i3plus.pojo.mes.model.ExcelImportResultModel;
import cn.estsh.i3plus.pojo.mes.repository.MesPartPtrRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesPartRepository;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
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.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description:
* @CreateDate 2022/6/27 17:28
* @Author
*/
@Service
@Slf4j
public class MesCustomerDockExcelService implements IExcelImportService {
@Autowired
private CommonService commonService;
@Autowired
private MesPartRepository partRepository;
@Autowired
private MesPartPtrRepository partPtrRepository;
@Override
public ExcelImportResultModel insertDataByExcel(Workbook workbook, String organizeCode, String userName) {
//读取表格
ExcelImportResultModel excelImportResultModel = this.sheetExtractMesStationBom(workbook.getSheetAt(0), organizeCode, userName);
//数据入库
this.insertExcelMesPartPtr(excelImportResultModel);
return excelImportResultModel;
// return null;
}
/**
* BOM-
*
* @param sheetAt
* @param organizeCode
* @param userName
* @return
*/
private ExcelImportResultModel sheetExtractMesStationBom(Sheet sheetAt, String organizeCode, String userName) {
//从0行开始读取
int totalNumberOfRows = sheetAt.getLastRowNum() + 1;
//MesStationBom集合
List<MesPartPtr> partPtrList = new ArrayList<>();
//成功数量
Integer successRowNum = 0;
//失败数量
Integer failRowNum = 0;
//错误的行号
String errorRows = "";
//错误行信息集合
List<ExcelImportErrorModel> excelImportErrorModels = new ArrayList<>();
// 查询物料表
Map<String, Object> partCodeEntityMap;
try {
partCodeEntityMap = MesCommonUtil.getCodeEntityMap(partRepository, "partNo", organizeCode, "物料表");
} catch (Exception e) {
partCodeEntityMap = null;
}
// //查询关键件条码校验规则表
// List<MesPartPtr> partPtrList = partPtrRepository.findByProperty(new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED},
// new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()});
// Map<String, List<MesPartPtr>> preventionMap =
// partPtrList.stream().collect(Collectors.groupingBy(k -> k.getPreventionObjectCode() + "&" + k.getPartNo()));
Map<String, String> map = new HashMap<>();
for (int i = (sheetAt.getFirstRowNum() + 1); i < totalNumberOfRows; i++) {
Row row = sheetAt.getRow(i);
//空行跳过
if (null == row) {
continue;
}
//获取总列数
Short lastCellNum = row.getLastCellNum();
if (lastCellNum > 0) {
int rowNum = i + 1; //当前行号
int errorNum = 0; //错误数量
String cellNum = ""; //错误列号
String errorInfo = ""; //错误信息
//产线编号
String workCenterCode = row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue().trim();
//没有错误的时候封装MesStationBom
if (errorNum == 0) {
successRowNum++;
} else {
//封装错误行信息ExcelImportErrorModel
excelImportErrorModels = commonService.getExcelImportErrorModels(excelImportErrorModels, rowNum, errorNum, cellNum, errorInfo);
errorRows += rowNum + ";";
failRowNum++;
}
}
}
//校验EXCEL数据
commonService.checkExcelData(failRowNum, successRowNum, errorRows);
//封装返回结果
ExcelImportResultModel excelImportResultModel = commonService.getExcelImportResultModel(failRowNum, successRowNum, excelImportErrorModels, errorRows);
excelImportResultModel.setExcelList((failRowNum > 0) ? null : partPtrList);
return excelImportResultModel;
}
private void insertExcelMesPartPtr(ExcelImportResultModel excelImportResultModel) {
if (excelImportResultModel == null) {
return;
}
List<MesPartPtr> partPtrList = excelImportResultModel.getExcelList();
if (CollectionUtils.isEmpty(partPtrList)) {
return;
}
partPtrList.forEach(k -> {
if (StringUtils.isEmpty(k.getId())) {
partPtrRepository.insert(k);
} else {
partPtrRepository.update(k);
}
});
}
}

@ -31,9 +31,7 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* @Description: *
* @CreateDate 2022/6/27 17:28
* @Author
*/ */
@Service @Service
@Slf4j @Slf4j

@ -30,6 +30,9 @@ public class MesCommonConstant {
public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT"; public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT";
//报工条码规则 //报工条码规则
public static final String REPORT_SN = "REPORT_SN"; public static final String REPORT_SN = "REPORT_SN";
//装车单号
public static final String LOADING_LIST_CODE = "LOADING_LIST_CODE";
//CCSC生成任务号 //CCSC生成任务号
public static final String CCSC_TASK_NO = "CCSC_TASK_NO"; public static final String CCSC_TASK_NO = "CCSC_TASK_NO";

@ -0,0 +1,67 @@
package cn.estsh.i3plus.ext.mes.pojo.model;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@Data
public class MesLoadingListDetailModel {
@ApiParam("装车单号")
private String orderCode;
@ApiParam("客户代码")
private String custCode;
@ApiParam("客户名称")
private String custName;
@ApiParam("客户工厂代码")
private String custOrganizeCode;
@ApiParam("客户工厂名称")
private String custOrganizeName;
@ApiParam("发运组代码")
private String shippingGroupCode;
@ApiParam("发运组代码")
private String shippingGroupName;
@ApiParam("状态")
private Integer status;
@ApiParam("车牌号")
private String truckNo;
@ApiParam("天气情况")
private Integer weather;
@ApiParam("发运单号")
private String shippingCode;
@ApiParam("开始扫描时间")
private String startScanTime;
@ApiParam("结束扫描时间")
private String endScanTime;
@ApiParam("发运状态")
private Integer shippingStatus;
@ApiParam("创建用户")
public String createUser;
@ApiParam("创建日期")
public String createDatetime;
@ApiParam("修改人")
public String modifyUser;
@ApiParam("修改日期")
public String modifyDatetime;
}

@ -25,5 +25,4 @@ public class MesShippingOrderManagementDetailModel {
@ApiParam("计量单位") @ApiParam("计量单位")
private String unit; private String unit;
} }

Loading…
Cancel
Save