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 new file mode 100644 index 0000000..e692961 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingVehiclesOrderDetailService.java @@ -0,0 +1,13 @@ +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 new file mode 100644 index 0000000..e5604db --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingVehiclesOrderService.java @@ -0,0 +1,13 @@ +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/IMesWorkOrderLogService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderLogService.java new file mode 100644 index 0000000..8e2e533 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderLogService.java @@ -0,0 +1,14 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesShippingOrderManagement; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog; + +/** + * @Description: + * @CreateDate 2024/04/16 + * @Author mingliang.li + */ +public interface IMesWorkOrderLogService extends IBaseMesService { + + +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java new file mode 100644 index 0000000..d205ccb --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java @@ -0,0 +1,14 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog; + +/** + * @Description: + * @CreateDate 2024/04/16 + * @Author mingliang.li + */ +public interface IMesWorkOrderService extends IBaseMesService { + + +} 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/MesLoadingVehiclesOrderController.java new file mode 100644 index 0000000..813a7c2 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingVehiclesOrderController.java @@ -0,0 +1,17 @@ +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 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 + "/mesLoadingVehiclesOrder") + +public class MesLoadingVehiclesOrderController extends BaseMesController { + + +} 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 new file mode 100644 index 0000000..10fcc29 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingVehiclesOrderDetailController.java @@ -0,0 +1,16 @@ +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/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java new file mode 100644 index 0000000..2a6f1f9 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -0,0 +1,17 @@ +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 cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +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 + "/mesWorkOrder") + +public class MesWorkOrderController extends BaseMesController { + + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingVehiclesOrderDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingVehiclesOrderDetailService.java new file mode 100644 index 0000000..4620e98 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingVehiclesOrderDetailService.java @@ -0,0 +1,12 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingVehiclesOrderDetailService; +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 implements IMesLoadingVehiclesOrderDetailService { + +} 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/MesLoadingVehiclesOrderService.java new file mode 100644 index 0000000..76ccbd3 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingVehiclesOrderService.java @@ -0,0 +1,113 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingVehiclesOrderService; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtEnumUtil; +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.impp.framework.boot.auth.AuthUtil; +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.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +@Service +@Slf4j +public class MesLoadingVehiclesOrderService extends BaseMesService implements IMesLoadingVehiclesOrderService { + + + @Autowired + private MesLoadingVehiclesOrderDetailService detailService; + + @Override + public MesLoadingVehiclesOrder insert(MesLoadingVehiclesOrder bean) { + //插入前构造并校验数据 + onInsertBean(bean); + + List detailList = new ArrayList<>(); + MesLoadingVehiclesOrder finalBean = bean; + bean.getShippingOrderNoList().forEach(k -> { + MesLoadingVehiclesOrderDetail detail = new MesLoadingVehiclesOrderDetail(); + + BeanUtils.copyProperties(k, detail, "id"); + detail.setShippingOrderNo(finalBean.getLoadingOrderNo()); + detail.setWeatherCondition(finalBean.getWeatherCondition()); + detailList.add(detail); + }); + String customerCode = bean.getShippingOrderNoList().get(0).getCustomerCode(); + String customerName = bean.getShippingOrderNoList().get(0).getCustomerName(); + String customerOrganizeCode = bean.getShippingOrderNoList().get(0).getCustomerOrganizeCode(); + String customerOrganizeName = bean.getShippingOrderNoList().get(0).getCustomerOrganizeName(); + bean.setCustomerCode(customerCode); + bean.setCustomerName(customerName); + bean.setCustomerOrganizeCode(customerOrganizeCode); + bean.setCustomerOrganizeName(customerOrganizeName); + //TODO 状态待确定 +// bean.setStatus(MesExtEnumUtil.); + detailService.insertBatch(detailList); + bean = baseRDao.insert(bean); + return bean; + } + + @Override + public void deleteWeaklyByIds(Long[] ids, String userName) { + + for (Long id : ids) { + MesLoadingVehiclesOrder bean = baseRDao.getById(id); + if (StringUtils.isEmpty(bean)) continue; + DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(bean.getLoadingOrderNo(), "loadingOrderNo", detailPackBean); + List detailDeleteList = detailService.findAll(detailPackBean); + detailDeleteList.forEach(k -> { + k.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + ConvertBean.serviceModelUpdate(k, AuthUtil.getSessionUser().getUserName()); + }); + bean.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + ConvertBean.serviceModelUpdate(bean, AuthUtil.getSessionUser().getUserName()); + baseRDao.update(bean); + detailService.updates(detailDeleteList); + } + } + + protected void onInsertBean(MesLoadingVehiclesOrder item) { + + List shippingOrderNoList = new ArrayList<>(); + // 数据校验 + ValidatorBean.checkNotNull(item.getLoadingOrderNo(), "装车单号不能为空"); + ValidatorBean.checkNotNull(item.getWeatherCondition(), "天气不能为空"); + 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.getShippingOrderNo()); + } + }); + + if (!CollectionUtils.isEmpty(shippingOrderNoList)) { + throw ImppExceptionBuilder.newInstance() + .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) + .setErrorDetail(String.format("发运单【%s】状态不是【%s】或【%s】,请重新选择数据", shippingOrderNoList, MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue(), + MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue())) + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .build(); + } + + } + + protected void setPackQueryBean(MesLoadingVehiclesOrder bean, DdlPackBean packBean) { + DdlPreparedPack.getStringEqualPack(bean.getLoadingOrderNo(), "loadingOrderNo", packBean); + DdlPreparedPack.getStringEqualPack(bean.getCustomerCode(), "customerCode", packBean); + DdlPreparedPack.getStringEqualPack(bean.getCustomerOrganizeCode(), "customerOrganizeCode", packBean); + DdlPreparedPack.getStringEqualPack(bean.getCarNo(), "carNo", packBean); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java index 0191f56..3877af5 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java @@ -38,7 +38,9 @@ public class MesShippingOrderManagementService extends BaseMesService implements IMesWorkOrderLogService { + + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java new file mode 100644 index 0000000..ae73e37 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -0,0 +1,99 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtEnumUtil; +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.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderLog; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +@Slf4j +public class MesWorkOrderService extends BaseMesService implements IMesWorkOrderService { + @Autowired + private MesWorkOrderLogService workOrderLogService; + + @Override + public MesWorkOrder insert(MesWorkOrder bean) { + //插入前构造数据 + onInsertBean(bean); + + //若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1 + if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) { + List sortWorkOrderList = new ArrayList<>(); + List orderLogList = new ArrayList<>(); + for (int i = 0; i < bean.getSortInsertOrderQty(); i++) { + MesWorkOrder copyMesWorkOrder = new MesWorkOrder(); + BeanUtils.copyProperties(bean, copyMesWorkOrder); + copyMesWorkOrder.setQty(1D); + ConvertBean.serviceModelInitialize(copyMesWorkOrder, AuthUtil.getSessionUser().getUserName()); + sortWorkOrderList.add(copyMesWorkOrder); + + MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); + BeanUtils.copyProperties(copyMesWorkOrder, workOrderLog, "id"); + orderLogList.add(workOrderLog); + + } + insertBatch(sortWorkOrderList); + workOrderLogService.insertBatch(orderLogList); + } + + bean.setQty(bean.getSortInsertOrderQty().doubleValue()); + ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName()); + + MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); + BeanUtils.copyProperties(bean, workOrderLog, "id"); + workOrderLogService.insert(workOrderLog); + bean = baseRDao.insert(bean); + return bean; + } + + @Override + public MesWorkOrder update(MesWorkOrder bean) { + //插入前构造数据 + onInsertBean(bean); + + //若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1 + if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) { + throw ImppExceptionBuilder.newInstance() + .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) + .setErrorDetail(String.format("工单类型为【%s】 不需要修改数量", MesExtEnumUtil.ORDER_TYPE.SORT.getValue())) + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .build(); + } + + bean.setQty(bean.getSortInsertOrderQty().doubleValue()); + ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName()); + + MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); + BeanUtils.copyProperties(bean, workOrderLog, "id"); + workOrderLogService.insert(workOrderLog); + + bean = baseRDao.insert(bean); + return bean; + } + + + protected void setPackQueryBean(MesWorkOrder bean, DdlPackBean packBean) { + } + + protected void onInsertBean(MesWorkOrder item) { + + } + + protected void onUpdateBean(MesWorkOrder item) { + + } + +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java index a872c3d..ee97b43 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java @@ -1483,4 +1483,85 @@ public class MesExtEnumUtil { } } + /** + * 装车单-状态 + */ + @JsonFormat( + shape = JsonFormat.Shape.OBJECT + ) + public static enum LOADING_VEHICLES_ORDER_STATUS { + POSITION(10, "位置"), + TYPE(20, "类型"), + RESPONSIBILITY(30, "责任"); + + private int value; + private String description; + + private LOADING_VEHICLES_ORDER_STATUS(int value, String description) { + this.value = value; + this.description = description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + + for (int i = 0; i < values().length; ++i) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + + return tmp; + } + + public int getValue() { + return this.value; + } + + public String getDescription() { + return this.description; + } + } + + /** + * 装车单-天气情况 + */ + @JsonFormat( + shape = JsonFormat.Shape.OBJECT + ) + public static enum LOADING_VEHICLES_ORDER_WEATHER_CONDITION { + SUNNY_WEATHER(10, "晴天"), + INDOOR_LOADING(20, "室内装车"), + RAIN(30, "雨天"), + SNOW(40, "下雪"); + + private int value; + private String description; + + private LOADING_VEHICLES_ORDER_WEATHER_CONDITION(int value, String description) { + this.value = value; + this.description = description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + + for (int i = 0; i < values().length; ++i) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + + return tmp; + } + + public int getValue() { + return this.value; + } + + public String getDescription() { + return this.description; + } + } + }