diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckPartService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckPartService.java new file mode 100644 index 0000000..0c8e7c6 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckPartService.java @@ -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 { + + +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListDetailService.java new file mode 100644 index 0000000..531a0f2 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListDetailService.java @@ -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 { + + ListPager queryLoadingListDetail(MesLoadingListDetail detail, Pager pager); + +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java new file mode 100644 index 0000000..d7fe246 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java @@ -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 { + + +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingVehiclesOrderDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingVehiclesOrderDetailService.java deleted file mode 100644 index e692961..0000000 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingVehiclesOrderDetailService.java +++ /dev/null @@ -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 { - - -} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingVehiclesOrderService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingVehiclesOrderService.java deleted file mode 100644 index e5604db..0000000 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingVehiclesOrderService.java +++ /dev/null @@ -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 { - - -} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLocationConfigService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLocationConfigService.java new file mode 100644 index 0000000..7f970c1 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLocationConfigService.java @@ -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 { + + +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java index 704737b..9f4b562 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementDetailService.java @@ -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.mes.bean.MesShippingOrderManagementDetail; -import java.util.List; - /** * @Description: * @CreateDate 2024/04/16 diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementService.java index aa64eb0..9771202 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesShippingOrderManagementService.java @@ -1,7 +1,6 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; /** @@ -14,5 +13,8 @@ public interface IMesShippingOrderManagementService extends IBaseMesService extends BaseControll } } + @PostMapping(value = "/insert-batch") + @ApiOperation(value = "批量新增信息") + public ResultBean insertBatch(@RequestBody List 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") @ApiOperation(value = "修改信息", notes = "修改信息") public ResultBean update(@RequestBody T bean) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCraftRouteDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCraftRouteDetailController.java index d112498..d9bf974 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCraftRouteDetailController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCraftRouteDetailController.java @@ -25,19 +25,19 @@ public class MesCraftRouteDetailController extends BaseMesController mesCraftRouteDetailList) { - try { - mesCraftRouteDetailService.insertMesCraftRouteDetailBatch(mesCraftRouteDetailList); - 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 = "/insert-batch") +// @ApiOperation(value = "批量新增") +// public ResultBean insertMesCraftRouteDetailBatch(@RequestBody List mesCraftRouteDetailList) { +// try { +// mesCraftRouteDetailService.insertMesCraftRouteDetailBatch(mesCraftRouteDetailList); +// 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-batch") @ApiOperation(value = "批量修改") diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentSpotCheckPartController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentSpotCheckPartController.java new file mode 100644 index 0000000..a79dd77 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentSpotCheckPartController.java @@ -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{ +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingVehiclesOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java similarity index 65% rename from modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingVehiclesOrderController.java rename to modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java index 813a7c2..802a400 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingVehiclesOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java @@ -1,8 +1,7 @@ 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.MesLoadingVehiclesOrder; -import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement; +import cn.estsh.i3plus.pojo.mes.bean.MesLoadingList; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -11,7 +10,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesLoadingVehiclesOrder") -public class MesLoadingVehiclesOrderController extends BaseMesController { +public class MesLoadingListController extends BaseMesController { } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListDetailController.java new file mode 100644 index 0000000..5295ab7 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListDetailController.java @@ -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 { + + + @Autowired + private IMesLoadingListDetailService detailService; + + @PostMapping(value = "/query-Detail") + @ApiOperation(value = "查询装车单明细") + public ResultBean getLoadingListDetail(MesLoadingListDetail detail, Pager pager) { + try { + + detail.setOrganizeCode(AuthUtil.getOrganizeCode()); + ListPager 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); + } + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingVehiclesOrderDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingVehiclesOrderDetailController.java deleted file mode 100644 index 1ff4968..0000000 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingVehiclesOrderDetailController.java +++ /dev/null @@ -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 { - - -} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLocationConfigController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLocationConfigController.java new file mode 100644 index 0000000..aaabcdb --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLocationConfigController.java @@ -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 { + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementController.java index 8292926..1505204 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesShippingOrderManagementController.java @@ -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.apiservice.config.AuthUtilExt; 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.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; 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; @@ -66,4 +66,37 @@ public class MesShippingOrderManagementController extends BaseMesController saveShippingClose(@RequestBody List beanList) { + try { + +// List 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); + } + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesLoadingListDetailDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesLoadingListDetailDao.java new file mode 100644 index 0000000..156ad5a --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesLoadingListDetailDao.java @@ -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 queryLoadingListDetailModel(MesLoadingListDetail detail, Pager pager); + + @ApiOperation(value = "分页查询装车单明细", notes = "分页查询装车单明细") + int queryLoadingListDetailModelCount(MesLoadingListDetail detail); +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesLoadingListDetailDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesLoadingListDetailDaoImpl.java new file mode 100644 index 0000000..18413d0 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesLoadingListDetailDaoImpl.java @@ -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 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 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(); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/BaseMesService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/BaseMesService.java index 5bcfaeb..b4c2450 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/BaseMesService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/BaseMesService.java @@ -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.enumutil.CommonEnumUtil; 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.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; @@ -52,6 +53,7 @@ public abstract class BaseMesService implements IBaseMesServ @Override public ListPager queryPager(T bean, Pager pager) { 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); pager = PagerHelper.getPager(pager, baseRDao.findByHqlWhereCount(packBean)); List list = baseRDao.findByHqlWherePage(packBean, pager); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/EquipmentExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/EquipmentExtService.java index fb399a9..dab9a9c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/EquipmentExtService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/EquipmentExtService.java @@ -48,9 +48,9 @@ public class EquipmentExtService implements IEquipmentExtService { pager = PagerHelper.getPager(pager, equipmentDao.queryMesEquipmentByPagerOrgCount(mesEquipment)); List equipmentModels = equipmentDao.queryMesEquipmentByPagerOrg(mesEquipment, pager); for (MesEquipmentModel equipmentModel : equipmentModels) { - if(equipmentModel.getStatus() != null){ - equipmentModel.setStatusName(LocaleUtils.getLocaleRes(equStatusEnumMap.get(equipmentModel.getStatus().toString()))); - } +// if(equipmentModel.getStatus() != null){ +// equipmentModel.setStatusName(LocaleUtils.getLocaleRes(equStatusEnumMap.get(equipmentModel.getStatus().toString()))); +// } } return new ListPager(equipmentModels, pager); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerDockService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerDockService.java index e1a384a..1569506 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerDockService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerDockService.java @@ -11,6 +11,8 @@ import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.List; + @Service @Slf4j public class MesCustomerDockService extends BaseMesService implements IMesCustomerDockService { @@ -58,4 +60,27 @@ public class MesCustomerDockService extends BaseMesService impl DdlPreparedPack.getNumEqualPack(bean.getCustDockType(), "custDockType", packBean); } + @Override + public void validateImport(List 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()); + } + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDefectWarnConfigService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDefectWarnConfigService.java index 5adb4f1..923a83d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDefectWarnConfigService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDefectWarnConfigService.java @@ -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.util.MesExtConstWords; 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.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesDefectType; import cn.estsh.i3plus.pojo.mes.bean.MesDefectWarnConfig; import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.repository.MesDefectTypeRepository; 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 lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -39,19 +42,63 @@ public class MesDefectWarnConfigService extends BaseMesService 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); + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java new file mode 100644 index 0000000..7fb131e --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckPartService.java @@ -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 implements IMesEquipmentSpotCheckPartService { + + + protected void setPackQueryBean(MesEquipmentSpotCheckPart bean, DdlPackBean packBean) { + DdlPreparedPack.getNumEqualPack(bean.getPid(), "pid", packBean); + DdlPreparedPack.getStringEqualPack(bean.getPartNo(), "partNo", packBean); + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingGroupDetailServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingGroupDetailServiceImpl.java index 795b601..1c9f0fc 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingGroupDetailServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingGroupDetailServiceImpl.java @@ -1,9 +1,13 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; 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.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; 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 org.springframework.stereotype.Service; @@ -20,7 +24,46 @@ public class MesLoadingGroupDetailServiceImpl extends BaseMesService protected void setPackQueryBean(MesLoadingGroup bean, DdlPackBean packBean) { DdlPreparedPack.getStringEqualPack(bean.getLoadingGroupNo(), "loadingGroupNo", 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); } + @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(); + } + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListDetailService.java new file mode 100644 index 0000000..57be2a5 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListDetailService.java @@ -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 implements IMesLoadingListDetailService { + + @Autowired + private IMesLoadingListDetailDao detailDao; + + @Override + public ListPager queryLoadingListDetail(MesLoadingListDetail detail, Pager pager) { + + pager = PagerHelper.getPager(pager, detailDao.queryLoadingListDetailModelCount(detail)); + List list = detailDao.queryLoadingListDetailModel(detail, pager); + return new ListPager<>(list, pager); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingVehiclesOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java similarity index 53% rename from modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingVehiclesOrderService.java rename to modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java index 34e62f7..ce72cf9 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingVehiclesOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java @@ -1,16 +1,19 @@ 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.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrder; -import cn.estsh.i3plus.pojo.mes.bean.MesLoadingVehiclesOrderDetail; +import cn.estsh.i3plus.pojo.mes.bean.MesLoadingList; +import cn.estsh.i3plus.pojo.mes.bean.MesLoadingListDetail; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; 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.MesShippingOrderManagementRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -29,33 +32,36 @@ import java.util.List; @Service @Slf4j -public class MesLoadingVehiclesOrderService extends BaseMesService implements IMesLoadingVehiclesOrderService { +public class MesLoadingListService extends BaseMesService implements IMesLoadingListService { @Autowired - private MesLoadingVehiclesOrderDetailService detailService; + private MesLoadingListDetailService detailService; @Autowired private MesPartShippingGroupRepository partShippingGroupRepository; @Autowired private MesShippingOrderManagementRepository shippingOrderManagementRepository; + @Autowired + private MesLoadingListDetailRepository listDetailRepository; + + @Autowired + private ISyncFuncService syncFuncService; @Override - public MesLoadingVehiclesOrder insert(MesLoadingVehiclesOrder bean) { + public MesLoadingList insert(MesLoadingList bean) { //插入前构造并校验数据 onInsertBean(bean); MesShippingOrderManagement shippingOrderManagement = bean.getShippingOrderNoList().get(0); - DdlPackBean partShipGroupPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(shippingOrderManagement.getShippingGroupNo(), "shippingGroupNo", partShipGroupPackBean); - MesPartShippingGroup partShippingGroup = partShippingGroupRepository.getByProperty(partShipGroupPackBean); + MesPartShippingGroup partShippingGroup = partShippingGroupRepository.getById(shippingOrderManagement.getPartShippingId()); if (StringUtils.isEmpty(partShippingGroup)) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("【%s】零件发运组数据为空,请检查数据", shippingOrderManagement.getShippingGroupNo()) + .setErrorDetail("【%s】零件发运组数据为空,请检查数据", shippingOrderManagement.getShippingCode()) .build(); } @@ -63,14 +69,14 @@ public class MesLoadingVehiclesOrderService extends BaseMesService 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.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 detailList = new ArrayList<>(); - MesLoadingVehiclesOrder finalBean = bean; + List detailList = new ArrayList<>(); + MesLoadingList finalBean = bean; - List orderNoList = new ArrayList<>(); 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"); - detail.setLoadingOrderNo(finalBean.getLoadingOrderNo()); - detail.setWeatherCondition(finalBean.getWeatherCondition()); + detail.setStatus(MesExtEnumUtil.LOADING_DETAIL_ORDER_STATUS.CREATE.getValue()); + detail.setPid(finalBean.getId()); + detail.setShippingId(k.getId()); + ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName()); + ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName()); detailList.add(detail); }); - DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); - DdlPreparedPack.getInPackList(orderNoList, "shippingOrderNo", orderPackBean); - List 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); + shippingOrderManagementRepository.saveAll(bean.getShippingOrderNoList()); detailService.insertBatch(detailList); - bean = baseRDao.insert(bean); + return bean; } @@ -143,11 +153,11 @@ public class MesLoadingVehiclesOrderService extends BaseMesService detailDeleteList = detailService.findAll(detailPackBean); + DdlPreparedPack.getNumEqualPack(bean.getId(), "pid", detailPackBean); + List detailDeleteList = detailService.findAll(detailPackBean); detailDeleteList.forEach(k -> { k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName()); @@ -160,67 +170,25 @@ public class MesLoadingVehiclesOrderService extends BaseMesService shippingOrderNoList = new ArrayList<>(); + List listDetailByShippingCodeList = new ArrayList<>(); // 数据校验 - ValidatorBean.checkNotNull(item.getLoadingOrderNo(), "装车单号不能为空"); - ValidatorBean.checkNotNull(item.getWeatherCondition(), "天气不能为空"); + ValidatorBean.checkNotNull(item.getOrderCode(), "装车单号不能为空"); + ValidatorBean.checkNotNull(item.getWeather(), "天气不能为空"); ValidatorBean.checkNotNull(item.getShippingOrderNoList(), "发运单不能为空"); item.getShippingOrderNoList().forEach(k -> { if (k.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue() && k.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()) { 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)) { @@ -231,25 +199,31 @@ public class MesLoadingVehiclesOrderService extends BaseMesService implements IMesLoadingVehiclesOrderDetailService { - - - protected void setPackQueryBean(MesLoadingVehiclesOrderDetail bean, DdlPackBean packBean) { - DdlPreparedPack.getStringEqualPack(bean.getLoadingOrderNo(), "loadingOrderNo", packBean); - } - -} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLocationConfigService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLocationConfigService.java new file mode 100644 index 0000000..7fd9160 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLocationConfigService.java @@ -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 implements IMesLocationConfigService { +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartShippingGroupDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartShippingGroupDetailService.java index 5c5269c..ae811a6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartShippingGroupDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartShippingGroupDetailService.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; public class MesPartShippingGroupDetailService extends BaseMesService implements IMesPartShippingGroupDetailService { 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); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartShippingGroupService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartShippingGroupService.java index fbe90db..270a02a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartShippingGroupService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartShippingGroupService.java @@ -18,6 +18,8 @@ public class MesPartShippingGroupService extends BaseMesService groupDetailList = shippingGroupDetailService.findAll(shipGroupPackBean); if (CollectionUtils.isEmpty(groupDetailList)) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("【%s】零件发运组明细数据为空,请检查数据", bean.getShippingGroupNo()) + .setErrorDetail("【%s】零件发运组明细数据为空,请检查数据", bean.getShippingGroupCode()) .build(); } @@ -128,8 +150,10 @@ public class MesShippingOrderManagementService extends BaseMesService shippingGroupDetailList = shippingGroupDetailService.findAll(shipGroupPackBean); if (CollectionUtils.isEmpty(shippingGroupDetailList)) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("【%s】发运组明细数据为空,请检查数据", bean.getShippingGroupNo()) + .setErrorDetail("【%s】发运组明细数据为空,请检查数据", bean.getShippingGroupCode()) .build(); } //发运单明细 List detailInsertList = new ArrayList<>(); shippingGroupDetailList.forEach(k -> { 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()); -// ConvertBean.serviceModelInitialize(detail, "LML"); + detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue()); + ConvertBean.serviceModelInitialize(detail, AuthUtil.getSessionUser().getUserName()); - BeanUtils.copyProperties(k, detail, "id"); detailInsertList.add(detail); }); //软删原明细数据 @@ -196,8 +281,6 @@ public class MesShippingOrderManagementService extends BaseMesService detailDeleteList = detailService.findAll(detailPackBean); detailDeleteList.forEach(k -> { k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); @@ -232,7 +315,7 @@ public class MesShippingOrderManagementService extends BaseMesService 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); + + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderPartService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderPartService.java index 8c9056d..9ae6a04 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderPartService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderPartService.java @@ -1,18 +1,97 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi; 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.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.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 org.springframework.beans.factory.annotation.Autowired; 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 @Slf4j public class MesSpotCheckOrderPartService extends BaseMesService implements IMesSpotCheckOrderPartService { + @Autowired + private MesSpotCheckOrderRepository checkOrderRepository; + protected void setPackQueryBean(MesSpotCheckOrderPart bean, DdlPackBean packBean) { DdlPreparedPack.getNumEqualPack(bean.getSpotCheckOrderId(), "spotCheckOrderId", packBean); } + + @Override + public void validateImport(List 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 orderPartList = baseRDao.findByHqlWhere(packBean); + + Map> orderPartMap = orderPartList.stream().collect(Collectors.groupingBy(k -> k.getPartNo())); + + List partNoList = new ArrayList<>(); + List repeatPartNoList = new ArrayList<>(); + Map 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(); + } + + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesCarSeriesExcelService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesCarSeriesExcelService.java new file mode 100644 index 0000000..4d4e518 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesCarSeriesExcelService.java @@ -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 partPtrList = new ArrayList<>(); + + //成功数量 + Integer successRowNum = 0; + //失败数量 + Integer failRowNum = 0; + //错误的行号 + String errorRows = ""; + + //错误行信息集合 + List excelImportErrorModels = new ArrayList<>(); + + Map 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 partPtrList = excelImportResultModel.getExcelList(); + if (CollectionUtils.isEmpty(partPtrList)) { + return; + } + + partPtrList.forEach(k -> { + if (StringUtils.isEmpty(k.getId())) { + partPtrRepository.insert(k); + } else { + partPtrRepository.update(k); + } + }); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesCustomerCarModelExcelService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesCustomerCarModelExcelService.java new file mode 100644 index 0000000..c2391f7 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesCustomerCarModelExcelService.java @@ -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 modelList = new ArrayList<>(); + List modelDetailList = new ArrayList<>(); + + // 查询客户信息表 + Map customerMap; + try { + customerMap = MesCommonUtil.getCodeEntityMap(customerRepository, "custCode", organizeCode, "客户信息表"); + } catch (Exception e) { + customerMap = null; + } + // 查询客户工厂信息 + Map customerOriganizeMap; + try { + customerOriganizeMap = MesCommonUtil.getCodeEntityMap(customerOriganizeRepository, "custOrganizeCode", organizeCode, "客户工厂信息表"); + } catch (Exception e) { + customerOriganizeMap = null; + } + // 查询客户零件关系 + Map customerPartMap; + try { + customerPartMap = MesCommonUtil.getCodeEntityMap(customerPartRepository, "customerPartNo", organizeCode, "客户零件关系表"); + } catch (Exception e) { + customerPartMap = null; + } + // 查询客户零件关系 + Map partMap; + try { + partMap = MesCommonUtil.getCodeEntityMap(partRepository, "partNo", organizeCode, "物料信息表"); + } catch (Exception e) { + partMap = null; + } + +// //查询关键件条码校验规则表 +// List itemPartErrorPreventionList = itemPartErrorPreventionRepository.findByProperty(new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED}, +// new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()}); +// Map> preventionMap = +// itemPartErrorPreventionList.stream().collect(Collectors.groupingBy(k -> k.getPreventionObjectCode() + "&" + k.getPartNo())); + + //成功数量 + Integer successRowNum = 0; + //失败数量 + Integer failRowNum = 0; + //错误的行号 + String errorRows = ""; + + //错误行信息集合 + List excelImportErrorModels = new ArrayList<>(); + + + Map 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; + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesCustomerDockExcelService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesCustomerDockExcelService.java new file mode 100644 index 0000000..5c81339 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesCustomerDockExcelService.java @@ -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 partPtrList = new ArrayList<>(); + + //成功数量 + Integer successRowNum = 0; + //失败数量 + Integer failRowNum = 0; + //错误的行号 + String errorRows = ""; + + //错误行信息集合 + List excelImportErrorModels = new ArrayList<>(); + + // 查询物料表 + Map partCodeEntityMap; + try { + partCodeEntityMap = MesCommonUtil.getCodeEntityMap(partRepository, "partNo", organizeCode, "物料表"); + } catch (Exception e) { + partCodeEntityMap = null; + } + +// //查询关键件条码校验规则表 +// List partPtrList = partPtrRepository.findByProperty(new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED}, +// new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()}); +// Map> preventionMap = +// partPtrList.stream().collect(Collectors.groupingBy(k -> k.getPreventionObjectCode() + "&" + k.getPartNo())); + + + Map 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 partPtrList = excelImportResultModel.getExcelList(); + if (CollectionUtils.isEmpty(partPtrList)) { + return; + } + + partPtrList.forEach(k -> { + if (StringUtils.isEmpty(k.getId())) { + partPtrRepository.insert(k); + } else { + partPtrRepository.update(k); + } + }); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesItemPartErrorPreventionExcelService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesItemPartErrorPreventionExcelService.java index d95bd07..c190b86 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesItemPartErrorPreventionExcelService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/MesItemPartErrorPreventionExcelService.java @@ -31,9 +31,7 @@ import java.util.*; import java.util.stream.Collectors; /** - * @Description: - * @CreateDate 2022/6/27 17:28 - * @Author 尹肖 + * 原材料防错,支持编辑 */ @Service @Slf4j diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/constant/MesCommonConstant.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/constant/MesCommonConstant.java index b39ef95..15751c1 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/constant/MesCommonConstant.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/constant/MesCommonConstant.java @@ -30,6 +30,9 @@ public class MesCommonConstant { public static final String ORDER_NO_JIS_SORT = "ORDER_NO_JIS_SORT"; //报工条码规则 public static final String REPORT_SN = "REPORT_SN"; + //装车单号 + public static final String LOADING_LIST_CODE = "LOADING_LIST_CODE"; + //CCSC生成任务号 public static final String CCSC_TASK_NO = "CCSC_TASK_NO"; diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesLoadingListDetailModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesLoadingListDetailModel.java new file mode 100644 index 0000000..12c4c1b --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesLoadingListDetailModel.java @@ -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; + +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesShippingOrderManagementDetailModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesShippingOrderManagementDetailModel.java index 366ac88..f135343 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesShippingOrderManagementDetailModel.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/MesShippingOrderManagementDetailModel.java @@ -25,5 +25,4 @@ public class MesShippingOrderManagementDetailModel { @ApiParam("计量单位") private String unit; - }