开料,打包关联生产单状态修改

This commit is contained in:
liuzhaotian
2024-10-15 15:49:20 +08:00
parent 8df4ac2de7
commit 6f3bca28b7
16 changed files with 271 additions and 41 deletions
@@ -174,8 +174,12 @@
<artifactId>gson</artifactId>
<version>2.8.8</version> <!-- 使用最新版本 -->
</dependency>
<dependency>
<groupId>com.cf.imes</groupId>
<artifactId>cf-module-prod-executor-api</artifactId>
<version>2.0.0-jdk8-snapshot</version>
<scope>compile</scope>
</dependency>
</dependencies>
@@ -1,5 +1,6 @@
package com.cf.imes.module.manage.framework.rpc.config;
import com.cf.imes.module.executor.api.plan.OrderPlanApi;
import com.cf.imes.module.system.api.organ.OrganApi;
import com.cf.imes.module.system.api.permission.PermissionApi;
import com.cf.imes.module.system.api.process.ProcessApi;
@@ -9,6 +10,6 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class, ProcessApi.class, SettingApi.class,PermissionApi.class})
@EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class, ProcessApi.class, SettingApi.class,PermissionApi.class, OrderPlanApi.class})
public class RpcConfiguration {
}
@@ -4,15 +4,13 @@ package com.cf.imes.module.manage.service.pack;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.enums.OrderItemTypeEnum;
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
import com.cf.imes.framework.common.enums.UserSettingTypeEnum;
import com.cf.imes.framework.common.enums.*;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.Assert.AssertUtils;
import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
import com.cf.imes.module.executor.api.plan.OrderPlanApi;
import com.cf.imes.module.manage.controller.admin.pack.prePack.PackPlateList;
import com.cf.imes.module.manage.controller.admin.pack.prePack.PrePackOptimizeInfo;
import com.cf.imes.module.manage.controller.admin.pack.prePack.PrePackReqVO;
@@ -80,7 +78,6 @@ public class PackServiceImpl implements PackService {
@Resource
private OrdersMapper ordersMapper;
@Resource
private SnowflakeIdWorker3rd idWorker;
@@ -91,6 +88,9 @@ public class PackServiceImpl implements PackService {
@Resource
private SettingApi settingApi;
@Resource
private OrderPlanApi orderPlanApi;
// 打包分页查询
@Override
@@ -374,6 +374,7 @@ public class PackServiceImpl implements PackService {
@Transactional(rollbackFor = Exception.class)
public OrderPackRespVO updateParts(OrderPartsReqVO reqVO) {
validateOrdersExists(reqVO.getOrderId(),null);
// 判断包裹ID是否为空,为空,走新增,不为空,走更新
if (reqVO.getPackId() == null) {
@@ -404,6 +405,7 @@ public class PackServiceImpl implements PackService {
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(reqVO.getPackId(),reqVO.getOrderId(), getUserOrganId());
AssertUtils.notEmpty(orderPackageDO,ORDER_PACK_DATA_ERROR);
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(reqVO.getPackId(), reqVO.getOrderId(), getUserOrganId());
List<Long> partsList = orderItemDOS.stream().map(OrderItemDO::getPartsId).distinct().toList();
@@ -460,7 +462,7 @@ public class PackServiceImpl implements PackService {
OrderPackageDO packageDO = orderPackageMapper.selectById(packageID);
AssertUtils.notEmpty(packageDO,ORDER_PACK_DATA_ERROR );
AssertUtils.notEmpty(packageDO,ORDER_PACK_DATA_NULL_ERROR );
Long orderId = packageDO.getOrderId();
@@ -469,6 +471,11 @@ public class PackServiceImpl implements PackService {
AssertUtils.notEmpty(orderDO,ORDER_NO_DATA_ERROR);
orderDO.setPackaged(OrderPackageStatusEnum.UNPACKED.getStatus());
if(orderDO.getStatus().equals(OrderStatusEnum.FINISH_PRODUCTION.getStatus())){
orderDO.setStatus(OrderStatusEnum.IN_PRODUCTION.getStatus());
}
ordersMapper.updateById(orderDO);
packageDO.setStatus(OrderPackageStatusEnum.UNPACKED.getStatus());
@@ -484,6 +491,7 @@ public class PackServiceImpl implements PackService {
@Transactional(rollbackFor = Exception.class)
public OrderPackRespVO updatePack(OrderPackReqVO packageVO) {
validateOrdersExists(packageVO.getOrderId(),null);
// 判断包裹ID是否为空,为空,走新增,不为空,走更新
if (packageVO.getPackId() == null) {
@@ -509,6 +517,9 @@ public class PackServiceImpl implements PackService {
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(packageVO.getPackId(),packageVO.getOrderId(), getUserOrganId());
AssertUtils.notEmpty(orderPackageDO,ORDER_PACK_DATA_ERROR);
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(packageVO.getPackId(), packageVO.getOrderId(), getUserOrganId());
List<Long> plateList = orderItemDOS.stream().map(OrderItemDO::getPlateId).distinct().toList();
@@ -588,9 +599,16 @@ public class PackServiceImpl implements PackService {
// 修改生产单的打包状态为已打包
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
if(orderPlanApi.getOrder(orderId).getData()){
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
}
ordersMapper.updateById(orderDO);
}
@@ -622,6 +640,8 @@ public class PackServiceImpl implements PackService {
@Transactional(rollbackFor = Exception.class)
public void deleteOrderPack(PackReqVO reqVO) {
// 判断包裹的类型是否为其他类型,如果是,则删除其包裹信息
if (reqVO.getIsOther()) {
@@ -900,6 +920,9 @@ public class PackServiceImpl implements PackService {
if (orderItemDoPartsList.isEmpty()) {
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
if(orderPlanApi.getOrder(reqVO.getOrderId()).getData()){
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
}
ordersMapper.updateById(orderDO);
}
@@ -952,6 +975,18 @@ public class PackServiceImpl implements PackService {
}
private void validateOrdersExists(Long orderId, Long packId) {
OrderDO orderDO = ordersMapper.selectById(orderId);
AssertUtils.notEmpty(orderDO,ORDER_PACK_ERROR);
if(packId != null){
OrderPackageDO orderPackageDO = orderPackageMapper.selectById(packId);
AssertUtils.notEmpty(orderPackageDO,ORDER_PACK_DATA_ERROR);
}
}
// 类型转换
private OrderPackRespVO typeConversion(OrderPackageDO orderPackageDO) {
return OrderPackRespVO.builder()