diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/DeliverOrderStatusEnum.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/DeliverOrderStatusEnum.java index dc5de32b..820fed16 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/DeliverOrderStatusEnum.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/DeliverOrderStatusEnum.java @@ -10,8 +10,8 @@ import lombok.Getter; @Getter public enum DeliverOrderStatusEnum { - DEFAULT(1, "已保存"), - FINISHED(2, "已发货"); + SAVE(1, "已保存"), + DELIVER(2, "已发货"); private int code; private String description; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/DeliverOrderController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/DeliverOrderController.java index e55067df..f25df945 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/DeliverOrderController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/DeliverOrderController.java @@ -78,7 +78,7 @@ public class DeliverOrderController { // 手动记录日志 operateLogFrameworkService.createOperateLog(request, startTime, - BusinesTypeEnum.PROJECT_ORDER.name(), + BusinesTypeEnum.DELIVER_ORDER.name(), operateReqVO.getId(), OperateTypeEnum.valueOf(operateReqVO.getActive()).getType(), operateReqVO.getActiveOpinion()); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/vo/DeliverOrderSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/vo/DeliverOrderSaveReqVO.java index 8bb0733e..6db72db3 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/vo/DeliverOrderSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/vo/DeliverOrderSaveReqVO.java @@ -17,7 +17,6 @@ public class DeliverOrderSaveReqVO { private Long id; @Schema(description = "编号,唯一", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "编号,唯一不能为空") private String code; @Schema(description = "销售订单id列表 多个用英文逗号分割", requiredMode = Schema.RequiredMode.REQUIRED) @@ -49,7 +48,6 @@ public class DeliverOrderSaveReqVO { private String deliverMode; @Schema(description = "收货人电话", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "收货人电话不能为空") private String receivePersonMobile; @Schema(description = "司机姓名", example = "王五") @@ -75,11 +73,9 @@ public class DeliverOrderSaveReqVO { private Integer status; @Schema(description = "收货人姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") - @NotEmpty(message = "收货人姓名不能为空") private String receivePersonName; @Schema(description = "收货详细地址", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "收货详细地址不能为空") private String receiveAddress; @Schema(description = "操作类型") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderPageReqVO.java index bfadefcf..070f7dc0 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/vo/ProjectOrderPageReqVO.java @@ -28,6 +28,9 @@ public class ProjectOrderPageReqVO extends PageParam { @Schema(description = "发货状态 未发货/部分发货/全部发货", example = "1") private Integer deliveryStatus; + @Schema(description = "发货状态列表") + private List deliveryStatusList; + @Schema(description = "提出部门id", example = "9959") private Long businessDeptId; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderDO.java index 9e746650..a81ae8fd 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderDO.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder; +import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; import com.chanko.yunxi.mes.module.heli.enums.DeliverOrderStatusEnum; import lombok.*; import java.util.*; @@ -122,6 +123,21 @@ public class DeliverOrderDO extends BaseDO { private String customerName; public boolean canDeliver() { - return DeliverOrderStatusEnum.DEFAULT.getCode() == this.deliverStatus.intValue(); + return DeliverOrderStatusEnum.SAVE.getCode() == this.deliverStatus.intValue(); + } + + public boolean canOperate(OperateTypeEnum operateTypeEnum) { + switch (operateTypeEnum){ + case SAVE: + return canSave(); + case DELIVER: + return canDeliver(); + default: + return false; + } + } + + private boolean canSave() { + return DeliverOrderStatusEnum.SAVE.getCode() == this.deliverStatus.intValue(); } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java index 01fb60e2..61c31d03 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java @@ -81,5 +81,13 @@ public class DeliverOrderSubDO extends BaseDO { * 删除 物理删除 */ private Boolean deleted; + /** + * 销售订单子项id + */ + private Long saleOrderSubId; + /** + * 销售订单编号 + */ + private String saleOrderCode; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderSubDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderSubDO.java index c1f5645b..0f314495 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderSubDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderSubDO.java @@ -77,4 +77,7 @@ public class ProjectOrderSubDO extends BaseDO { */ @TableField(exist = false) private String compositionName; + + @TableField(exist = false) + private String projectOrderCode; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/deliverorder/DeliverOrderMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/deliverorder/DeliverOrderMapper.java index af785f1a..3f97a7bf 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/deliverorder/DeliverOrderMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/deliverorder/DeliverOrderMapper.java @@ -34,9 +34,9 @@ public interface DeliverOrderMapper extends BaseMapperX { .orderByDesc(DeliverOrderDO::getId) .disableSubLogicDel(); query.like(!StringUtils.isEmpty(reqVO.getCode()), DeliverOrderDO::getCode, reqVO.getCode()) - .like(!StringUtils.isEmpty(reqVO.getSaleOrderCode()), ProjectOrderDO::getCode, reqVO.getSaleOrderCode()) - .like(!StringUtils.isEmpty(reqVO.getCustomerName()), CustomerDO::getName, reqVO.getCustomerName()) - .like(!StringUtils.isEmpty(reqVO.getMouldName()), ProjectOrderDO::getMouldName, reqVO.getMouldName()) + .like(!StringUtils.isEmpty(reqVO.getSaleOrderCode()), "p.code", reqVO.getSaleOrderCode()) + .like(!StringUtils.isEmpty(reqVO.getCustomerName()), "e.name", reqVO.getCustomerName()) + .like(!StringUtils.isEmpty(reqVO.getMouldName()), "p.mould_name", reqVO.getMouldName()) .between(reqVO.getDeliverDate() != null && reqVO.getDeliverDate().length == 2, DeliverOrderDO::getDeliverDate, ArrayUtils.get(reqVO.getDeliverDate(), 0), ArrayUtils.get(reqVO.getDeliverDate(), 1)) .eq(reqVO.getDeliverStatus() != null, DeliverOrderDO::getDeliverStatus, reqVO.getDeliverStatus()); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java index 6d28c27f..d01d3d2d 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderMapper.java @@ -38,6 +38,7 @@ public interface ProjectOrderMapper extends BaseMapperX { .eq(reqVO.getOrderStatus() != null, ProjectOrderDO::getOrderStatus, reqVO.getOrderStatus()) .eq(reqVO.getDeliveryStatus() != null, ProjectOrderDO::getDeliveryStatus, reqVO.getDeliveryStatus()) .in(reqVO.getOrderStatusList() != null && !reqVO.getOrderStatusList().isEmpty(), ProjectOrderDO::getOrderStatus, reqVO.getOrderStatusList()) + .in(reqVO.getDeliveryStatusList() != null && !reqVO.getDeliveryStatusList().isEmpty(), ProjectOrderDO::getDeliveryStatus, reqVO.getDeliveryStatusList()) .eq(reqVO.getIsSnapshot() != null, ProjectOrderDO::getIsSnapshot, reqVO.getIsSnapshot()) .eq(reqVO.getHasAlter() != null, ProjectOrderDO::getHasAlter, reqVO.getHasAlter()) .like(!StringUtils.isEmpty(reqVO.getSnapshotCode()), ProjectOrderDO::getSnapshotCode, reqVO.getSnapshotCode()); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java index 9d309ec2..0261b9e6 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/projectorder/ProjectOrderSubMapper.java @@ -2,6 +2,7 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; @@ -19,7 +20,8 @@ public interface ProjectOrderSubMapper extends BaseMapperX { default List selectListByProjectOrderId(Long projectOrderId) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(ProjectOrderSubDO.class) - .select("b.name as compositionName") + .select("b.name as compositionName", "p.code as projectOrderCode") + .leftJoin(ProjectOrderDO.class, "p", ProjectOrderDO::getId, ProjectOrderSubDO::getProjectOrderId) .leftJoin(CompositionDO.class, "b", CompositionDO::getId, ProjectOrderSubDO::getCompositionId) .disableSubLogicDel() .eq(ProjectOrderSubDO::getProjectOrderId, projectOrderId); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java index def73747..12396359 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java @@ -1,29 +1,32 @@ package com.chanko.yunxi.mes.module.heli.service.deliverorder; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; +import com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.vo.DeliverOrderPageReqVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.vo.DeliverOrderSaveReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverordersub.DeliverOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder.DeliverOrderMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverordersub.DeliverOrderSubMapper; import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum; +import com.chanko.yunxi.mes.module.heli.enums.DeliverOrderStatusEnum; import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; +import javax.annotation.Resource; import java.text.SimpleDateFormat; -import java.util.*; -import com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverordersub.DeliverOrderSubDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; - -import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder.DeliverOrderMapper; -import com.chanko.yunxi.mes.module.heli.dal.mysql.deliverordersub.DeliverOrderSubMapper; +import java.util.Date; +import java.util.List; import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; +import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.PROJECT_DELIVERY_ORDER; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.DELIVER_ORDER_NOT_EXISTS; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.INVALID_OPERATE; /** * 发货订单 Service 实现类 @@ -49,12 +52,15 @@ public class DeliverOrderServiceImpl implements DeliverOrderService { // 月度流水号 SerialNumberDO serialNumberDO = serialNumberService.getSerialNumber(BusinesTypeEnum.DELIVER_ORDER.name(), new SimpleDateFormat("yyyyMM").format(new Date())); serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); + deliverOrder.setCode(PROJECT_DELIVERY_ORDER.getCode(serialNumberDO.getSerialNumber().toString())); + deliverOrder.setDeliverStatus(DeliverOrderStatusEnum.valueOf(createReqVO.getActive()).getCode()); deliverOrderMapper.insert(deliverOrder); // 插入子表 if(createReqVO.getDeliverOrderSubs() != null && !createReqVO.getDeliverOrderSubs().isEmpty()){ createDeliverOrderSubList(deliverOrder.getId(), createReqVO.getDeliverOrderSubs()); } + createReqVO.setId(deliverOrder.getId()).setCode(deliverOrder.getCode()); // 回写序列记录 serialNumberService.updateSerialNumber(serialNumberDO); // 返回 @@ -66,12 +72,14 @@ public class DeliverOrderServiceImpl implements DeliverOrderService { public void updateDeliverOrder(DeliverOrderSaveReqVO updateReqVO) { // 校验存在 DeliverOrderDO oldDO = validateDeliverOrderExists(updateReqVO.getId()); - if(!oldDO.canDeliver()){ + if(!oldDO.canOperate(OperateTypeEnum.valueOf(updateReqVO.getActive()))){ throw exception(INVALID_OPERATE); } // 更新 DeliverOrderDO updateObj = BeanUtils.toBean(updateReqVO, DeliverOrderDO.class); + updateObj.setDeliverStatus(DeliverOrderStatusEnum.valueOf(updateReqVO.getActive()).getCode()); deliverOrderMapper.updateById(updateObj); + updateReqVO.setDeliverStatus(updateObj.getDeliverStatus()); // 更新子表 updateDeliverOrderSubList(updateReqVO.getId(), updateReqVO.getDeliverOrderSubs()); diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/deliverorder/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/deliverorder/index.ts index d84eaa08..e8afac3e 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/deliverorder/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/deliverorder/index.ts @@ -21,6 +21,7 @@ export interface DeliverOrderVO { receivePersonName: string receiveAddress: string active: string + deliverOrderSubs: object } // 查询发货订单分页 diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/deliverorder/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/deliverorder/detail.vue index 786c6934..11468955 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/deliverorder/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/deliverorder/detail.vue @@ -25,7 +25,7 @@ - + @@ -44,6 +44,7 @@ - + @@ -71,6 +72,7 @@ - + - + - + - + - + + - + + + - + - + + + + + + + @@ -206,11 +243,18 @@ - +