diff --git a/src/main/java/com/qs/serve/common/util/AuthContextUtils.java b/src/main/java/com/qs/serve/common/util/AuthContextUtils.java index 9c3385a..a940ba3 100644 --- a/src/main/java/com/qs/serve/common/util/AuthContextUtils.java +++ b/src/main/java/com/qs/serve/common/util/AuthContextUtils.java @@ -67,6 +67,15 @@ public class AuthContextUtils { return null; } + /** + * 是否订单审核人员 + * @return + */ + public static boolean isPmsOrderChecker(){ + //TODO + return false; + } + /** * 判断是否超级管理员 * @return diff --git a/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderController.java b/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderController.java index 85ffba8..b3acfc0 100644 --- a/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderController.java +++ b/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderController.java @@ -11,6 +11,7 @@ import com.qs.serve.modules.pms.entity.*; import com.qs.serve.modules.pms.entity.dto.PmsOrderBo; import com.qs.serve.modules.pms.entity.dto.PmsOrderProcessBo; import com.qs.serve.modules.pms.entity.dto.PmsOrderProductBo; +import com.qs.serve.modules.pms.entity.dto.PmsOrderStatusBo; import com.qs.serve.modules.pms.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -108,6 +109,43 @@ public class PmsOrderController { return R.isTrue(result); } + /** + * 修改订单状态 + * @param param + * @return + */ + @PostMapping("/updateStatus") + @SysLog(module = SystemModule.PIECE, title = "生产订单",desc = "修改订单状态", biz = BizType.OTHER) + public R updateStatus(@RequestBody @Valid PmsOrderStatusBo param){ + if(param.getStatus().equals(1)){ + PmsOrder pmsOrder = pmsOrderService.getById(param.getOrderId()); + if(pmsOrder.getStatus().equals(0)){ + pmsOrder = new PmsOrder(); + pmsOrder.setId(param.getOrderId()); + pmsOrder.setStatus(1); + pmsOrderService.updateById(pmsOrder); + } + return R.ok("订单已开启"); + }else if (param.getStatus().equals(2)){ + List orderProducts = pmsOrderProductService.getByOrderId(param.getOrderId()); + for (PmsOrderProduct orderProduct : orderProducts) { + if(orderProduct.getFinishedStatus().equals(0)){ + return R.error("部分产品生产未设置完成"); + } + } + PmsOrder pmsOrder = new PmsOrder(); + pmsOrder.setId(param.getOrderId()); + pmsOrder.setStatus(2); + pmsOrderService.updateById(pmsOrder); + }else if (param.getStatus().equals(3)){ + PmsOrder pmsOrder = new PmsOrder(); + pmsOrder.setId(param.getOrderId()); + pmsOrder.setStatus(3); + pmsOrderService.updateById(pmsOrder); + } + return R.error("无效参数"); + } + /** * 新增生产订单 * @param param diff --git a/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderProductController.java b/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderProductController.java index d643e74..ef771e1 100644 --- a/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderProductController.java +++ b/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderProductController.java @@ -7,6 +7,9 @@ import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; +import com.qs.serve.modules.pms.entity.PmsOrderSubmit; +import com.qs.serve.modules.pms.entity.dto.PmsOrderProductStatusBo; +import com.qs.serve.modules.pms.service.PmsOrderSubmitService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -30,6 +33,7 @@ import java.util.List; public class PmsOrderProductController { private PmsOrderProductService pmsOrderProductService; + private PmsOrderSubmitService pmsOrderSubmitService; /** * 翻页查询 @@ -58,8 +62,6 @@ public class PmsOrderProductController { return R.ok(pmsOrderProduct); } - - /** * 根据ID更新 * @param param @@ -73,6 +75,30 @@ public class PmsOrderProductController { return R.isTrue(result); } + /** + * 根据ID更新 + * @param param + * @return + */ + @PostMapping("/updateStatus") + @SysLog(module = SystemModule.PIECE, title = "订单产品",desc = "修改订单产品状态", biz = BizType.CHECK) + @PreAuthorize("hasRole('pms:orderProduct:update')") + public R updateStatus(@RequestBody @Valid PmsOrderProductStatusBo param){ + if(param.getStatus().equals(1)){ + List orderSubmitList = pmsOrderSubmitService.list(param.getOrderProductSn(),null); + for (PmsOrderSubmit orderSubmit : orderSubmitList) { + if(!orderSubmit.getCheckState().equals(1)){ + return R.error("部分汇报未审核,无法修改订单产品状态"); + } + } + } + PmsOrderProduct orderProduct = new PmsOrderProduct(); + orderProduct.setOrderProductSn(param.getOrderProductSn()); + orderProduct.setFinishedStatus(param.getStatus()); + boolean result = pmsOrderProductService.updateById(orderProduct); + return R.isTrue(result); + } + /** * 新增订单产品 * @param param diff --git a/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderSubmitController.java b/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderSubmitController.java index a7b289f..0d7ed27 100644 --- a/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderSubmitController.java +++ b/src/main/java/com/qs/serve/modules/pms/controller/PmsOrderSubmitController.java @@ -75,15 +75,22 @@ public class PmsOrderSubmitController { } /** - * 根据ID更新 + * 根据ID更新(审核人、员工接口) * @param param * @return */ @PostMapping("/updateById") @SysLog(module = SystemModule.PIECE, title = "订单报工单", biz = BizType.UPDATE) - @PreAuthorize("hasRole('pms:orderSubmit:update')") public R updateById(@RequestBody @Valid PmsOrderSubmitUpdateBo param){ - //TODO 判断订单状态 + //判断订单状态 + PmsOrderSubmit pmsOrderSubmit = pmsOrderSubmitService.getById(param.getId()); + PmsOrderProduct orderProduct = pmsOrderProductService.getById(pmsOrderSubmit.getOrderProductSn()); + if(orderProduct.getFinishedStatus().equals(1)){ + return R.error("完成的产品无法进行编辑"); + } + if(pmsOrderSubmit.getCheckState().equals(1)&&!AuthContextUtils.isPmsOrderChecker()){ + return R.error("已核对的汇报,非审核人员无法修改"); + } PmsOrderSubmit orderSubmit = CopierUtil.copy(param,new PmsOrderSubmit()); boolean result = pmsOrderSubmitService.updateById(orderSubmit); return R.isTrue(result); diff --git a/src/main/java/com/qs/serve/modules/pms/entity/PmsOrderSubmit.java b/src/main/java/com/qs/serve/modules/pms/entity/PmsOrderSubmit.java index 791b7a7..2f3740c 100644 --- a/src/main/java/com/qs/serve/modules/pms/entity/PmsOrderSubmit.java +++ b/src/main/java/com/qs/serve/modules/pms/entity/PmsOrderSubmit.java @@ -105,6 +105,9 @@ public class PmsOrderSubmit implements Serializable { @Length(max = 255,message = "员工备注长度不能超过255字") private String personRemark; + /** 核对状态 */ + private Integer checkState; + /** 核对员id */ @Length(max = 32,message = "核对员id长度不能超过32字") private String checkerId; diff --git a/src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderProductStatusBo.java b/src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderProductStatusBo.java new file mode 100644 index 0000000..82e27e3 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderProductStatusBo.java @@ -0,0 +1,23 @@ +package com.qs.serve.modules.pms.entity.dto; + +import lombok.Data; + +/** + * @author YenHex + * @since 2022/8/12 + */ +@Data +public class PmsOrderProductStatusBo { + + /** OrderProductSn */ + private String OrderProductSn; + + /** + * 状态: + * 0:恢复到默认 + * 1.完成生产(所有产线完成后) + * 2.关闭订单 + * */ + private Integer status; + +} diff --git a/src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderStatusBo.java b/src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderStatusBo.java new file mode 100644 index 0000000..53a6a0d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderStatusBo.java @@ -0,0 +1,34 @@ +package com.qs.serve.modules.pms.entity.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 生产订单 实体类 + * @author YenHex + * @since 2022-08-05 + */ +@Data +public class PmsOrderStatusBo implements Serializable { + + /** 订单id */ + private String orderId; + + /** + * 状态: + * 1.开始生产 + * 2.完成生产(所有产线完成后) + * 3.关闭订单 + * */ + private Integer status; + +} + diff --git a/src/main/java/com/qs/serve/modules/pms/service/PmsOrderSubmitService.java b/src/main/java/com/qs/serve/modules/pms/service/PmsOrderSubmitService.java index 1e0e036..cb3d6a1 100644 --- a/src/main/java/com/qs/serve/modules/pms/service/PmsOrderSubmitService.java +++ b/src/main/java/com/qs/serve/modules/pms/service/PmsOrderSubmitService.java @@ -2,7 +2,7 @@ package com.qs.serve.modules.pms.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.pms.entity.PmsOrderSubmit; - +import java.util.List; /** * 订单报工单 服务接口 * @author YenHex @@ -10,5 +10,7 @@ import com.qs.serve.modules.pms.entity.PmsOrderSubmit; */ public interface PmsOrderSubmitService extends IService { + List list(String orderProductSn,String orderProcessSn); + } diff --git a/src/main/java/com/qs/serve/modules/pms/service/impl/PmsOrderSubmitServiceImpl.java b/src/main/java/com/qs/serve/modules/pms/service/impl/PmsOrderSubmitServiceImpl.java index 10150c7..93bce99 100644 --- a/src/main/java/com/qs/serve/modules/pms/service/impl/PmsOrderSubmitServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/pms/service/impl/PmsOrderSubmitServiceImpl.java @@ -1,6 +1,8 @@ package com.qs.serve.modules.pms.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.util.StringUtils; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -8,6 +10,8 @@ import com.qs.serve.modules.pms.entity.PmsOrderSubmit; import com.qs.serve.modules.pms.service.PmsOrderSubmitService; import com.qs.serve.modules.pms.mapper.PmsOrderSubmitMapper; +import java.util.List; + /** * 订单报工单 服务实现类 * @author YenHex @@ -18,5 +22,19 @@ import com.qs.serve.modules.pms.mapper.PmsOrderSubmitMapper; @AllArgsConstructor public class PmsOrderSubmitServiceImpl extends ServiceImpl implements PmsOrderSubmitService { + @Override + public List list(String orderProductSn, String orderProcessSn) { + if(StringUtils.hasText(orderProcessSn)||StringUtils.hasText(orderProductSn)){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + if(StringUtils.hasText(orderProductSn)){ + lqw.eq(PmsOrderSubmit::getOrderProductSn,orderProductSn); + } + if(StringUtils.hasText(orderProcessSn)){ + lqw.eq(PmsOrderSubmit::getOrderProcessSn,orderProcessSn); + } + return list(lqw); + } + return null; + } }