mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 21:52:07 +08:00
新增-组织机台授权接口,机台数据源接口,逻辑更改-柜体删除,还原关联排单,包裹部分数据更改,排单部分异常信息返回补全
This commit is contained in:
-81
@@ -1,81 +0,0 @@
|
|||||||
package com.cf.imes.module.executor.api.goods.dto;
|
|
||||||
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class GoodsDTO {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 主键
|
|
||||||
*/
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
// 组织 ID
|
|
||||||
private Long organId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 生产单号
|
|
||||||
*/
|
|
||||||
private Long orderId;
|
|
||||||
/**
|
|
||||||
* 设计端商品ID
|
|
||||||
*/
|
|
||||||
private String rawGoodsId;
|
|
||||||
/**
|
|
||||||
* 商品 ID
|
|
||||||
*/
|
|
||||||
private String goodsId;
|
|
||||||
/**
|
|
||||||
* 商品名称
|
|
||||||
*/
|
|
||||||
private String goodsName;
|
|
||||||
/**
|
|
||||||
* 材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板
|
|
||||||
*/
|
|
||||||
private String material;
|
|
||||||
/**
|
|
||||||
* 纹路 0 正纹 1 可翻转 2 反纹
|
|
||||||
*/
|
|
||||||
private Boolean texture;
|
|
||||||
/**
|
|
||||||
* 颜色
|
|
||||||
*/
|
|
||||||
private String color;
|
|
||||||
/**
|
|
||||||
* 宽度
|
|
||||||
*/
|
|
||||||
private BigDecimal width;
|
|
||||||
/**
|
|
||||||
* 高度
|
|
||||||
*/
|
|
||||||
private BigDecimal height;
|
|
||||||
/**
|
|
||||||
* 厚度
|
|
||||||
*/
|
|
||||||
private BigDecimal thickness;
|
|
||||||
/**
|
|
||||||
* 价格
|
|
||||||
*/
|
|
||||||
private BigDecimal price;
|
|
||||||
/**
|
|
||||||
* 品牌
|
|
||||||
*/
|
|
||||||
private String brand;
|
|
||||||
/**
|
|
||||||
* 规格
|
|
||||||
*/
|
|
||||||
private String spec;
|
|
||||||
/**
|
|
||||||
* 备注
|
|
||||||
*/
|
|
||||||
private String remark;
|
|
||||||
/**
|
|
||||||
* 是否删除
|
|
||||||
*/
|
|
||||||
private Boolean deleted;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
+100
@@ -10,6 +10,8 @@ import org.springframework.cloud.openfeign.FeignClient;
|
|||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@FeignClient(name = ApiConstants.NAME) // TODO 晨丰:fallbackFactory =
|
@FeignClient(name = ApiConstants.NAME) // TODO 晨丰:fallbackFactory =
|
||||||
@Tag(name = "RPC 服务 - 多组织")
|
@Tag(name = "RPC 服务 - 多组织")
|
||||||
public interface OrderPlanApi {
|
public interface OrderPlanApi {
|
||||||
@@ -22,4 +24,102 @@ public interface OrderPlanApi {
|
|||||||
@Parameter(name = "machineId", description = "机台ID", required = true, example = "1024")
|
@Parameter(name = "machineId", description = "机台ID", required = true, example = "1024")
|
||||||
CommonResult<Boolean> getOrderPlan(@RequestParam("machineId") Long id);
|
CommonResult<Boolean> getOrderPlan(@RequestParam("machineId") Long id);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 机台数据源数据查询
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiDataGetPlan")
|
||||||
|
@Operation(summary = "获取当前排单对应的生产单信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String apiDataGetPlan(@RequestParam("planId") Long planId,@RequestParam("filed") String filed);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetGoods")
|
||||||
|
@Operation(summary = "查询当前排单对应的大板信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String getGoods(@RequestParam("planId") Long planId,@RequestParam("filed") String filed);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetOrders")
|
||||||
|
@Operation(summary = "查询当前排单对应的业务员和拆单员信息")
|
||||||
|
// @Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
List<String> apiGetOrders(@RequestParam("planId") Long planId ,@RequestParam("isSale") Boolean isSale);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetPlan")
|
||||||
|
@Operation(summary = "查询当前排单的信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String getPlan(@RequestParam("planId") Long planId,@RequestParam("filed") String filed);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetESPlan")
|
||||||
|
@Operation(summary = "查询ES中的排单优化生产信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String apiGetEsPlan(@RequestParam("planId") Long planId,@RequestParam("fields") List<String> fields);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetPlanRemainPlate")
|
||||||
|
@Operation(summary = "查询排单中的余料板信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String apiGetPlanRemainPlate(@RequestParam("planId") Long planId,@RequestParam("field") String field);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetPlanPlate")
|
||||||
|
@Operation(summary = "查询排单中的板材信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String apiGetPlanPlate(@RequestParam("planId") Long planId,@RequestParam("field") String field);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetESPlate")
|
||||||
|
@Operation(summary = "查询ES中的板材信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String apiGetEsPlate(@RequestParam("planId") Long planId,@RequestParam("fields") List<String> fields);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetPlanBodyOrRoom")
|
||||||
|
@Operation(summary = "查询排单中的板材房间信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String apiGetPlanBodyOrRoom(@RequestParam("planId") Long planId,@RequestParam("field") String field);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetPlanGroup")
|
||||||
|
@Operation(summary = "查询排单中的板材加工组信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String apiGetPlanGroup(@RequestParam("planId") Long planId,@RequestParam("field") String field);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetPlanParts")
|
||||||
|
@Operation(summary = "查询排单中的配件信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String apiGetPlanParts(@RequestParam("planId") Long planId,@RequestParam("field") String field);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(PREFIX +"/apiGetESParts")
|
||||||
|
@Operation(summary = "查询ES中的配件备注信息")
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024")
|
||||||
|
String apiGetEsParts(@RequestParam("planId") Long planId,@RequestParam("fields") List<String> fields);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+567
-1
@@ -1,20 +1,57 @@
|
|||||||
package com.cf.imes.module.executor.api.plan;
|
package com.cf.imes.module.executor.api.plan;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
||||||
|
import co.elastic.clients.elasticsearch._types.FieldValue;
|
||||||
|
import co.elastic.clients.elasticsearch.core.SearchRequest;
|
||||||
|
import co.elastic.clients.elasticsearch.core.SearchResponse;
|
||||||
|
import co.elastic.clients.elasticsearch.core.search.Hit;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||||
|
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||||
|
import com.cf.imes.module.executor.api.plan.vo.OrderGroupRespVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.remainplaten.RemainPlateMapper;
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR;
|
||||||
|
import static com.cf.imes.framework.common.util.json.JsonUtils.toJsonString;
|
||||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||||
|
|
||||||
@RestController // 提供 RESTful API 接口,给 Feign 调用
|
@RestController // 提供 RESTful API 接口,给 Feign 调用
|
||||||
@Validated
|
@Validated
|
||||||
|
@Slf4j
|
||||||
public class OrderPlanApiImpl implements OrderPlanApi{
|
public class OrderPlanApiImpl implements OrderPlanApi{
|
||||||
|
|
||||||
|
|
||||||
@@ -22,6 +59,52 @@ public class OrderPlanApiImpl implements OrderPlanApi{
|
|||||||
private PlanMapper planMapper;
|
private PlanMapper planMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private GoodsMapper goodsMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderMapper orderMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RemainPlateMapper remainPlateMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private PlateMapper plateMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderItemMapper orderItemMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderBodyMapper orderBodyMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderGroupMapper orderGroupMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderPartsMapper orderPartsMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ElasticsearchClient elasticsearchClient;
|
||||||
|
|
||||||
|
|
||||||
|
public static final String SEPARATE = "select";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String ORDER_REMAIN_PLATE_MODEL = "imes_order_optimize_plate_model";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String ORDER_PLATE_MODEL = "imes_order_plate_model";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String ORDER_PARTS_REMARK_MODEL = "imes_order_parts_remark_model";
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommonResult<Boolean> getOrderPlan(Long machineId) {
|
public CommonResult<Boolean> getOrderPlan(Long machineId) {
|
||||||
|
|
||||||
@@ -36,4 +119,487 @@ public class OrderPlanApiImpl implements OrderPlanApi{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 机台数据源数据查询
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String apiDataGetPlan(Long planId,String filed) {
|
||||||
|
|
||||||
|
PlanDO planDOS = planMapper.selectById(planId);
|
||||||
|
|
||||||
|
List<Long> orderIds = JSON.parseArray(planDOS.getOrderNos()).toJavaList(Long.class);
|
||||||
|
|
||||||
|
|
||||||
|
return toJsonString(orderMapper.selectOrderDataSource(conversion(filed),orderIds,getUserOrganId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getGoods(Long planId,String filed) {
|
||||||
|
|
||||||
|
|
||||||
|
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 10);
|
||||||
|
|
||||||
|
List<String> goodsIds = optimizeBoardModelDOS.stream().map(OptimizeBoardModelDO::getGoodsId).toList();
|
||||||
|
|
||||||
|
|
||||||
|
JsonNode jsonNode = JsonUtils.parseTree(JsonUtils.toJsonString(optimizeBoardModelDOS));
|
||||||
|
|
||||||
|
|
||||||
|
filed = filed.replace("place_block_number","");
|
||||||
|
|
||||||
|
|
||||||
|
String filed2 = "place_block_number".equals(filed) ? ",{placeBlockNumber:"+jsonNode.get("placeBlockNumber").asLong()+"}]" : "";
|
||||||
|
|
||||||
|
|
||||||
|
// String sql = " select from order_goods where organ_id = #{organId} and deleted = false";
|
||||||
|
//
|
||||||
|
// sql = sql.replace("#{organId}", getUserOrganId() + "");
|
||||||
|
|
||||||
|
|
||||||
|
List<GoodsDO> goodsDO = goodsMapper.selectPlanGoodsDataSource(conversion(filed),planId,getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return "".equals(filed2) ? toJsonString(goodsDO) : toJsonString(goodsDO).replace("]", "") + filed2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> apiGetOrders(Long planId,Boolean isSale) {
|
||||||
|
|
||||||
|
PlanDO planDOS = planMapper.selectById(planId);
|
||||||
|
|
||||||
|
List<Long> orderIds = JSON.parseArray(planDOS.getOrderNos()).toJavaList(Long.class);
|
||||||
|
|
||||||
|
|
||||||
|
return isSale ? orderMapper.selectBatchIds(orderIds).stream().map(OrderDO::getSalesman).distinct().toList()
|
||||||
|
: orderMapper.selectBatchIds(orderIds).stream().map(OrderDO::getCreator).distinct().toList();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPlan(Long planId,String filed) {
|
||||||
|
|
||||||
|
|
||||||
|
// String sql = " select from order_plan where id =#{planId} and organ_id = #{organId} and deleted = false";
|
||||||
|
//
|
||||||
|
// sql = sql.replace("#{organId}", getUserOrganId() + "").replace("#{planId}", planId + "");
|
||||||
|
//
|
||||||
|
// String toInsert = filed.replaceAll("\\[|\\]", "");
|
||||||
|
|
||||||
|
// List<PlanDO> planDOS = planMapper.seleTestSQL(conversion(sql, filed));
|
||||||
|
|
||||||
|
|
||||||
|
List<PlanDO> planDOS = planMapper.selectPlanDataSource(conversion(filed),planId,getUserOrganId());
|
||||||
|
|
||||||
|
return toJsonString(planDOS);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String apiGetEsPlan(Long planId, List<String> fields) {
|
||||||
|
|
||||||
|
|
||||||
|
List<String> esData = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 99);
|
||||||
|
|
||||||
|
for (OptimizeBoardModelDO optimizeBoardModelDO : optimizeBoardModelDOS) {
|
||||||
|
List<String> filedData = new ArrayList<>() ;
|
||||||
|
|
||||||
|
JsonNode jsonNode = JsonUtils.parseTree(JsonUtils.toJsonString(optimizeBoardModelDO));
|
||||||
|
|
||||||
|
for (String field : fields) {
|
||||||
|
filedData.add(field+":"+ (jsonNode.get(field) == null ?"" : jsonNode.get(field).asText()));
|
||||||
|
}
|
||||||
|
|
||||||
|
esData.add(filedData.toString());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return esData.toString();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String apiGetPlanRemainPlate(Long planId, String field) {
|
||||||
|
|
||||||
|
|
||||||
|
// String sql = " select from order_remain_plate where organ_id = #{organId} and plan_id = #{planId} and deleted = false";
|
||||||
|
//
|
||||||
|
// sql = sql.replace("#{organId}", getUserOrganId() + "").replace("#{planId}", planId + "");
|
||||||
|
|
||||||
|
|
||||||
|
List<RemainPlateDO> remainPlateDOS = remainPlateMapper.selectPlanRemainDataSource(conversion(field),planId,getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
|
return toJsonString(remainPlateDOS);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String apiGetPlanPlate(Long planId, String field) {
|
||||||
|
|
||||||
|
|
||||||
|
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 99);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// List<String> goodsIds = optimizeBoardModelDOS.stream().map(OptimizeBoardModelDO::getGoodsId).toList();
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// List<Long> orderIds = BeanUtils.toBean(optimizeBoardModelDOS.stream().map(OptimizeBoardModelDO::getOrderId).toList(), Long.class);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// List<Long> goodsIdList = goodsMapper.selectListByGoodsIdList(goodsIds,orderIds, getUserOrganId())
|
||||||
|
// .stream().map(GoodsDO::getId).toList();
|
||||||
|
|
||||||
|
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoods(planId, getUserOrganId());
|
||||||
|
|
||||||
|
List<Long> goodsIds = goodsDOS.stream().map(GoodsDO::getId).distinct().toList();
|
||||||
|
|
||||||
|
List<Long> orderIds = goodsDOS.stream().map(GoodsDO::getOrderId).distinct().toList();
|
||||||
|
|
||||||
|
|
||||||
|
field = field
|
||||||
|
.replace("sculpt_num", "sum(front_model_count+back_model_count) as sculptNum" + "")
|
||||||
|
.replace("hole_num", "sum(unregular_point_count+front_hole_count+back_hole_count+side_hole_count) as holeNum" + "");
|
||||||
|
|
||||||
|
|
||||||
|
String field2 = "sculpt_num".equals(field) || "hole_num".equals(field) ? "group by " + conversion(field)
|
||||||
|
.replace("sum(front_model_count+back_model_count) as sculptNum", "")
|
||||||
|
.replace("sum(unregular_point_count+front_hole_count+back_hole_count+side_hole_count) as holeNum", "") : "";
|
||||||
|
|
||||||
|
|
||||||
|
field2 = field2.replaceFirst(",\\s*$", "");
|
||||||
|
|
||||||
|
|
||||||
|
List<PlateRespVO> plateDOS = plateMapper.selectPlanPlateListDataSource(conversion(field),field2,goodsIds,orderIds,getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
|
return toJsonString(plateDOS);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String apiGetEsPlate(Long planId, List<String> fields) {
|
||||||
|
|
||||||
|
List<String> esData = new ArrayList<>();
|
||||||
|
|
||||||
|
// todo 目前只考虑非混单的情况,混单的情况待解决
|
||||||
|
List<Long> plateIds = getPlateIds(planId);
|
||||||
|
|
||||||
|
|
||||||
|
List<OrderModelDO> orderModelDOS = buildBoardByPlateIds(plateIds, ORDER_PLATE_MODEL, plateIds.size());
|
||||||
|
|
||||||
|
|
||||||
|
for (OrderModelDO orderModelDO : orderModelDOS) {
|
||||||
|
List<String> filedData = new ArrayList<>() ;
|
||||||
|
|
||||||
|
JsonNode jsonNode = JsonUtils.parseTree(JsonUtils.toJsonString(orderModelDO));
|
||||||
|
|
||||||
|
for (String field : fields) {
|
||||||
|
|
||||||
|
BigDecimal splitLength = BigDecimal.valueOf(jsonNode.get("splitLength").asDouble());
|
||||||
|
BigDecimal splitWidth = BigDecimal.valueOf(jsonNode.get("splitWidth").asDouble());
|
||||||
|
|
||||||
|
filedData.add( "splitArea".equals(field)? "splitArea:"+ splitLength.multiply(splitWidth) : field+":"+jsonNode.get(field).asText() );
|
||||||
|
|
||||||
|
// filedData.add(field+":"+jsonNode.get(field).asText());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
esData.add(filedData.toString());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return esData.toString();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String apiGetPlanBodyOrRoom(Long planId, String field) {
|
||||||
|
|
||||||
|
// List<Long> plateIds = getPlateIds(planId);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// List<OrderItemDO> orderItemDOS = orderItemMapper.selectPlateIdList(plateIds, getUserOrganId());
|
||||||
|
//
|
||||||
|
// List<Long> bodyIds = orderItemDOS.stream().map(OrderItemDO::getBodyId).distinct().toList();
|
||||||
|
|
||||||
|
|
||||||
|
List<Long> bodyIds = goodsMapper.selectPlanBodyIds(planId, getUserOrganId());
|
||||||
|
|
||||||
|
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectPlanBodyRoomDataSource(conversion(field), bodyIds, getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
|
return toJsonString(orderBodyDOS);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String apiGetPlanGroup(Long planId, String field) {
|
||||||
|
|
||||||
|
|
||||||
|
// List<Long> plateIds = getPlateIds(planId);
|
||||||
|
//
|
||||||
|
//// List<Long> plateIds = Arrays.asList(1825367895442456579L, 1825367895308238851L, 1824334800400416772L);
|
||||||
|
//
|
||||||
|
// List<OrderItemDO> orderItemDOS = orderItemMapper.selectPlateIdList(plateIds, getUserOrganId());
|
||||||
|
//
|
||||||
|
// List<Long> groupIds = orderItemDOS.stream().map(OrderItemDO::getGroupId).distinct().toList();
|
||||||
|
|
||||||
|
|
||||||
|
List<Long> groupIds = goodsMapper.selectPlanGroupListDataSource(planId, getUserOrganId());
|
||||||
|
|
||||||
|
if(groupIds.isEmpty()){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
field = field.replace("group_num", "count(id) as groupNum" + "");
|
||||||
|
|
||||||
|
|
||||||
|
String field2 = ("group by " + conversion(field).replace("count(id) as groupNum", "")).replaceFirst(",\\s*$", "");
|
||||||
|
|
||||||
|
|
||||||
|
List<OrderGroupRespVO> orderGroupDOS = orderGroupMapper.selectPlanGroupDataSource(conversion(field),field2, groupIds, getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
|
return toJsonString(orderGroupDOS);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String apiGetPlanParts(Long planId, String field) {
|
||||||
|
|
||||||
|
|
||||||
|
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 10);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// String orderNos = optimizeBoardModelDOS.stream().map(OptimizeBoardModelDO::getOrderId).toList().toString();
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// List<Long> orderIds = JSON.parseArray(orderNos).toJavaList(Long.class);
|
||||||
|
|
||||||
|
|
||||||
|
List<Long> orderIds = goodsMapper.selectPlanGoods(planId, getUserOrganId()).stream().map(GoodsDO::getOrderId).distinct().toList();
|
||||||
|
|
||||||
|
|
||||||
|
List<Long> partIds = orderPartsMapper.selectPartIds(orderIds, getUserOrganId()).stream().map(OrderPartsDO::getId).toList();
|
||||||
|
|
||||||
|
|
||||||
|
String filed2 = "parts_num" .equals(field) ?
|
||||||
|
",{partsNum:"+orderItemMapper.selectPartsList(partIds,orderIds, getUserOrganId()).stream().mapToDouble(OrderItemDO::getNum).sum()+"}]" : "";
|
||||||
|
|
||||||
|
|
||||||
|
List<OrderPartsDO> orderPartsDOS = orderPartsMapper.selectPlanPartsDataSource(conversion(field), partIds, getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
|
return "".equals(filed2) ? toJsonString(orderPartsDOS) : toJsonString(orderPartsDOS).replace("]", "") + filed2;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String apiGetEsParts(Long planId, List<String> fields) {
|
||||||
|
|
||||||
|
|
||||||
|
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 10);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// String orderNos = optimizeBoardModelDOS.stream().map(OptimizeBoardModelDO::getOrderId).toList().toString();
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// List<Long> orderIds = JSON.parseArray(orderNos).toJavaList(Long.class);
|
||||||
|
|
||||||
|
|
||||||
|
List<Long> orderIds = goodsMapper.selectPlanGoods(planId, getUserOrganId()).stream().map(GoodsDO::getOrderId).distinct().toList();
|
||||||
|
|
||||||
|
List<String> esData = new ArrayList<>();
|
||||||
|
|
||||||
|
List<OrderPartsRemark> orderPartsRemarks = buildOrderPartsByOrderId(orderIds, ORDER_PARTS_REMARK_MODEL, 999);
|
||||||
|
|
||||||
|
|
||||||
|
for (OrderPartsRemark orderPartsRemark : orderPartsRemarks) {
|
||||||
|
|
||||||
|
List<String> filedData = new ArrayList<>();
|
||||||
|
|
||||||
|
JsonNode jsonNode = JsonUtils.parseTree(JsonUtils.toJsonString(orderPartsRemark));
|
||||||
|
|
||||||
|
for (String field : fields) {
|
||||||
|
filedData.add(field+":" + (jsonNode.get(field) == null ? "" : jsonNode.get(field).asText()));
|
||||||
|
}
|
||||||
|
|
||||||
|
esData.add(filedData.toString());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return esData.toString();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 字符串处理
|
||||||
|
private String conversion(String filed) {
|
||||||
|
|
||||||
|
// 去除字段中的 【 】
|
||||||
|
return filed.replaceAll("\\[|\\]", "");
|
||||||
|
|
||||||
|
// 使用正则表达式在单词后插入字符串
|
||||||
|
// return sql.replaceAll(SEPARATE + "(\\b)", SEPARATE + " " + toInsert);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 根据排单ID获取对应的板材ID
|
||||||
|
private List<Long> getPlateIds(Long planId) {
|
||||||
|
|
||||||
|
|
||||||
|
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 10);
|
||||||
|
//
|
||||||
|
// List<String> goodsIds = optimizeBoardModelDOS.stream().map(OptimizeBoardModelDO::getGoodsId).toList();
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// List<Long> orderIds = BeanUtils.toBean(optimizeBoardModelDOS.stream().map(OptimizeBoardModelDO::getOrderId).toList(), Long.class);
|
||||||
|
//
|
||||||
|
// List<Long> ids = goodsMapper.selectListByGoodsIdList(goodsIds, orderIds, getUserOrganId()).stream().map(GoodsDO::getId).toList();
|
||||||
|
//
|
||||||
|
// plateMapper.selectGoodsPlateList(ids, getUserOrganId()).stream().map(PlateDO::getId).toList();
|
||||||
|
|
||||||
|
return goodsMapper.selectPlanPlateList(planId, getUserOrganId());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<OrderPartsRemark> buildOrderPartsByOrderId(List<Long> orderIds, String index, Integer size) {
|
||||||
|
|
||||||
|
List<FieldValue> fieldValues = orderIds.stream().map(FieldValue::of).toList();
|
||||||
|
SearchRequest.Builder builder = new SearchRequest.Builder();
|
||||||
|
builder.index(index);
|
||||||
|
builder.size(size);
|
||||||
|
builder.query(q -> q.terms(b -> b.field("orderId").terms(e -> e.value(fieldValues))));
|
||||||
|
try {
|
||||||
|
SearchResponse<OrderPartsRemark> search = elasticsearchClient.search(builder.build(), OrderPartsRemark.class);
|
||||||
|
List<Hit<OrderPartsRemark>> hits = search.hits().hits();
|
||||||
|
if (CollectionUtil.isNotEmpty(hits)) {
|
||||||
|
return hits.stream().map(Hit::source).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return new ArrayList<>();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
throw new ServiceException(INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private List<OptimizeBoardModelDO> buildBoardByPlanId(Long planId, String index, Integer size) {
|
||||||
|
SearchRequest.Builder builder = new SearchRequest.Builder();
|
||||||
|
builder.index(index);
|
||||||
|
builder.size(size);
|
||||||
|
builder.query(q -> q.term(b -> b.field("planId").value(planId)));
|
||||||
|
try {
|
||||||
|
SearchResponse<OptimizeBoardModelDO> search = elasticsearchClient.search(builder.build(), OptimizeBoardModelDO.class);
|
||||||
|
List<Hit<OptimizeBoardModelDO>> hits = search.hits().hits();
|
||||||
|
if (CollectionUtil.isNotEmpty(hits)) {
|
||||||
|
return hits.stream().map(Hit::source).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return new ArrayList<>();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
throw new ServiceException(INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private List<OrderModelDO> buildBoardByPlateIds(Collection<Long> plateIds, String index, Integer size) {
|
||||||
|
List<FieldValue> fieldValues = plateIds.stream().map(FieldValue::of).toList();
|
||||||
|
SearchRequest.Builder builder = new SearchRequest.Builder();
|
||||||
|
builder.index(index);
|
||||||
|
builder.size(size);
|
||||||
|
builder.query(q -> q.terms(b -> b.field("plateId").terms(e -> e.value(fieldValues))));
|
||||||
|
try {
|
||||||
|
SearchResponse<OrderModelDO> search = elasticsearchClient.search(builder.build(), OrderModelDO.class);
|
||||||
|
List<Hit<OrderModelDO>> hits = search.hits().hits();
|
||||||
|
if (CollectionUtil.isNotEmpty(hits)) {
|
||||||
|
return hits.stream().map(Hit::source).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return new ArrayList<>();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
throw new ServiceException(INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static String toCamelCase(String fieldName) {
|
||||||
|
if (fieldName == null || fieldName.isEmpty()) {
|
||||||
|
return fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder camelCase = new StringBuilder();
|
||||||
|
boolean nextIsUpperCase = false;
|
||||||
|
|
||||||
|
for (char c : fieldName.toCharArray()) {
|
||||||
|
if (c == '_' || c == '-') {
|
||||||
|
nextIsUpperCase = true;
|
||||||
|
} else {
|
||||||
|
if (nextIsUpperCase) {
|
||||||
|
camelCase.append(Character.toUpperCase(c));
|
||||||
|
nextIsUpperCase = false;
|
||||||
|
} else {
|
||||||
|
camelCase.append(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return camelCase.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-34
@@ -2,15 +2,20 @@ package com.cf.imes.module.executor.controller.admin.order;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
|
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
|
||||||
|
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||||
import com.cf.imes.framework.common.pojo.PageParam;
|
import com.cf.imes.framework.common.pojo.PageParam;
|
||||||
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
|
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||||
|
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.*;
|
import com.cf.imes.module.executor.controller.admin.order.vo.order.*;
|
||||||
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO;
|
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderRoomBodyRespVO;
|
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderRoomBodyRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
|
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||||
import com.cf.imes.module.executor.enums.OrderDeletedEnum;
|
import com.cf.imes.module.executor.enums.OrderDeletedEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderTypeEnum;
|
import com.cf.imes.module.executor.service.order.OrderService;
|
||||||
import com.cf.imes.module.executor.util.ExcelWriterUtil;
|
import com.cf.imes.module.executor.util.ExcelWriterUtil;
|
||||||
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiDataAchieve;
|
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiDataAchieve;
|
||||||
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiTypeRealize;
|
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiTypeRealize;
|
||||||
@@ -19,49 +24,32 @@ import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.OrderPl
|
|||||||
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.OrderXmlVO;
|
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.OrderXmlVO;
|
||||||
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XMLUtil;
|
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XMLUtil;
|
||||||
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XmlBuilder;
|
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XmlBuilder;
|
||||||
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XmlTypeRealize;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import javax.validation.Valid;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
|
|
||||||
import javax.validation.*;
|
|
||||||
import javax.servlet.http.*;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
import java.util.Map;
|
||||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
import java.util.concurrent.ExecutionException;
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
|
||||||
|
|
||||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
||||||
|
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.IMPORT;
|
||||||
|
|
||||||
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.*;
|
|
||||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*;
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
|
||||||
import com.cf.imes.module.executor.service.order.OrderService;
|
|
||||||
|
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
|
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 生产单管理")
|
@Tag(name = "管理后台 - 生产单管理")
|
||||||
@RestController
|
@RestController
|
||||||
@@ -459,7 +447,7 @@ public class OrderController {
|
|||||||
@Operation(summary = "删除柜体")
|
@Operation(summary = "删除柜体")
|
||||||
@PreAuthorize("@ss.hasPermission('production:manager-list:deleteCabinet')")
|
@PreAuthorize("@ss.hasPermission('production:manager-list:deleteCabinet')")
|
||||||
public CommonResult<Boolean> deleteBody(@Valid @RequestBody OrderModuleParameterRespVO orderModuleParameterRespVO) {
|
public CommonResult<Boolean> deleteBody(@Valid @RequestBody OrderModuleParameterRespVO orderModuleParameterRespVO) {
|
||||||
orderService.updateBodyDeletedByOrderId(orderModuleParameterRespVO.getOrderId(), orderModuleParameterRespVO.getRoomIds(),
|
orderService.updateDeleteBody(orderModuleParameterRespVO.getOrderId(), orderModuleParameterRespVO.getRoomIds(),
|
||||||
orderModuleParameterRespVO.getBodyId(), OrderDeletedEnum.DELETED.getStatus());
|
orderModuleParameterRespVO.getBodyId(), OrderDeletedEnum.DELETED.getStatus());
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
@@ -468,7 +456,7 @@ public class OrderController {
|
|||||||
@Operation(summary = "还原柜体")
|
@Operation(summary = "还原柜体")
|
||||||
@PreAuthorize("@ss.hasPermission('production:manager-list:restoreCabinet')")
|
@PreAuthorize("@ss.hasPermission('production:manager-list:restoreCabinet')")
|
||||||
public CommonResult<Boolean> restoreBody(@Valid @RequestBody OrderModuleParameterRespVO orderModuleParameterRespVO) {
|
public CommonResult<Boolean> restoreBody(@Valid @RequestBody OrderModuleParameterRespVO orderModuleParameterRespVO) {
|
||||||
orderService.updateBodyDeletedByOrderId(orderModuleParameterRespVO.getOrderId(), orderModuleParameterRespVO.getRoomIds(),
|
orderService.updateRestoreBody(orderModuleParameterRespVO.getOrderId(), orderModuleParameterRespVO.getRoomIds(),
|
||||||
orderModuleParameterRespVO.getBodyId(), OrderDeletedEnum.NOT_DELETED.getStatus());
|
orderModuleParameterRespVO.getBodyId(), OrderDeletedEnum.NOT_DELETED.getStatus());
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
package com.cf.imes.module.executor.controller.admin.order.vo.order;
|
||||||
|
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Administrator
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class OrderGoodsIds {
|
||||||
|
|
||||||
|
@Schema(description = "大板的实际ID")
|
||||||
|
private String goodsId;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "大板的旧分类ID")
|
||||||
|
private Long oldId;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "大板的新分类ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
}
|
||||||
+5
-3
@@ -110,6 +110,8 @@ public class PlanController {
|
|||||||
return success(planService.getOrderPage(pageReqVO));
|
return success(planService.getOrderPage(pageReqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 目前因为这个接口没有使用,所以这个接口里代码没有进行更改
|
||||||
@GetMapping("getNotPlanOrderPlateList")
|
@GetMapping("getNotPlanOrderPlateList")
|
||||||
@Operation(summary = "获取未排单的板材分页列表")
|
@Operation(summary = "获取未排单的板材分页列表")
|
||||||
@PreAuthorize("@ss.hasPermission('placeorder:query')")
|
@PreAuthorize("@ss.hasPermission('placeorder:query')")
|
||||||
@@ -135,9 +137,9 @@ public class PlanController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("getNotPlanGoodsListPageByOrderId")
|
// @GetMapping("getNotPlanGoodsListPageByOrderId")
|
||||||
@Operation(summary = "根据生产单id获取未排单的商品分页列表")
|
// @Operation(summary = "根据生产单id获取未排单的商品分页列表")
|
||||||
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
|
// @PreAuthorize("@ss.hasPermission('executor:plan:query')")
|
||||||
public CommonResult<PageResult<PlanGoodsVO>> getNotPlanGoodsListPageByOrderId(@Valid NotPlanGoodsListPageVO pageVO) {
|
public CommonResult<PageResult<PlanGoodsVO>> getNotPlanGoodsListPageByOrderId(@Valid NotPlanGoodsListPageVO pageVO) {
|
||||||
return success(planService.getNotPlanGoodsListPageByOrderId(pageVO));
|
return success(planService.getNotPlanGoodsListPageByOrderId(pageVO));
|
||||||
}
|
}
|
||||||
|
|||||||
+51
@@ -0,0 +1,51 @@
|
|||||||
|
package com.cf.imes.module.executor.dal.dataobject.pack;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@TableName("order_package")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OrderPackageDO extends BaseDO {
|
||||||
|
|
||||||
|
|
||||||
|
// 包裹ID
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
// 组织 ID
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
private Long organId;
|
||||||
|
|
||||||
|
// 生产单号
|
||||||
|
private Long orderId;
|
||||||
|
|
||||||
|
// 包裹编号
|
||||||
|
private String packageNo;
|
||||||
|
|
||||||
|
// 包裹类型,-1未定义,0板材,1配件,2其他配件
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
// 包裹名
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
// 包裹状态,0未封包,1已封包,2已入库,3已出库
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
|
||||||
|
// 备注
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
package com.cf.imes.module.executor.dal.dataobject.pack;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@TableName("order_prepackaged")
|
||||||
|
@Data
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OrderPrepackagedDO {
|
||||||
|
|
||||||
|
|
||||||
|
@TableId
|
||||||
|
// 生产单号-主键
|
||||||
|
private Long orderId;
|
||||||
|
|
||||||
|
|
||||||
|
// 预打包优化信息
|
||||||
|
private String result;
|
||||||
|
|
||||||
|
|
||||||
|
// 组织 ID
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
private Long organId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+23
-1
@@ -86,6 +86,7 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
|||||||
return selectList(new LambdaQueryWrapperX<GoodsDO>()
|
return selectList(new LambdaQueryWrapperX<GoodsDO>()
|
||||||
.eq(GoodsDO::getOrganId, organId)
|
.eq(GoodsDO::getOrganId, organId)
|
||||||
.eq(GoodsDO::getDeleted, false)
|
.eq(GoodsDO::getDeleted, false)
|
||||||
|
.eq(GoodsDO::getPlanId ,0)
|
||||||
.eq(GoodsDO::getGoodsId, goodsId));
|
.eq(GoodsDO::getGoodsId, goodsId));
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -117,7 +118,7 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<GoodsDO> seleTestSQL(@Param("filed") String filed,@Param("goodsIds") List<String> goodsIds ,@Param("organId") Long organId);
|
List<GoodsDO> selectPlanGoodsDataSource(@Param("filed") String filed,@Param("planId") Long planId ,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
default GoodsDO selectGoodsId(Long orderId, String goodsId, Long organId) {
|
default GoodsDO selectGoodsId(Long orderId, String goodsId, Long organId) {
|
||||||
@@ -199,4 +200,25 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
|||||||
|
|
||||||
List<Long> selectPlanOrderList(@Param("orderId") Long orderId,@Param("roomIds") Set<Long> roomIds, @Param("bodyId") Long bodyId,@Param("organId") Long organId);
|
List<Long> selectPlanOrderList(@Param("orderId") Long orderId,@Param("roomIds") Set<Long> roomIds, @Param("bodyId") Long bodyId,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
List<Long> selectPlanPlateList(@Param("planId") Long planId,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
List<Long> selectPlanBodyIds(@Param("planId") Long planId,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
List<Long> selectPlanGroupListDataSource(@Param("planId") Long planId,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
default List<GoodsDO> selectGoodsListByStatus(Long orderId, List<Long> goodsIds, Long organId) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<GoodsDO>()
|
||||||
|
.eq(GoodsDO::getOrganId, organId)
|
||||||
|
.eq(GoodsDO::getDeleted, true)
|
||||||
|
.eqIfPresent(GoodsDO::getOrderId,orderId)
|
||||||
|
.inIfPresent(GoodsDO::getId,goodsIds));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<GoodsDO> selectNoPlanGoodsList(@Param("orderId") Long orderId,@Param("goodsIds") List<Long> goodsIds,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+1
-1
@@ -227,7 +227,7 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<OrderDO> selectTestSQL(@Param("filed") String filed,@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
|
List<OrderDO> selectOrderDataSource(@Param("filed") String filed,@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -127,7 +127,7 @@ public interface OrderBodyMapper extends BaseMapperX<OrderBodyDO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<OrderBodyDO> selectTestSQL(@Param("filed") String filed,@Param("bodyIds") List<Long> bodyIds,@Param("organId") Long organId);
|
List<OrderBodyDO> selectPlanBodyRoomDataSource(@Param("filed") String filed,@Param("bodyIds") List<Long> bodyIds,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -108,6 +108,6 @@ public interface OrderGroupMapper extends BaseMapperX<OrderGroupDO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<OrderGroupRespVO> selectTestSQL(@Param("filed") String filed, @Param("field2") String field2 ,@Param("groupIds") List<Long> groupIds, @Param("organId") Long organId);
|
List<OrderGroupRespVO> selectPlanGroupDataSource(@Param("filed") String filed, @Param("field2") String field2 ,@Param("groupIds") List<Long> groupIds, @Param("organId") Long organId);
|
||||||
|
|
||||||
}
|
}
|
||||||
+11
-5
@@ -5,7 +5,6 @@ import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
|||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDetailRespVO;
|
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDetailRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
|
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
|
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy;
|
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy;
|
||||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailReqVO;
|
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailRespVO;
|
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailRespVO;
|
||||||
@@ -59,8 +58,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
|||||||
void deleteByPlateId(@Param("deletePlateIds") List<Long> deletePlateIds);
|
void deleteByPlateId(@Param("deletePlateIds") List<Long> deletePlateIds);
|
||||||
|
|
||||||
|
|
||||||
List<PrintOrderPackReqVO> selectPackList(@Param("ids") List<Long> ids, @Param("organId") Long organId);
|
|
||||||
|
|
||||||
|
|
||||||
default int deleteByBodyId(Long bodyId, Long organId) {
|
default int deleteByBodyId(Long bodyId, Long organId) {
|
||||||
return delete(new LambdaQueryWrapperX<OrderItemDO>()
|
return delete(new LambdaQueryWrapperX<OrderItemDO>()
|
||||||
@@ -94,9 +91,10 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
default List<OrderItemDO> selectPartsList(List<Long> partIds, Long organId) {
|
default List<OrderItemDO> selectPartsList(List<Long> partIds,List<Long> orderIds, Long organId) {
|
||||||
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||||
.eq(OrderItemDO::getOrganId,organId)
|
.eq(OrderItemDO::getOrganId,organId)
|
||||||
|
.inIfPresent(OrderItemDO::getOrderId,orderIds)
|
||||||
.inIfPresent(OrderItemDO::getPartsId, partIds)
|
.inIfPresent(OrderItemDO::getPartsId, partIds)
|
||||||
.select(OrderItemDO::getNum));
|
.select(OrderItemDO::getNum));
|
||||||
|
|
||||||
@@ -105,6 +103,14 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
|||||||
IPage<OrderRespVOCopy> selectTestNum(@Param("page") IPage page,@Param("organId") Long organId);
|
IPage<OrderRespVOCopy> selectTestNum(@Param("page") IPage page,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
List<PrintOrderPackReqVO> selectOrderPlateList(@Param("orderId") Long orderId,@Param("organId") Long organId);
|
default List<OrderItemDO> selectPackId(List<Long> bodyIds, Long organId) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||||
|
.eq(OrderItemDO::getOrganId,organId)
|
||||||
|
.inIfPresent(OrderItemDO::getBodyId,bodyIds)
|
||||||
|
.select(OrderItemDO::getPackageId));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void deletePackList(@Param("orderId") Long orderId,@Param("packIds") List<Long> packIds,@Param("organId") Long organId);
|
||||||
}
|
}
|
||||||
+1
-2
@@ -6,7 +6,6 @@ import com.cf.imes.framework.common.pojo.PageResult;
|
|||||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsPageReqVO;
|
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsPageReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
|
|
||||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.PartGoodsRespVO;
|
import com.cf.imes.module.executor.controller.admin.orderParts.vo.PartGoodsRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO;
|
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
||||||
@@ -87,7 +86,7 @@ public interface OrderPartsMapper extends BaseMapperX<OrderPartsDO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<OrderPartsDO> selectTestSql(@Param("filed") String filed,@Param("partIds") List<Long> partIds,@Param("organId") Long organId);
|
List<OrderPartsDO> selectPlanPartsDataSource(@Param("filed") String filed,@Param("partIds") List<Long> partIds,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
package com.cf.imes.module.executor.dal.mysql.pack;
|
||||||
|
|
||||||
|
|
||||||
|
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
|
||||||
|
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.pack.OrderPackageDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
|
||||||
|
|
||||||
|
|
||||||
|
void updatePackList(@Param("orderId") Long orderId, @Param("packIds") List<Long> packIds, @Param("organId") Long organId);
|
||||||
|
|
||||||
|
default List<OrderPackageDO> selectPackStatusList(Long orderId,Long organId) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<OrderPackageDO>()
|
||||||
|
.eq(OrderPackageDO::getOrganId,organId)
|
||||||
|
.eq(OrderPackageDO::getDeleted,false)
|
||||||
|
.eq(OrderPackageDO::getStatus, OrderPackageStatusEnum.PACKAGED.getStatus())
|
||||||
|
.eqIfPresent(OrderPackageDO::getOrderId, orderId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
package com.cf.imes.module.executor.dal.mysql.pack;
|
||||||
|
|
||||||
|
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.pack.OrderPrepackagedDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface OrderPrepackagedMapper extends BaseMapperX<OrderPrepackagedDO> {
|
||||||
|
|
||||||
|
default int deletePacked(Long orderId, Long organId) {
|
||||||
|
return delete(new LambdaQueryWrapperX<OrderPrepackagedDO>()
|
||||||
|
.eq(OrderPrepackagedDO::getOrganId, organId)
|
||||||
|
.eqIfPresent(OrderPrepackagedDO::getOrderId, orderId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+1
-1
@@ -103,7 +103,7 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
|
|||||||
List<OrderPlanStatisticsAreaRespVO> selectPlanAreaGroupByCreateTime(@Param("req") OrderStatisticsReqVO reqVO);
|
List<OrderPlanStatisticsAreaRespVO> selectPlanAreaGroupByCreateTime(@Param("req") OrderStatisticsReqVO reqVO);
|
||||||
|
|
||||||
|
|
||||||
List<PlanDO> seleTestSQL(@Param("filed") String filed,@Param("planId") Long planId,@Param("organId") Long organId);
|
List<PlanDO> selectPlanDataSource(@Param("filed") String filed,@Param("planId") Long planId,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+34
-3
@@ -10,6 +10,7 @@ import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
|||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.bo.GoodsNum;
|
import com.cf.imes.module.executor.controller.admin.plan.bo.GoodsNum;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds;
|
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateGoodsIdVO;
|
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateGoodsIdVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateGoodsRespVO;
|
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateGoodsRespVO;
|
||||||
@@ -143,13 +144,24 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
|||||||
default List<PlateDO> selectPlateNum(Long orderId, Long organId) {
|
default List<PlateDO> selectPlateNum(Long orderId, Long organId) {
|
||||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||||
.eq(PlateDO::getOrganId,organId)
|
.eq(PlateDO::getOrganId,organId)
|
||||||
|
.eq(PlateDO::getDeleted,false)
|
||||||
.eqIfPresent(PlateDO::getOrderId, orderId));
|
.eqIfPresent(PlateDO::getOrderId, orderId));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 房间id查小板的开料状态
|
default List<PlateDO> selectPlateDeletedStatus(Long orderId,List<Long> goodsIds, Long organId) {
|
||||||
List<Long> selectPlateTypeByRoomId(@Param("orderId") Long orderId, @Param("bodyIds") Collection<Long> bodyIds,
|
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||||
|
.eq(PlateDO::getOrganId,organId)
|
||||||
|
.eq(PlateDO::getDeleted,false)
|
||||||
|
.in(PlateDO::getGoodsId,goodsIds)
|
||||||
|
.eqIfPresent(PlateDO::getOrderId, orderId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 房间id查小板的开料状态
|
||||||
|
List<PlateDO> selectPlateTypeByRoomId(@Param("orderId") Long orderId, @Param("bodyIds") Collection<Long> bodyIds,
|
||||||
@Param("organId") Long organId, @Param("deleted") Integer deleted);
|
@Param("organId") Long organId, @Param("deleted") Integer deleted);
|
||||||
|
|
||||||
// 根据生产单id删除
|
// 根据生产单id删除
|
||||||
@@ -180,6 +192,7 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
|||||||
default List<PlateDO> selectPlateByPlateNo(List<Long> plateNo, Long organId) {
|
default List<PlateDO> selectPlateByPlateNo(List<Long> plateNo, Long organId) {
|
||||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||||
.eq(PlateDO::getOrganId,organId)
|
.eq(PlateDO::getOrganId,organId)
|
||||||
|
.eq(PlateDO::getDeleted,false)
|
||||||
.inIfPresent(PlateDO::getPlateNo, plateNo)
|
.inIfPresent(PlateDO::getPlateNo, plateNo)
|
||||||
.select(PlateDO::getOrderId));
|
.select(PlateDO::getOrderId));
|
||||||
|
|
||||||
@@ -197,7 +210,7 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<PlateRespVO> selectTestSQL(@Param("filed") String filed, @Param("field2") String field2,@Param("goodsIdList") List<Long> goodsIdList,@Param("organId") Long organId);
|
List<PlateRespVO> selectPlanPlateListDataSource(@Param("filed") String filed, @Param("field2") String field2,@Param("goodsIdList") List<Long> goodsIdList,@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -233,6 +246,24 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
|||||||
void updateNoPlateOptimized(@Param("orderIdList") List<Long> orderIdList,@Param("ids") List<Long> ids,@Param("organId") Long organId);
|
void updateNoPlateOptimized(@Param("orderIdList") List<Long> orderIdList,@Param("ids") List<Long> ids,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
List<PrintOrderPackReqVO> selectPlanPackList(@Param("ids") List<Long> ids,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
List<PrintOrderPackReqVO> selectOrderPackList(@Param("orderId") Long orderId,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
void updatePlateOptimizedStatus(@Param("plateDOList")List<Long> plateDOList,@Param("organId") Long organId,@Param("orderId") Long orderId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
default List<PlateDO> selectNoPlanPlate(Long orderId, List<Long> goodsIds, Long organId) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||||
|
.eq(PlateDO::getOrganId,organId)
|
||||||
|
.eqIfPresent(PlateDO::getOrderId,orderId)
|
||||||
|
.inIfPresent(PlateDO::getGoodsId,goodsIds)
|
||||||
|
.eq(PlateDO::getIsOptimized,false));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// List<PlateDO> selectTestSQL(@Param("sql") String sql);
|
// List<PlateDO> selectTestSQL(@Param("sql") String sql);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -41,9 +41,10 @@ public interface RemainPlateMapper extends BaseMapperX<RemainPlateDO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
default List<RemainPlateDO> selectByPlanId(Long planId, Long userOrganId) {
|
default List<RemainPlateDO> selectByPlanId(Long planId, Long organId) {
|
||||||
return selectList( new LambdaQueryWrapperX<RemainPlateDO>()
|
return selectList( new LambdaQueryWrapperX<RemainPlateDO>()
|
||||||
.eq(RemainPlateDO::getOrganId, userOrganId)
|
.eq(RemainPlateDO::getOrganId, organId)
|
||||||
|
.eq(RemainPlateDO::getDeleted,false)
|
||||||
.eq(RemainPlateDO::getPlanId, planId));
|
.eq(RemainPlateDO::getPlanId, planId));
|
||||||
|
|
||||||
|
|
||||||
@@ -59,7 +60,7 @@ public interface RemainPlateMapper extends BaseMapperX<RemainPlateDO> {
|
|||||||
.eq(RemainPlateDO::getOrganId, organId));
|
.eq(RemainPlateDO::getOrganId, organId));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<RemainPlateDO> selectTestSQL(@Param("filed") String filed,@Param("planId") Long planId,@Param("organId") Long organId);
|
List<RemainPlateDO> selectPlanRemainDataSource(@Param("filed") String filed,@Param("planId") Long planId,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+86
-107
@@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
||||||
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
||||||
import com.cf.imes.framework.common.exception.ServiceException;
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
|
import com.cf.imes.framework.common.util.Assert.AssertUtils;
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||||
import com.cf.imes.framework.security.core.LoginUser;
|
import com.cf.imes.framework.security.core.LoginUser;
|
||||||
@@ -66,6 +67,7 @@ import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.ge
|
|||||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_NOT_EXISTS;
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_NOT_EXISTS;
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS;
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS;
|
||||||
|
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author there
|
* @author there
|
||||||
@@ -160,14 +162,15 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
public Boolean commit(Long planId, List<Long> goodsNo) {
|
public Boolean commit(Long planId, List<Long> goodsNo) {
|
||||||
|
|
||||||
PlanDO planDO = planMapper.selectById(planId);
|
PlanDO planDO = planMapper.selectById(planId);
|
||||||
if (Objects.isNull(planDO)) {
|
|
||||||
throw exception(PLAN_NOT_EXISTS);
|
AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS);
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// todo 目前只解决了非混单的情况,混单情况待解决
|
// todo 目前只解决了非混单的情况,混单情况待解决
|
||||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 10);
|
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 10);
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(optimizeBoardModelDOS,ORDER_PLAN_OPTIMIZE_ERROR);
|
||||||
|
|
||||||
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||||
|
|
||||||
List<Long> plateNo = new ArrayList<>();
|
List<Long> plateNo = new ArrayList<>();
|
||||||
@@ -190,7 +193,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (JsonProcessingException e) {
|
} catch (JsonProcessingException e) {
|
||||||
e.printStackTrace();
|
throw exception(ORDER_PLAN_OPTIMIZE_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Long goods : goodsNo) {
|
for (Long goods : goodsNo) {
|
||||||
@@ -275,22 +278,14 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
Long planId = respVO.getPlanId();
|
Long planId = respVO.getPlanId();
|
||||||
List<Long> goodsNo = respVO.getGoodsNo();
|
List<Long> goodsNo = respVO.getGoodsNo();
|
||||||
|
|
||||||
// LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
|
||||||
// assert loginUser != null;
|
|
||||||
//
|
|
||||||
// if(!loginUser.getIsSupAdmin()){
|
|
||||||
//
|
|
||||||
// throw exception(INSUFFICIENT_PERMISSIONS);
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
PlanDO planDO = planMapper.selectById(planId);
|
PlanDO planDO = planMapper.selectById(planId);
|
||||||
if (planDO == null) {
|
|
||||||
throw exception(PLAN_NOT_EXISTS);
|
AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS);
|
||||||
}
|
|
||||||
|
|
||||||
// todo 目前只解决了非混单的情况,混单情况待解决
|
// todo 目前只解决了非混单的情况,混单情况待解决
|
||||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 99);
|
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 10);
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(optimizeBoardModelDOS,ORDER_PLAN_OPTIMIZE_ERROR);
|
||||||
|
|
||||||
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||||
|
|
||||||
@@ -459,10 +454,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
@Override
|
@Override
|
||||||
public OrderSource getOrderSourceByOrderId(Long orderId) {
|
public OrderSource getOrderSourceByOrderId(Long orderId) {
|
||||||
OrderDO orderDO = orderMapper.selectById(orderId);
|
OrderDO orderDO = orderMapper.selectById(orderId);
|
||||||
if (Objects.isNull(orderDO)) {
|
// if (Objects.isNull(orderDO)) {
|
||||||
throw exception(ORDER_NOT_EXISTS);
|
// throw exception(ORDER_NOT_EXISTS);
|
||||||
}
|
// }
|
||||||
OrderSource orderSource = new OrderSource();
|
|
||||||
|
AssertUtils.notEmpty(orderDO,ORDER_NOT_EXISTS);
|
||||||
|
|
||||||
|
|
||||||
List<GoodsReqVO> goodsDOS = goodsMapper.selectGoodsList(orderId,getUserOrganId());
|
List<GoodsReqVO> goodsDOS = goodsMapper.selectGoodsList(orderId,getUserOrganId());
|
||||||
@@ -470,6 +466,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
List<PlateDetialRespVO> plateDOS = plateMapper.selectPlateDetialList(orderId,getUserOrganId());
|
List<PlateDetialRespVO> plateDOS = plateMapper.selectPlateDetialList(orderId,getUserOrganId());
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(plateDOS,ORDER_PLATE_ERROR);
|
||||||
|
|
||||||
for (PlateDetialRespVO plateDetailsRespVO : plateDOS) {
|
for (PlateDetialRespVO plateDetailsRespVO : plateDOS) {
|
||||||
String name = "";
|
String name = "";
|
||||||
@@ -489,11 +486,14 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
Integer orderModelSize = plateDOS.size();
|
Integer orderModelSize = plateDOS.size();
|
||||||
|
|
||||||
|
|
||||||
List<OrderModelDO> orderModelDOS = buildRespByOrderId(orderId, ORDER_PLATE_MODEL, orderModelSize);
|
List<OrderModelDO> orderModelDOS = buildRespByOrderId(orderId, orderModelSize);
|
||||||
|
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(orderModelDOS,ORDER_PLATE_MODEL_DATE_ERROR);
|
||||||
|
|
||||||
|
|
||||||
// 大板数据的尺寸长度
|
// 大板数据的尺寸长度
|
||||||
Integer boardSize = goodsDOS.stream().map(GoodsReqVO::getId).toList().size();
|
Integer boardSize = goodsDOS.size();
|
||||||
|
|
||||||
|
|
||||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByOrderId(orderId, ORDER_REMAIN_PLATE_MODEL, boardSize);
|
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByOrderId(orderId, ORDER_REMAIN_PLATE_MODEL, boardSize);
|
||||||
@@ -504,8 +504,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
|
|
||||||
// 查询生产单对应的包裹信息
|
// 查询生产单对应的包裹信息
|
||||||
List<PrintOrderPackReqVO> printOrderPackReqVOS = orderItemMapper.selectOrderPlateList(orderId, getUserOrganId());
|
List<PrintOrderPackReqVO> printOrderPackReqVOS = plateMapper.selectOrderPackList(orderId,getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
// 统计每个订单的包装数量
|
// 统计每个订单的包装数量
|
||||||
printOrderPackReqVOS
|
printOrderPackReqVOS
|
||||||
@@ -515,14 +514,24 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
.forEach(f->f.setPackNum(printOrderPackReqVOS.stream().filter(e -> e.getOrderId().equals(orderId)).map(PrintOrderPackReqVO::getPackId).toList().size()));
|
.forEach(f->f.setPackNum(printOrderPackReqVOS.stream().filter(e -> e.getOrderId().equals(orderId)).map(PrintOrderPackReqVO::getPackId).toList().size()));
|
||||||
|
|
||||||
|
|
||||||
orderSource.setOrderList(Collections.singletonList(orderDO));
|
// orderSource.setOrderList(Collections.singletonList(orderDO));
|
||||||
orderSource.setPlateList(plateDOS);
|
// orderSource.setPlateList(plateDOS);
|
||||||
orderSource.setGoodsList(goodsDOS);
|
// orderSource.setGoodsList(goodsDOS);
|
||||||
orderSource.setPlateModels(orderModelDOS);
|
// orderSource.setPlateModels(orderModelDOS);
|
||||||
orderSource.setOptimizeBoardModelDOS(optimizeBoardModelDOS);
|
// orderSource.setOptimizeBoardModelDOS(optimizeBoardModelDOS);
|
||||||
orderSource.setOrderPartsRespVOS(printOrderPartsRespVOS);
|
// orderSource.setOrderPartsRespVOS(printOrderPartsRespVOS);
|
||||||
orderSource.setOrderPackReqVOS(printOrderPackReqVOS);
|
// orderSource.setOrderPackReqVOS(printOrderPackReqVOS);
|
||||||
return orderSource;
|
|
||||||
|
return OrderSource.builder()
|
||||||
|
.orderList(Collections.singletonList(orderDO))
|
||||||
|
.goodsList(goodsDOS)
|
||||||
|
.plateList(plateDOS)
|
||||||
|
.plateModels(orderModelDOS)
|
||||||
|
.optimizeBoardModelDOS(optimizeBoardModelDOS)
|
||||||
|
.orderPartsRespVOS(printOrderPartsRespVOS)
|
||||||
|
.orderPackReqVOS(printOrderPackReqVOS)
|
||||||
|
.build();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -530,15 +539,17 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
@Override
|
@Override
|
||||||
public OrderSource getOrderSourceByPlanId(Long planId) {
|
public OrderSource getOrderSourceByPlanId(Long planId) {
|
||||||
PlanDO planDO = planMapper.selectById(planId);
|
PlanDO planDO = planMapper.selectById(planId);
|
||||||
if (Objects.isNull(planDO)) {
|
// if (Objects.isNull(planDO)) {
|
||||||
throw exception(PLAN_NOT_EXISTS);
|
// throw exception(PLAN_NOT_EXISTS);
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS);
|
||||||
|
|
||||||
// 查询排单对应的大板信息
|
// 查询排单对应的大板信息
|
||||||
List<GoodsReqVO> goodsDOS = goodsMapper.selectGoodsListByOrderIds(planId,getUserOrganId());
|
List<GoodsReqVO> goodsDOS = goodsMapper.selectGoodsListByOrderIds(planId,getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
List<Long> orderIds = goodsDOS.stream().map(GoodsReqVO::getOrderId).toList();
|
List<Long> orderIds = goodsDOS.stream().map(GoodsReqVO::getOrderId).distinct().toList();
|
||||||
|
|
||||||
|
|
||||||
List<Long> ids = goodsDOS.stream().map(GoodsReqVO::getId).toList();
|
List<Long> ids = goodsDOS.stream().map(GoodsReqVO::getId).toList();
|
||||||
@@ -546,26 +557,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
List<PlateDetialRespVO> plateDetialRespVOS = plateMapper.selectPlateListByGoodsIds(ids, getUserOrganId());
|
List<PlateDetialRespVO> plateDetialRespVOS = plateMapper.selectPlateListByGoodsIds(ids, getUserOrganId());
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(plateDetialRespVOS,ORDER_PLAN_PLATE_ERROR);
|
||||||
// List<Long> bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList();
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds,orderIds, getUserOrganId());
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//// List<PlateDetialRespVO> detialRespVOS = new ArrayList<>();
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// for (OrderBodyDO orderBodyDO : orderBodyDOS) {
|
|
||||||
//
|
|
||||||
// plateDetialRespVOS.stream().filter(f -> f.getBodyId().equals(orderBodyDO.getId())).forEach(m -> {
|
|
||||||
// m.setBodyName(orderBodyDO.getName());
|
|
||||||
// m.setRoomName(orderBodyDO.getRoomName());
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (PlateDetialRespVO plateDetailsRespVO : plateDetialRespVOS) {
|
for (PlateDetialRespVO plateDetailsRespVO : plateDetialRespVOS) {
|
||||||
String name = "";
|
String name = "";
|
||||||
@@ -579,23 +571,15 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
}
|
}
|
||||||
plateDetailsRespVO.setProcessGroupName(name);
|
plateDetailsRespVO.setProcessGroupName(name);
|
||||||
|
|
||||||
// plateDetailsRespVO.setGoodsId(goodsDOS
|
|
||||||
// .stream()
|
|
||||||
// .filter(f->f.getId().equals(plateDetailsRespVO.getId()))
|
|
||||||
// .map(GoodsReqVO::getGoodsId)
|
|
||||||
// .findAny().orElse(null));
|
|
||||||
|
|
||||||
// plateDetailsRespVO.setGoodsName(goodsDOS
|
|
||||||
// .stream()
|
|
||||||
// .filter(f->f.getId().equals(plateDetailsRespVO.getId()))
|
|
||||||
// .map(GoodsReqVO::getGoodsName)
|
|
||||||
// .findAny().orElse(null));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(orderDOS,ORDER_PLAN_ERROR);
|
||||||
|
|
||||||
|
|
||||||
// 造型数据的尺寸长度
|
// 造型数据的尺寸长度
|
||||||
Integer orderModelSize = plateDetialRespVOS.size();
|
Integer orderModelSize = plateDetialRespVOS.size();
|
||||||
|
|
||||||
@@ -605,14 +589,18 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
List<OrderModelDO> orderModelDOS = buildRespByPlateIds(plateIds, orderModelSize);
|
List<OrderModelDO> orderModelDOS = buildRespByPlateIds(plateIds, orderModelSize);
|
||||||
|
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(orderModelDOS,ORDER_PLAN_PLATE_MODEL_DATE_ERROR);
|
||||||
|
|
||||||
|
|
||||||
// 大板数据的尺寸长度
|
// 大板数据的尺寸长度
|
||||||
Integer boardSize = goodsDOS.stream().map(GoodsReqVO::getId).toList().size();
|
Integer boardSize = goodsDOS.size();
|
||||||
|
|
||||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, boardSize);
|
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, boardSize);
|
||||||
|
|
||||||
|
|
||||||
List<RemainPlateDO> remainPlateDOS = remainPlateMapper.selectByPlanId(planId,getUserOrganId());
|
List<RemainPlateDO> remainPlateDOS = remainPlateMapper.selectByPlanId(planId,getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
List<OptimizeRemainPlate> optimizeRemainPlates = BeanUtils.toBean(remainPlateDOS, OptimizeRemainPlate.class);
|
List<OptimizeRemainPlate> optimizeRemainPlates = BeanUtils.toBean(remainPlateDOS, OptimizeRemainPlate.class);
|
||||||
|
|
||||||
|
|
||||||
@@ -620,19 +608,20 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
|
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
|
||||||
|
|
||||||
// 查询生产单对应的包裹信息
|
// 查询生产单对应的包裹信息
|
||||||
List<PrintOrderPackReqVO> printOrderPackReqVOS = orderItemMapper.selectPackList(ids, getUserOrganId());
|
List<PrintOrderPackReqVO> printOrderPackReqVOS = plateMapper.selectPlanPackList(ids,getUserOrganId());
|
||||||
|
|
||||||
for (Long orderId : orderIds) {
|
if(!printOrderPackReqVOS.isEmpty()) {
|
||||||
|
for (Long orderId : orderIds) {
|
||||||
|
|
||||||
// 统计每个订单的包装数量
|
// 统计每个订单的包装数量
|
||||||
printOrderPackReqVOS
|
printOrderPackReqVOS
|
||||||
.stream()
|
.stream()
|
||||||
.filter(f->f.getOrderId().equals(orderId))
|
.filter(f -> f.getOrderId().equals(orderId))
|
||||||
.forEach(f->f.setPackNum(printOrderPackReqVOS.stream().filter(e -> e.getOrderId().equals(orderId)).map(PrintOrderPackReqVO::getPackId).toList().size()));
|
.forEach(f -> f.setPackNum(printOrderPackReqVOS.stream().filter(e -> e.getOrderId().equals(orderId)).map(PrintOrderPackReqVO::getPackId).toList().size()));
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return OrderSource.builder()
|
return OrderSource.builder()
|
||||||
.orderList(orderDOS)
|
.orderList(orderDOS)
|
||||||
.plan(planDO)
|
.plan(planDO)
|
||||||
@@ -652,6 +641,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
List<GoodsReqVO> goodsReqVOS = goodsMapper.selectGoodsAndRemainPlate(ids, getUserOrganId());
|
List<GoodsReqVO> goodsReqVOS = goodsMapper.selectGoodsAndRemainPlate(ids, getUserOrganId());
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(goodsReqVOS,ORDER_GOODS_DATA_ERROR);
|
||||||
|
|
||||||
|
|
||||||
List<Long> orderIds = goodsReqVOS.stream().map(GoodsReqVO::getOrderId).distinct().toList();
|
List<Long> orderIds = goodsReqVOS.stream().map(GoodsReqVO::getOrderId).distinct().toList();
|
||||||
|
|
||||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||||
@@ -660,22 +652,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
List<PlateDetialRespVO> plateDetialRespVOS = plateMapper.selectPlateListByGoodsIds(ids, getUserOrganId());
|
List<PlateDetialRespVO> plateDetialRespVOS = plateMapper.selectPlateListByGoodsIds(ids, getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
// List<Long> bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList();
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds,orderIds, getUserOrganId());
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// for (OrderBodyDO orderBodyDO : orderBodyDOS) {
|
|
||||||
//
|
|
||||||
// plateDetialRespVOS.stream().filter(f -> f.getBodyId().equals(orderBodyDO.getId())).forEach(m -> {
|
|
||||||
// m.setBodyName(orderBodyDO.getName());
|
|
||||||
// m.setRoomName(orderBodyDO.getRoomName());
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
for (PlateDetialRespVO plateDetailsRespVO : plateDetialRespVOS) {
|
for (PlateDetialRespVO plateDetailsRespVO : plateDetialRespVOS) {
|
||||||
String name = "";
|
String name = "";
|
||||||
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
||||||
@@ -688,13 +664,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
plateDetailsRespVO.setProcessGroupName(name);
|
plateDetailsRespVO.setProcessGroupName(name);
|
||||||
|
|
||||||
// // todo 这样写混单时同样适用,后面加混单后这里不用修改
|
|
||||||
// plateDetailsRespVO.setGoodsId(goodsReqVOS
|
|
||||||
// .stream()
|
|
||||||
// .filter(f->f.getId().equals(plateDetailsRespVO.getId()))
|
|
||||||
// .map(GoodsReqVO::getGoodsId)
|
|
||||||
// .findAny().orElse(null));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -729,16 +698,23 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
// todo 目前只解决非混单的情况下,
|
// todo 目前只解决非混单的情况下,
|
||||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, planIds.size());
|
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, planIds.size());
|
||||||
|
|
||||||
if(!optimizeBoardModelDOS.isEmpty()){
|
if(!optimizeBoardModelDOS.isEmpty()){
|
||||||
|
|
||||||
deleteByPlanId(planIds,ORDER_REMAIN_PLATE_MODEL);
|
deleteByPlanId(planIds,ORDER_REMAIN_PLATE_MODEL);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 保存优化后的大板数据
|
// 保存优化后的大板数据
|
||||||
batchSaveBoardModel(req.getOptimizeBoardModelDOS());
|
batchSaveBoardModel(req.getOptimizeBoardModelDOS());
|
||||||
|
|
||||||
|
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(planIds, getUserOrganId());
|
||||||
|
|
||||||
|
List<Long> ids = goodsDOS.stream().map(GoodsDO::getId).distinct().toList();
|
||||||
|
|
||||||
|
List<Long> orderIds = goodsDOS.stream().map(GoodsDO::getOrderId).distinct().toList();
|
||||||
|
|
||||||
|
plateMapper.updatePlateOptimized(orderIds,ids,getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
// // 保存余料板的数据
|
// // 保存余料板的数据
|
||||||
// if (CollectionUtil.isNotEmpty(req.getOptimizeRemainPlates())) {
|
// if (CollectionUtil.isNotEmpty(req.getOptimizeRemainPlates())) {
|
||||||
@@ -818,8 +794,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
List<PlateDO> plateDOS = plateMapper.selectPlateNum(orderId, getUserOrganId());
|
List<PlateDO> plateDOS = plateMapper.selectPlateNum(orderId, getUserOrganId());
|
||||||
|
|
||||||
|
if(plateDOS.isEmpty()){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return buildRespByOrderId(orderId, ORDER_PLATE_MODEL,plateDOS.size());
|
return buildRespByOrderId(orderId, plateDOS.size());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -843,9 +822,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<OrderModelDO> buildRespByOrderId(Long orderId, String index,Integer size) {
|
private List<OrderModelDO> buildRespByOrderId(Long orderId, Integer size) {
|
||||||
SearchRequest.Builder builder = new SearchRequest.Builder();
|
SearchRequest.Builder builder = new SearchRequest.Builder();
|
||||||
builder.index(index);
|
builder.index(OptimizePlanService.ORDER_PLATE_MODEL);
|
||||||
builder.size(size);
|
builder.size(size);
|
||||||
builder.query(q -> q.term(b -> b.field("orderId").value(orderId)));
|
builder.query(q -> q.term(b -> b.field("orderId").value(orderId)));
|
||||||
try {
|
try {
|
||||||
@@ -874,12 +853,12 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
boolean errors = bulkResponse.errors();
|
boolean errors = bulkResponse.errors();
|
||||||
if (errors) {
|
if (errors) {
|
||||||
log.error(bulkResponse.items().toString());
|
log.error(bulkResponse.items().toString());
|
||||||
throw new ServiceException(500, "未知异常");
|
throw new ServiceException(INTERNAL_SERVER_ERROR);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
log.error(e.getMessage());
|
log.error(e.getMessage());
|
||||||
throw new RuntimeException(e);
|
throw new ServiceException(INTERNAL_SERVER_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-5
@@ -1,20 +1,19 @@
|
|||||||
package com.cf.imes.module.executor.service.order;
|
package com.cf.imes.module.executor.service.order;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import javax.validation.*;
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cf.imes.framework.common.pojo.PageParam;
|
import com.cf.imes.framework.common.pojo.PageParam;
|
||||||
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.*;
|
import com.cf.imes.module.executor.controller.admin.order.vo.order.*;
|
||||||
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO;
|
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderRoomBodyRespVO;
|
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderRoomBodyRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
|
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
|
||||||
import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.OrderPlateImportExcelVO;
|
import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.OrderPlateImportExcelVO;
|
||||||
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.OrderXmlVO;
|
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.OrderXmlVO;
|
||||||
import org.springframework.boot.system.ApplicationHome;
|
import org.springframework.boot.system.ApplicationHome;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -91,7 +90,9 @@ public interface OrderService {
|
|||||||
* @param roomId: 房间id
|
* @param roomId: 房间id
|
||||||
* @param bodyId: 柜体id
|
* @param bodyId: 柜体id
|
||||||
*/
|
*/
|
||||||
void updateBodyDeletedByOrderId(Long orderId , Set<Long> roomId, Long bodyId, Integer status);
|
void updateDeleteBody(Long orderId , Set<Long> roomId, Long bodyId, Integer status);
|
||||||
|
|
||||||
|
void updateRestoreBody(Long orderId , Set<Long> roomId, Long bodyId, Integer status);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param listMap:生产单号
|
* @param listMap:生产单号
|
||||||
|
|||||||
+177
-40
@@ -30,6 +30,7 @@ import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
|||||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.pack.OrderPackageDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO;
|
import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO;
|
||||||
@@ -40,6 +41,8 @@ import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper;
|
|||||||
import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper;
|
import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
|
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper;
|
import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.pack.OrderPackageMapper;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.pack.OrderPrepackagedMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.plate.PlateGoodMapper;
|
import com.cf.imes.module.executor.dal.mysql.plate.PlateGoodMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
|
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
|
||||||
@@ -63,12 +66,14 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||||
@@ -113,6 +118,12 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
@Resource
|
@Resource
|
||||||
private OrderItemMapper orderItemMapper;
|
private OrderItemMapper orderItemMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderPackageMapper orderPackageMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderPrepackagedMapper orderPrepackagedMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private OrderInputProcessor orderInputProcessor;
|
private OrderInputProcessor orderInputProcessor;
|
||||||
|
|
||||||
@@ -242,7 +253,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateBodyDeletedByOrderId(Long orderId, Set<Long> roomIds, Long bodyId, Integer status) { // 要删除传1,还原传0
|
public void updateDeleteBody(Long orderId, Set<Long> roomIds, Long bodyId, Integer status) { // 要删除传1,还原传0
|
||||||
// 判断生产单的状态和生产单柜体对应的板擦是否已开料
|
// 判断生产单的状态和生产单柜体对应的板擦是否已开料
|
||||||
List<Long> planIds = validateOrderStatus(orderId, roomIds, bodyId, getUserOrganId(), OrderDeletedEnum.NOT_DELETED.getStatus());
|
List<Long> planIds = validateOrderStatus(orderId, roomIds, bodyId, getUserOrganId(), OrderDeletedEnum.NOT_DELETED.getStatus());
|
||||||
|
|
||||||
@@ -257,43 +268,52 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (bodyIds.size() != 0){
|
if (bodyIds.size() != 0){
|
||||||
List<Long> plateDOList = plateMapper.selectPlateTypeByRoomId(orderId, bodyIds, getUserOrganId(), index);
|
|
||||||
|
List<PlateDO> plateDOList = plateMapper.selectPlateTypeByRoomId(orderId, bodyIds, getUserOrganId(), index);
|
||||||
|
List<Long> plateIds = plateDOList.stream().map(PlateDO::getId).toList();
|
||||||
|
|
||||||
|
List<Long> goodsIds = plateDOList.stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||||
// List<Long> groupIds = orderGroupMapper.selectListByBodyId(bodyIds, orderId, getUserOrganId(), index);
|
// List<Long> groupIds = orderGroupMapper.selectListByBodyId(bodyIds, orderId, getUserOrganId(), index);
|
||||||
|
|
||||||
orderBodyMapper.updateDeletedById(bodyIds, status, getUserOrganId(), orderId);// 柜体
|
orderBodyMapper.updateDeletedById(bodyIds, status, getUserOrganId(), orderId);// 柜体
|
||||||
orderGroupMapper.updateDeletedById(bodyIds, status, getUserOrganId(), orderId);// 加工组
|
orderGroupMapper.updateDeletedById(bodyIds, status, getUserOrganId(), orderId);// 加工组
|
||||||
if (plateDOList != null && plateDOList.size() != 0) {
|
|
||||||
plateMapper.updateDeletedById(plateDOList, status, getUserOrganId(), orderId);// 删小板
|
if (!plateDOList.isEmpty()) {
|
||||||
|
plateMapper.updateDeletedById(plateIds, status, getUserOrganId(), orderId);// 删小板
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 删除包裹,只需删除,无需还原
|
||||||
|
List<Long> packIds = orderItemMapper.selectPackId(bodyIds, getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
|
||||||
|
|
||||||
|
orderPackageMapper.updatePackList(orderId, packIds, getUserOrganId());
|
||||||
|
|
||||||
|
orderItemMapper.deletePackList(orderId, packIds, getUserOrganId());
|
||||||
|
|
||||||
|
orderPrepackagedMapper.deletePacked(orderId,getUserOrganId());
|
||||||
|
|
||||||
|
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatusList(orderId, getUserOrganId());
|
||||||
|
|
||||||
|
if(orderPackageDOS.isEmpty()){
|
||||||
|
|
||||||
|
OrderDO orderDO = orderMapper.selectById(orderId);
|
||||||
|
|
||||||
|
orderDO.setPackaged(OrderPackageStatusEnum.UNPACKED.getStatus());
|
||||||
|
|
||||||
|
orderMapper.updateById(orderDO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 删除大板
|
// 删除大板
|
||||||
List<PlateDO> goodsIdList = plateMapper.selectPlateNum(orderId, getUserOrganId());
|
List<PlateDO> goodsList = plateMapper.selectPlateDeletedStatus(orderId, goodsIds, getUserOrganId());
|
||||||
Map<Long, List<PlateDO>> goodsIdMap = goodsIdList.stream()
|
|
||||||
.collect(Collectors.groupingBy(PlateDO::getGoodsId));
|
|
||||||
|
|
||||||
List<Long> goodsIdDeleted = new ArrayList<>();
|
List<Long> goodsIdList = goodsList.stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||||
|
|
||||||
goodsIdMap.forEach((goodsId, plates) -> {
|
List<Long> goodsIdDeleted = Stream.concat(
|
||||||
if (plates.isEmpty()) {
|
goodsIds.stream().filter(str -> !goodsIdList.contains(str)),
|
||||||
goodsIdDeleted.add(goodsId);
|
goodsIdList.stream().filter(str -> !goodsIds.contains(str)))
|
||||||
return;
|
.toList();
|
||||||
}
|
|
||||||
boolean allDeleted = true;
|
|
||||||
for (PlateDO plateDO : plates) {
|
|
||||||
if (status == 1) {
|
|
||||||
if (!plateDO.getDeleted()) {
|
|
||||||
allDeleted = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (plateDO.getDeleted()) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (allDeleted) {
|
|
||||||
goodsIdDeleted.add(goodsId);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (goodsIdDeleted.size() > 0) {
|
if (goodsIdDeleted.size() > 0) {
|
||||||
|
|
||||||
@@ -301,18 +321,20 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(planIds != null) {
|
|
||||||
|
if(!planIds.isEmpty()) {
|
||||||
// 判断删除的柜体对应的板材是否和排单板材一样
|
// 判断删除的柜体对应的板材是否和排单板材一样
|
||||||
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(planIds, getUserOrganId());
|
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(planIds, getUserOrganId());
|
||||||
|
|
||||||
// 一样,同时删除排单的信息
|
// 一样,同时删除排单的信息
|
||||||
if(goodsDOS.isEmpty()){
|
if(goodsDOS.isEmpty() && status.equals(1)){
|
||||||
planService.deletePlan(planIds);
|
planService.deletePlan(planIds);
|
||||||
}else {
|
|
||||||
// 只要有排单,不管删除的柜体的板材数和排单数一样,都要删除排单对应的优化数据(不用这种写法进行删除时,有时会报错,原因目前还没找到)
|
|
||||||
planService.deleteByPlanId(planIds, ORDER_REMAIN_PLATE_MODEL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 只要有排单,不管删除的柜体的板材数和排单数一样,都要删除排单对应的优化数据(不用这种写法进行删除时,有时会报错,原因目前还没找到)
|
||||||
|
planService.deleteByPlanId(planIds, ORDER_REMAIN_PLATE_MODEL);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Long> partsList = orderPartsMapper.selectPartsIdListByBodyId(bodyIds, getUserOrganId(), orderId); // 配件
|
List<Long> partsList = orderPartsMapper.selectPartsIdListByBodyId(bodyIds, getUserOrganId(), orderId); // 配件
|
||||||
@@ -331,6 +353,123 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void updateRestoreBody(Long orderId, Set<Long> roomIds, Long bodyId, Integer status) { // 要删除传1,还原传0
|
||||||
|
|
||||||
|
// 校验存在
|
||||||
|
OrderDO orderDO = orderMapper.selectOrderOne(orderId, getUserOrganId());
|
||||||
|
if (orderDO == null)
|
||||||
|
throw exception(ORDER_NOT_EXISTS);
|
||||||
|
|
||||||
|
List<Long> bodyIds = new ArrayList<>();
|
||||||
|
Integer index = status == 1 ? 0 : 1;
|
||||||
|
|
||||||
|
if (roomIds != null && roomIds.size() != 0) {
|
||||||
|
bodyIds = orderBodyMapper.selectBodyIdByRoomId(orderId, roomIds, getUserOrganId(), index);
|
||||||
|
} else if (bodyId != null && bodyId != 0) {
|
||||||
|
validateOrderBodyExists(orderId, bodyId, getUserOrganId(), index);
|
||||||
|
bodyIds.add(bodyId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (bodyIds.size() != 0){
|
||||||
|
|
||||||
|
List<PlateDO> plateDOList = plateMapper.selectPlateTypeByRoomId(orderId, bodyIds, getUserOrganId(), index);
|
||||||
|
List<Long> plateIds = plateDOList.stream().map(PlateDO::getId).toList();
|
||||||
|
|
||||||
|
List<Long> goodsIds = plateDOList.stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||||
|
|
||||||
|
orderBodyMapper.updateDeletedById(bodyIds, status, getUserOrganId(), orderId);// 柜体
|
||||||
|
orderGroupMapper.updateDeletedById(bodyIds, status, getUserOrganId(), orderId);// 加工组
|
||||||
|
|
||||||
|
// 小板还原
|
||||||
|
if (!plateDOList.isEmpty()) {
|
||||||
|
plateMapper.updateDeletedById(plateIds, status, getUserOrganId(), orderId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 还原大板
|
||||||
|
List<GoodsDO> goodsDOS = goodsMapper.selectGoodsListByStatus(orderId, goodsIds, getUserOrganId());
|
||||||
|
if(!goodsDOS.isEmpty()){
|
||||||
|
goodsMapper.updateBatch(goodsDOS.stream().map(m -> m.setDeleted(false)).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 当大板对应的小板已经排单时,新建相同类型的大板,并将其他未排单的小板对应的大板ID修改为新的大板ID
|
||||||
|
List<GoodsDO> goodsDOList = goodsMapper.selectNoPlanGoodsList(orderId, goodsIds, getUserOrganId());
|
||||||
|
|
||||||
|
List<GoodsDO> goodsList = BeanUtils.toBean(goodsDOList, GoodsDO.class);
|
||||||
|
|
||||||
|
if(!goodsDOList.isEmpty()){
|
||||||
|
|
||||||
|
// 新增的大板信息
|
||||||
|
List<GoodsDO> list = goodsDOList.stream()
|
||||||
|
.peek(m -> {
|
||||||
|
m.setId(null);
|
||||||
|
m.setPlanId(0L);
|
||||||
|
m.setCreateTime(LocalDateTime.now());
|
||||||
|
m.setUpdateTime(LocalDateTime.now());
|
||||||
|
})
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
goodsMapper.insertBatch(list);
|
||||||
|
|
||||||
|
// 构建新的数据集,保存新的大板ID和旧的大板ID,大板的实际ID关联这两个信息
|
||||||
|
List<OrderGoodsIds> orderGoodsIds = BeanUtils.toBean(list, OrderGoodsIds.class);
|
||||||
|
|
||||||
|
List<OrderGoodsIds> orderGoodsIdsList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (GoodsDO goodsDO : goodsList) {
|
||||||
|
orderGoodsIdsList.addAll(orderGoodsIds.stream()
|
||||||
|
.filter(f -> f.getGoodsId().equals(goodsDO.getGoodsId()))
|
||||||
|
// .filter(a -> a.getOldId() == null)
|
||||||
|
.map(m -> m.setOldId(goodsDO.getId())).toList());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 需要修改的小板为未排单的部分,无论其是否删除,都需要修改,但只需修改大板ID即可,其他信息无需修改
|
||||||
|
List<PlateDO> plateDOS = plateMapper.selectNoPlanPlate(orderId, goodsIds, getUserOrganId());
|
||||||
|
|
||||||
|
List<PlateDO> plateList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (OrderGoodsIds ids : orderGoodsIdsList) {
|
||||||
|
|
||||||
|
plateList.addAll(plateDOS.stream()
|
||||||
|
.filter(f->f.getGoodsId().equals(ids.getOldId()))
|
||||||
|
.peek(m->{
|
||||||
|
m.setGoodsId(ids.getId());
|
||||||
|
})
|
||||||
|
.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
plateMapper.updateBatch(plateList);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<Long> partsList = orderPartsMapper.selectPartsIdListByBodyId(bodyIds, getUserOrganId(), orderId); // 配件
|
||||||
|
if (partsList != null && partsList.size() != 0){
|
||||||
|
orderPartsMapper.updateDeletedById(partsList, status, getUserOrganId());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生产单柜体数量判断
|
||||||
|
if (orderBodyMapper.selectCountByOrderId(orderId, getUserOrganId(), OrderDeletedEnum.NOT_DELETED.getStatus()) == 0) {
|
||||||
|
orderMapper.updateOrderStatus(orderId, OrderStatusEnum.EMPTY.getStatus(), getUserOrganId());
|
||||||
|
}else {
|
||||||
|
orderMapper.updateOrderStatus(orderId, OrderStatusEnum.NEW_ORDER.getStatus(), getUserOrganId());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Long importApiData(Map<String, List<?>> listMap) {
|
public Long importApiData(Map<String, List<?>> listMap) {
|
||||||
@@ -848,7 +987,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
|
|
||||||
// 判断小板是否已开料,已开料不允许删除
|
// 判断小板是否已开料,已开料不允许删除
|
||||||
List<Long> planIds = goodsMapper.selectPlanOrderList(orderId, roomIds, bodyId, organId);
|
List<Long> planIds = goodsMapper.selectPlanOrderList(orderId, roomIds, bodyId, organId);
|
||||||
if(!planIds.isEmpty()) {
|
if(!planIds.isEmpty() && status.equals(1)) {
|
||||||
|
|
||||||
List<PlanDO> planDOS = planMapper.selectPlanStatus(planIds, organId);
|
List<PlanDO> planDOS = planMapper.selectPlanStatus(planIds, organId);
|
||||||
|
|
||||||
@@ -856,11 +995,9 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
|
|
||||||
// planService.deleteByPlanId(planIds, ORDER_REMAIN_PLATE_MODEL);
|
// planService.deleteByPlanId(planIds, ORDER_REMAIN_PLATE_MODEL);
|
||||||
|
|
||||||
return planIds;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
|
return planIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+89
-48
@@ -16,6 +16,7 @@ import com.cf.imes.framework.common.enums.PlanFilterTypeEnum;
|
|||||||
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
||||||
import com.cf.imes.framework.common.exception.ServiceException;
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
|
import com.cf.imes.framework.common.util.Assert.AssertUtils;
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||||
@@ -57,6 +58,7 @@ import java.io.IOException;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_ERROR_DELETE;
|
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_ERROR_DELETE;
|
||||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR;
|
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR;
|
||||||
@@ -64,7 +66,7 @@ import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.e
|
|||||||
import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator;
|
import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator;
|
||||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*;
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*;
|
||||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE;
|
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生产单开料排单 Service 实现类
|
* 生产单开料排单 Service 实现类
|
||||||
@@ -124,6 +126,8 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
// todo 目前只考虑了非混单的情况,混单的情况待考虑
|
// todo 目前只考虑了非混单的情况,混单的情况待考虑
|
||||||
List<PlanSaveReqVO.Item> itemList = createReqVO.getItemList();
|
List<PlanSaveReqVO.Item> itemList = createReqVO.getItemList();
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(itemList,INSERT_PLATE_DATE_ERROR);
|
||||||
|
|
||||||
ArrayList<PlanDO> planDOS = new ArrayList<>();
|
ArrayList<PlanDO> planDOS = new ArrayList<>();
|
||||||
|
|
||||||
List<GoodsDO> goodsDOS = new ArrayList<>();
|
List<GoodsDO> goodsDOS = new ArrayList<>();
|
||||||
@@ -187,7 +191,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
public void updatePlan(PlanSaveReqVO updateReqVO) {
|
public void updatePlan(PlanSaveReqVO updateReqVO) {
|
||||||
|
|
||||||
// 校验排单是否存在,是否开料
|
// 校验排单是否存在,是否开料
|
||||||
validatePlanExists(updateReqVO.getId(),updateReqVO.getMachineId());
|
validatePlanExists(updateReqVO.getId());
|
||||||
|
|
||||||
// 更新
|
// 更新
|
||||||
PlanDO plan = BeanUtils.toBean(updateReqVO, PlanDO.class);
|
PlanDO plan = BeanUtils.toBean(updateReqVO, PlanDO.class);
|
||||||
@@ -374,7 +378,11 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
optimizeBoardModelDOS.forEach(f -> orderIdList.addAll(f.getOrderId()));
|
optimizeBoardModelDOS.forEach(f -> orderIdList.addAll(f.getOrderId()));
|
||||||
|
|
||||||
// 已经删除的排单的生产单号和新查找的生生产单号对比,找出不同的部分
|
// 已经删除的排单的生产单号和新查找的生生产单号对比,找出不同的部分
|
||||||
diff = orderIds.stream().filter(f -> !orderIdList.contains(f)).toList();
|
// diff = orderIds.stream().filter(f -> !orderIdList.contains(f)).toList();
|
||||||
|
diff = Stream.concat(
|
||||||
|
orderIds.stream().filter(str -> !orderIdList.contains(str)),
|
||||||
|
orderIdList.stream().filter(str -> !orderIds.contains(str)))
|
||||||
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!diff.isEmpty()){
|
if(!diff.isEmpty()){
|
||||||
@@ -391,42 +399,14 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void validatePlanExists(Long id, Long machineId) {
|
|
||||||
PlanDO planDO = planMapper.selectById(id);
|
|
||||||
if ( planDO== null) {
|
|
||||||
throw exception(PLAN_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(planDO.getStatus().equals(PlanStatusEnum.OPENING.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){
|
|
||||||
throw exception(LIST_CHANGES_ARE_PROHIBITED);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void validatePlan(List<Long> ids) {
|
|
||||||
|
|
||||||
List<PlanDO> planDOS = planMapper.selectBatchIds(ids);
|
|
||||||
|
|
||||||
for (PlanDO planDO : planDOS) {
|
|
||||||
if ( planDO== null) {
|
|
||||||
throw exception(PLAN_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( planDO.getStatus().equals(PlanStatusEnum.OPENING.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus()) ) {
|
|
||||||
throw exception(PLAN_NOT_ALLOW_DELETE,planDO.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PlanRespVO getPlan(Long id) {
|
public PlanRespVO getPlan(Long id) {
|
||||||
|
|
||||||
PlanDO planDO = planMapper.selectById(id);
|
PlanDO planDO = planMapper.selectById(id);
|
||||||
|
|
||||||
if ( planDO== null) {
|
AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS);
|
||||||
throw exception(PLAN_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
|
|
||||||
return BeanUtils.toBean(planDO, PlanRespVO.class);
|
return BeanUtils.toBean(planDO, PlanRespVO.class);
|
||||||
|
|
||||||
@@ -445,6 +425,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
PlanDO planDO = planMapper.selectById(pageReqVO.getId());
|
PlanDO planDO = planMapper.selectById(pageReqVO.getId());
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(planDO,ORDER_PLAN_DATE_ERROR);
|
||||||
|
|
||||||
List<PlanDO> plan = pageReqVO.getIsUp() ?
|
List<PlanDO> plan = pageReqVO.getIsUp() ?
|
||||||
planMapper.selectPlanIds(planDO.getCreateTime().toString(),planDO.getSort(), getUserOrganId(), planDO.getId()) :
|
planMapper.selectPlanIds(planDO.getCreateTime().toString(),planDO.getSort(), getUserOrganId(), planDO.getId()) :
|
||||||
@@ -519,8 +500,6 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
// 根据排单ID查询ES中的优化数据 todo 目前只解决无混单的情况,混单情况待解决
|
// 根据排单ID查询ES中的优化数据 todo 目前只解决无混单的情况,混单情况待解决
|
||||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, infoVOList.size());
|
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, infoVOList.size());
|
||||||
|
|
||||||
// for (OptimizeBoardModelDO optimizeBoardModelDO : optimizeBoardModelDOS) {
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 获取排单对应的生产单的信息
|
// 获取排单对应的生产单的信息
|
||||||
List<PlanOrderRespVO> planOrderRespVOS = planItemMapper.selectOrderList(planIds, getUserOrganId());
|
List<PlanOrderRespVO> planOrderRespVOS = planItemMapper.selectOrderList(planIds, getUserOrganId());
|
||||||
@@ -549,7 +528,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
e.setOptimizeGoodsCount(optimizeBoardModelDOS.stream()
|
e.setOptimizeGoodsCount(optimizeBoardModelDOS.stream()
|
||||||
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
||||||
// todo 目前兼容修改,新的需求不需要这个校验
|
// todo 目前兼容修改,新的需求不需要这个校验
|
||||||
.mapToLong(m -> m.getBoardCount() == null ?0 : m.getBoardCount())
|
.mapToLong(m -> m.getBoardCount() == null ? 0 : m.getBoardCount())
|
||||||
.sum());
|
.sum());
|
||||||
// 大板开料数
|
// 大板开料数
|
||||||
e.setCutGoodsCount(optimizeBoardModelDOS.stream()
|
e.setCutGoodsCount(optimizeBoardModelDOS.stream()
|
||||||
@@ -652,7 +631,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
.in("order_id",orderIds)
|
.in("order_id",orderIds)
|
||||||
.eq("is_optimized",false)
|
.eq("is_optimized",false)
|
||||||
.inIfPresent("goods_id",goodsIds)
|
.inIfPresent("goods_id",goodsIds)
|
||||||
.inIfPresent("goods_id",pageReqVO.getIds())
|
.inIfPresent("id",pageReqVO.getIds())
|
||||||
.eqIfPresent("is_special_shaped", pageReqVO.getRectangle() != null ? false: null)
|
.eqIfPresent("is_special_shaped", pageReqVO.getRectangle() != null ? false: null)
|
||||||
.eqIfPresent("is_special_shaped", pageReqVO.getSpecialShaped())
|
.eqIfPresent("is_special_shaped", pageReqVO.getSpecialShaped())
|
||||||
.eqIfPresent("is_sculpt", pageReqVO.getSculpt())
|
.eqIfPresent("is_sculpt", pageReqVO.getSculpt())
|
||||||
@@ -817,13 +796,10 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
// .eq("og.organ_id",getUserOrganId())
|
// .eq("og.organ_id",getUserOrganId())
|
||||||
// .eq("og.plan_id",0)
|
// .eq("og.plan_id",0)
|
||||||
// .eq("og.deleted",false)
|
// .eq("og.deleted",false)
|
||||||
|
|
||||||
.inIfPresent("og.order_id", pageReqVO.getOrderIds())
|
.inIfPresent("og.order_id", pageReqVO.getOrderIds())
|
||||||
.inIfPresent("og.id", pageReqVO.getIds())
|
.inIfPresent("og.id", pageReqVO.getIds())
|
||||||
|
|
||||||
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
||||||
.eqIfPresent("og.goods_id",pageReqVO.getGoodsId())
|
.eqIfPresent("og.goods_id",pageReqVO.getGoodsId())
|
||||||
|
|
||||||
.likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
|
.likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
|
||||||
.likeIfPresent("o.customer", pageReqVO.getConsignee())
|
.likeIfPresent("o.customer", pageReqVO.getConsignee())
|
||||||
.likeIfPresent("o.custom_order_no", pageReqVO.getDefaultId())
|
.likeIfPresent("o.custom_order_no", pageReqVO.getDefaultId())
|
||||||
@@ -935,7 +911,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
for (Long planId : vo.getPlanIds()) {
|
for (Long planId : vo.getPlanIds()) {
|
||||||
validatePlanExists(planId,null);
|
validatePlan(planId);
|
||||||
}
|
}
|
||||||
QueryWrapperX<GoodsDO> queryWrapperX = new QueryWrapperX<>();
|
QueryWrapperX<GoodsDO> queryWrapperX = new QueryWrapperX<>();
|
||||||
|
|
||||||
@@ -967,6 +943,10 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
IPage<PlateResList> pageResult = goodsMapper.selectPlanGoodsListByPlanId(page, queryWrapperX);
|
IPage<PlateResList> pageResult = goodsMapper.selectPlanGoodsListByPlanId(page, queryWrapperX);
|
||||||
|
|
||||||
|
if (CollectionUtil.isEmpty(pageResult.getRecords())) {
|
||||||
|
return new PageResult<>();
|
||||||
|
}
|
||||||
|
|
||||||
Set<Long> bodyIds = pageResult.getRecords().stream().map(PlateResList::getBodyId).collect(Collectors.toSet());
|
Set<Long> bodyIds = pageResult.getRecords().stream().map(PlateResList::getBodyId).collect(Collectors.toSet());
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(bodyIds)) {
|
if (CollectionUtil.isNotEmpty(bodyIds)) {
|
||||||
@@ -981,6 +961,9 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<OrderRespVO> getOrderByPlanId(PlanOrderPageReqVO pageReqVO) {
|
public PageResult<OrderRespVO> getOrderByPlanId(PlanOrderPageReqVO pageReqVO) {
|
||||||
|
|
||||||
|
validatePlan(pageReqVO.getPlanId());
|
||||||
|
|
||||||
MPJLambdaWrapperX<OrderDO> lambdaWrapperX = new MPJLambdaWrapperX<>();
|
MPJLambdaWrapperX<OrderDO> lambdaWrapperX = new MPJLambdaWrapperX<>();
|
||||||
lambdaWrapperX.leftJoin(GoodsDO.class, GoodsDO::getOrderId, OrderDO::getId)
|
lambdaWrapperX.leftJoin(GoodsDO.class, GoodsDO::getOrderId, OrderDO::getId)
|
||||||
.eq(GoodsDO::getOrganId,getUserOrganId())
|
.eq(GoodsDO::getOrganId,getUserOrganId())
|
||||||
@@ -988,8 +971,12 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
.eq(GoodsDO::getPlanId, pageReqVO.getPlanId())
|
.eq(GoodsDO::getPlanId, pageReqVO.getPlanId())
|
||||||
.distinct();
|
.distinct();
|
||||||
|
|
||||||
|
|
||||||
PageResult<OrderDO> pageResult = orderMapper.selectJoinPage(pageReqVO, OrderDO.class, lambdaWrapperX);
|
PageResult<OrderDO> pageResult = orderMapper.selectJoinPage(pageReqVO, OrderDO.class, lambdaWrapperX);
|
||||||
|
|
||||||
|
if (CollectionUtil.isEmpty(pageResult.getList())) {
|
||||||
|
return new PageResult<>();
|
||||||
|
}
|
||||||
|
|
||||||
return BeanUtils.toBean(pageResult, OrderRespVO.class);
|
return BeanUtils.toBean(pageResult, OrderRespVO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1028,18 +1015,30 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
@Override
|
@Override
|
||||||
public List<PlateResList> getPlateList(List<Long> planIds) {
|
public List<PlateResList> getPlateList(List<Long> planIds) {
|
||||||
|
|
||||||
|
for (Long planId : planIds) {
|
||||||
|
validatePlan(planId);
|
||||||
|
}
|
||||||
|
|
||||||
List<PlateResList> plateResLists = goodsMapper.selectPlateListByPlanId(planIds, getUserOrganId());
|
List<PlateResList> plateResLists = goodsMapper.selectPlateListByPlanId(planIds, getUserOrganId());
|
||||||
|
|
||||||
Set<Long> bodyIds = plateResLists.stream().map(PlateResList::getBodyId).collect(Collectors.toSet());
|
if(plateResLists.isEmpty()){
|
||||||
if (CollectionUtil.isNotEmpty(bodyIds)) {
|
return null;
|
||||||
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds);
|
|
||||||
for (PlateResList resList :plateResLists) {
|
|
||||||
resList.setBodyName(orderBodyDOS.stream().filter(e -> Objects.equals(e.getId(), resList.getBodyId())).map(OrderBodyDO::getName).findAny().orElse(null));
|
|
||||||
resList.setRoomName(orderBodyDOS.stream().filter(e -> Objects.equals(e.getRoomId(), resList.getRoomId())).map(OrderBodyDO::getRoomName).findAny().orElse(null));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set<Long> bodyIds = plateResLists.stream().map(PlateResList::getBodyId).collect(Collectors.toSet());
|
||||||
|
|
||||||
|
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds);
|
||||||
|
|
||||||
|
if(orderBodyDOS.isEmpty()){
|
||||||
|
return plateResLists;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (PlateResList resList :plateResLists) {
|
||||||
|
resList.setBodyName(orderBodyDOS.stream().filter(e -> Objects.equals(e.getId(), resList.getBodyId())).map(OrderBodyDO::getName).findAny().orElse(null));
|
||||||
|
resList.setRoomName(orderBodyDOS.stream().filter(e -> Objects.equals(e.getRoomId(), resList.getRoomId())).map(OrderBodyDO::getRoomName).findAny().orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return plateResLists;
|
return plateResLists;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1113,4 +1112,46 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void validatePlan(Long id) {
|
||||||
|
|
||||||
|
PlanDO planDO = planMapper.selectById(id);
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void validatePlanExists(Long id) {
|
||||||
|
PlanDO planDO = planMapper.selectById(id);
|
||||||
|
// if ( planDO== null) {
|
||||||
|
// throw exception(PLAN_NOT_EXISTS);
|
||||||
|
// }
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS);
|
||||||
|
|
||||||
|
if(planDO.getStatus().equals(PlanStatusEnum.OPENING.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){
|
||||||
|
throw exception(LIST_CHANGES_ARE_PROHIBITED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void validatePlan(List<Long> ids) {
|
||||||
|
|
||||||
|
List<PlanDO> planDOS = planMapper.selectBatchIds(ids);
|
||||||
|
|
||||||
|
for (PlanDO planDO : planDOS) {
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS);
|
||||||
|
|
||||||
|
if ( planDO.getStatus().equals(PlanStatusEnum.OPENING.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus()) ) {
|
||||||
|
throw exception(PLAN_NOT_ALLOW_DELETE,planDO.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+77
-13
@@ -17,8 +17,8 @@
|
|||||||
og.*,
|
og.*,
|
||||||
orp.id as remainId
|
orp.id as remainId
|
||||||
from order_goods og
|
from order_goods og
|
||||||
left join order_remain_plate orp on og.id = orp.goods_id and og.organ_id = orp.organ_id
|
left join order_remain_plate orp on og.organ_id = orp.organ_id and og.id = orp.goods_id
|
||||||
where og.order_id = #{orderId} and og.organ_id = #{organId} and og.deleted = false
|
where og.organ_id = #{organId} and og.deleted = false and og.order_id = #{orderId}
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -31,8 +31,8 @@
|
|||||||
og.*,
|
og.*,
|
||||||
orp.id as remainId
|
orp.id as remainId
|
||||||
from order_goods og
|
from order_goods og
|
||||||
left join order_remain_plate orp on og.id = orp.goods_id and og.organ_id = orp.organ_id
|
left join order_remain_plate orp on og.organ_id = orp.organ_id and og.id = orp.goods_id
|
||||||
where og.organ_id =#{organId} and og.deleted = false and og.plan_id = #{planId}
|
where og.organ_id = #{organId} and og.deleted = false and og.plan_id = #{planId}
|
||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
@@ -59,16 +59,12 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<select id="seleTestSQL" resultType="java.util.Map">
|
<select id="selectPlanGoodsDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
|
|
||||||
select ${filed} from order_goods where organ_id = #{organId}
|
select ${filed} from order_goods where organ_id = #{organId}
|
||||||
and deleted = false
|
and deleted = false
|
||||||
and goods_id in
|
and plan_id = #{planId}
|
||||||
|
|
||||||
<foreach item="goodsIds" collection="goodsIds" open="(" separator="," close=")">
|
|
||||||
#{goodsIds}
|
|
||||||
</foreach>
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -177,12 +173,12 @@
|
|||||||
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and og.deleted = op.deleted
|
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and og.deleted = op.deleted
|
||||||
|
|
||||||
where og.organ_id = #{organId}
|
where og.organ_id = #{organId}
|
||||||
|
and og.deleted = false
|
||||||
and og.plan_id in
|
and og.plan_id in
|
||||||
<foreach collection="planIds" item="ids" open="(" close=")" separator=",">
|
<foreach collection="planIds" item="ids" open="(" close=")" separator=",">
|
||||||
#{ids}
|
#{ids}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
-- and op.is_optimized = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -396,7 +392,7 @@
|
|||||||
<where> og.organ_id = #{organId}
|
<where> og.organ_id = #{organId}
|
||||||
and og.deleted = false
|
and og.deleted = false
|
||||||
and og.order_id = #{orderId}
|
and og.order_id = #{orderId}
|
||||||
|
and og.plan_id != 0
|
||||||
<if test="bodyId !=null">
|
<if test="bodyId !=null">
|
||||||
and oi.body_id = #{bodyId}
|
and oi.body_id = #{bodyId}
|
||||||
</if>
|
</if>
|
||||||
@@ -412,4 +408,72 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectPlanPlateList" resultType="java.lang.Long">
|
||||||
|
|
||||||
|
|
||||||
|
select distinct
|
||||||
|
op.id
|
||||||
|
from order_goods og
|
||||||
|
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and og.deleted = op.deleted
|
||||||
|
|
||||||
|
where og.organ_id = #{organId} and og.deleted = false and og.plan_id = #{planId}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectPlanBodyIds" resultType="java.lang.Long">
|
||||||
|
|
||||||
|
|
||||||
|
select distinct
|
||||||
|
oi.body_id
|
||||||
|
|
||||||
|
from order_goods og
|
||||||
|
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id
|
||||||
|
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
|
||||||
|
|
||||||
|
where og.organ_id = #{organId} and og.deleted = false and og.plan_id = #{planId}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectPlanGroupListDataSource" resultType="java.lang.Long">
|
||||||
|
|
||||||
|
|
||||||
|
select distinct
|
||||||
|
oi.group_id
|
||||||
|
|
||||||
|
from order_goods og
|
||||||
|
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id
|
||||||
|
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id and oi.group_id !=0
|
||||||
|
|
||||||
|
where og.organ_id = #{organId} and og.deleted = false and og.plan_id = #{planId}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectNoPlanGoodsList" resultType="com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO">
|
||||||
|
|
||||||
|
select *
|
||||||
|
from order_goods
|
||||||
|
where organ_id = #{organId}
|
||||||
|
and deleted = false
|
||||||
|
and order_id = #{orderId}
|
||||||
|
and id in
|
||||||
|
<foreach item="goodsIds" collection="goodsIds" open="(" separator="," close=")">
|
||||||
|
#{goodsIds}
|
||||||
|
</foreach>
|
||||||
|
and plan_id !=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
+1
-1
@@ -194,7 +194,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="selectTestSQL" resultType="java.util.Map">
|
<select id="selectOrderDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
|
|
||||||
select ${filed} from orders
|
select ${filed} from orders
|
||||||
|
|||||||
+1
-1
@@ -58,7 +58,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="selectTestSQL" resultType="java.util.Map">
|
<select id="selectPlanBodyRoomDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
|
|
||||||
select distinct ${filed} from order_body
|
select distinct ${filed} from order_body
|
||||||
|
|||||||
+8
-7
@@ -13,17 +13,18 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="selectTestSQL" resultType="java.util.Map">
|
<select id="selectPlanGroupDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
|
|
||||||
select ${filed} from order_group
|
select ${filed} from order_group
|
||||||
where id in
|
where
|
||||||
<foreach item="groupIds" collection="groupIds" open="(" separator="," close=")">
|
organ_id = #{organId}
|
||||||
#{groupIds}
|
|
||||||
</foreach>
|
|
||||||
and organ_id = #{organId}
|
|
||||||
and deleted = false
|
and deleted = false
|
||||||
${field2}
|
and id in
|
||||||
|
<foreach item="groupIds" collection="groupIds" open="(" separator="," close=")">
|
||||||
|
#{groupIds}
|
||||||
|
</foreach>
|
||||||
|
${field2}
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
+9
-54
@@ -169,45 +169,21 @@
|
|||||||
|
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
|
<update id="deletePackList" parameterType="java.lang.Long">
|
||||||
|
|
||||||
<resultMap id="PackListMap" type="com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO">
|
UPDATE order_item
|
||||||
|
|
||||||
<result property="orderId" column="orderId"/>
|
SET package_id = 0
|
||||||
<result property="packId" column="packId"/>
|
|
||||||
<result property="packNo" column="packNo"/>
|
|
||||||
<result property="packNum" column="packNum"/>
|
|
||||||
|
|
||||||
<collection property="plateId" ofType="java.lang.Long" column="plateId"/>
|
WHERE organ_id = #{organId}
|
||||||
|
and order_id = #{orderId}
|
||||||
</resultMap>
|
and package_id in
|
||||||
|
<foreach item="packIds" collection="packIds" open="(" separator="," close=")">
|
||||||
|
#{packIds}
|
||||||
|
|
||||||
<select id="selectPackList"
|
|
||||||
parameterType="java.lang.Long"
|
|
||||||
resultMap="PackListMap">
|
|
||||||
|
|
||||||
|
|
||||||
select distinct op.id as plateId,
|
|
||||||
op.order_id as orderId,
|
|
||||||
o.id as packId,
|
|
||||||
o.package_no as packNo
|
|
||||||
from order_plate op
|
|
||||||
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
|
|
||||||
left join order_package o on oi.organ_id = o.organ_id and oi.order_id = o.order_id and oi.package_id = o.id
|
|
||||||
|
|
||||||
where op.organ_id = #{organId}
|
|
||||||
and op.deleted = false
|
|
||||||
and op.goods_id in
|
|
||||||
<foreach item="ids" collection="ids" open="(" separator="," close=")">
|
|
||||||
#{ids}
|
|
||||||
</foreach>
|
</foreach>
|
||||||
and oi.parts_id = 0
|
|
||||||
and oi.package_id !=0
|
|
||||||
|
|
||||||
</select>
|
|
||||||
|
|
||||||
|
|
||||||
|
</update>
|
||||||
|
|
||||||
|
|
||||||
<select id="selectTestNum"
|
<select id="selectTestNum"
|
||||||
@@ -224,25 +200,4 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="selectOrderPlateList" parameterType="java.lang.Long" resultMap="PackListMap">
|
|
||||||
|
|
||||||
|
|
||||||
select distinct op.id as plateId,
|
|
||||||
op.order_id as orderId,
|
|
||||||
o.id as packId,
|
|
||||||
o.package_no as packNo
|
|
||||||
from order_plate op
|
|
||||||
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
|
|
||||||
left join order_package o on oi.organ_id = o.organ_id and oi.order_id = o.order_id and oi.package_id = o.id
|
|
||||||
|
|
||||||
where op.organ_id = #{organId}
|
|
||||||
and op.deleted = false
|
|
||||||
and op.order_id = #{orderId}
|
|
||||||
and oi.parts_id = 0
|
|
||||||
and oi.package_id !=0
|
|
||||||
|
|
||||||
|
|
||||||
</select>
|
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
+1
-1
@@ -132,7 +132,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<select id="selectTestSql" resultType="com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO">
|
<select id="selectPlanPartsDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
|
|
||||||
select distinct ${filed} from order_parts where
|
select distinct ${filed} from order_parts where
|
||||||
|
|||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="com.cf.imes.module.executor.dal.mysql.pack.OrderPackageMapper">
|
||||||
|
|
||||||
|
|
||||||
|
<update id="updatePackList" parameterType="java.lang.Long">
|
||||||
|
|
||||||
|
UPDATE order_package
|
||||||
|
|
||||||
|
SET deleted = true
|
||||||
|
|
||||||
|
WHERE organ_id = #{organId}
|
||||||
|
and order_id = #{orderId}
|
||||||
|
and id in
|
||||||
|
<foreach item="packIds" collection="packIds" open="(" separator="," close=")">
|
||||||
|
#{packIds}
|
||||||
|
</foreach>
|
||||||
|
|
||||||
|
|
||||||
|
</update>
|
||||||
|
</mapper>
|
||||||
+2
-2
@@ -168,10 +168,10 @@
|
|||||||
group by date;
|
group by date;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="seleTestSQL" resultType="java.util.Map">
|
<select id="selectPlanDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
|
|
||||||
select ${filed} from order_plan where id = #{planId} and organ_id = #{organId} and deleted = false
|
select ${filed} from order_plan where organ_id = #{organId} and deleted = false and id = #{planId}
|
||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
+95
-15
@@ -665,18 +665,20 @@
|
|||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectPlateTypeByRoomId" resultType="java.lang.Long">
|
<select id="selectPlateTypeByRoomId"
|
||||||
SELECT p.id
|
resultType="com.cf.imes.module.executor.dal.dataobject.plate.PlateDO" parameterType="java.lang.Long">
|
||||||
FROM order_plate p
|
|
||||||
|
SELECT distinct p.*
|
||||||
|
FROM order_plate p
|
||||||
LEFT JOIN order_item i ON p.id = i.plate_id
|
LEFT JOIN order_item i ON p.id = i.plate_id
|
||||||
WHERE i.organ_id = #{organId} AND i.order_id = #{orderId} AND p.deleted = #{deleted}
|
WHERE i.organ_id = #{organId} AND i.order_id = #{orderId} AND p.deleted = #{deleted}
|
||||||
<if test="bodyIds != null and bodyIds.size() > 0">
|
<if test="bodyIds != null and bodyIds.size() > 0">
|
||||||
AND i.body_id IN
|
AND i.body_id IN
|
||||||
<foreach item="roomIdItem" collection="bodyIds" open="(" separator="," close=")">
|
<foreach item="roomIdItem" collection="bodyIds" open="(" separator="," close=")">
|
||||||
#{roomIdItem}
|
#{roomIdItem}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="selectPlateListByGoodIds"
|
<select id="selectPlateListByGoodIds"
|
||||||
@@ -777,12 +779,16 @@
|
|||||||
|
|
||||||
<!-- </select>-->
|
<!-- </select>-->
|
||||||
|
|
||||||
<select id="selectTestSQL" resultType="java.util.Map">
|
<select id="selectPlanPlateListDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
|
|
||||||
select ${filed} from order_plate
|
select ${filed} from order_plate
|
||||||
where organ_id = #{organId}
|
where organ_id = #{organId}
|
||||||
and deleted = false
|
and deleted = false
|
||||||
|
and order_id in
|
||||||
|
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
|
||||||
|
#{orderIds}
|
||||||
|
</foreach>
|
||||||
and goods_id in
|
and goods_id in
|
||||||
<foreach collection="goodsIdList" item="goodsIdList" open="(" close=")" separator=",">
|
<foreach collection="goodsIdList" item="goodsIdList" open="(" close=")" separator=",">
|
||||||
#{goodsIdList}
|
#{goodsIdList}
|
||||||
@@ -857,11 +863,9 @@
|
|||||||
where op.organ_id = #{organId} and op.deleted = false and op.goods_id in
|
where op.organ_id = #{organId} and op.deleted = false and op.goods_id in
|
||||||
|
|
||||||
<foreach collection="goodsIdList" item="goodsIdList" open="(" close=")" separator=",">
|
<foreach collection="goodsIdList" item="goodsIdList" open="(" close=")" separator=",">
|
||||||
|
|
||||||
#{goodsIdList}
|
#{goodsIdList}
|
||||||
|
|
||||||
</foreach>
|
</foreach>
|
||||||
|
-- and op.is_optimized = true
|
||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
@@ -892,6 +896,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<update id="updatePlateOptimized" parameterType="java.lang.Long">
|
<update id="updatePlateOptimized" parameterType="java.lang.Long">
|
||||||
|
|
||||||
update order_plate
|
update order_plate
|
||||||
@@ -937,4 +942,79 @@
|
|||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
|
||||||
|
<resultMap id="PackListMap" type="com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO">
|
||||||
|
|
||||||
|
<result property="orderId" column="orderId"/>
|
||||||
|
<result property="packId" column="packId"/>
|
||||||
|
<result property="packNo" column="packNo"/>
|
||||||
|
<result property="packNum" column="packNum"/>
|
||||||
|
|
||||||
|
<collection property="plateId" ofType="java.lang.Long" column="plateId"/>
|
||||||
|
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectPlanPackList"
|
||||||
|
parameterType="java.lang.Long"
|
||||||
|
resultMap="PackListMap">
|
||||||
|
|
||||||
|
|
||||||
|
select distinct op.id as plateId,
|
||||||
|
op.order_id as orderId,
|
||||||
|
o.id as packId,
|
||||||
|
o.package_no as packNo
|
||||||
|
from order_plate op
|
||||||
|
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
|
||||||
|
left join order_package o on oi.organ_id = o.organ_id and oi.order_id = o.order_id and oi.package_id = o.id
|
||||||
|
|
||||||
|
where op.organ_id = #{organId}
|
||||||
|
and op.deleted = false
|
||||||
|
and op.goods_id in
|
||||||
|
<foreach item="ids" collection="ids" open="(" separator="," close=")">
|
||||||
|
#{ids}
|
||||||
|
</foreach>
|
||||||
|
and oi.parts_id = 0
|
||||||
|
and oi.package_id !=0
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectOrderPackList" parameterType="java.lang.Long" resultMap="PackListMap">
|
||||||
|
|
||||||
|
select distinct op.id as plateId,
|
||||||
|
op.order_id as orderId,
|
||||||
|
o.id as packId,
|
||||||
|
o.package_no as packNo
|
||||||
|
from order_plate op
|
||||||
|
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
|
||||||
|
left join order_package o on oi.organ_id = o.organ_id and oi.order_id = o.order_id and oi.package_id = o.id
|
||||||
|
|
||||||
|
where op.organ_id = #{organId}
|
||||||
|
and op.deleted = false
|
||||||
|
and op.order_id = #{orderId}
|
||||||
|
and oi.parts_id = 0
|
||||||
|
and oi.package_id !=0
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<update id="updatePlateOptimizedStatus">
|
||||||
|
|
||||||
|
update order_plate
|
||||||
|
|
||||||
|
set is_optimized = true
|
||||||
|
|
||||||
|
where organ_id = #{organId}
|
||||||
|
and deleted = false
|
||||||
|
and order_id = #{orderId}
|
||||||
|
and id in
|
||||||
|
<foreach item="plateDOList" collection="plateDOList" open="(" separator="," close=")">
|
||||||
|
#{plateDOList}
|
||||||
|
</foreach>
|
||||||
|
|
||||||
|
</update>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
+2
-2
@@ -3,10 +3,10 @@
|
|||||||
<mapper namespace="com.cf.imes.module.executor.dal.mysql.remainplaten.RemainPlateMapper">
|
<mapper namespace="com.cf.imes.module.executor.dal.mysql.remainplaten.RemainPlateMapper">
|
||||||
|
|
||||||
|
|
||||||
<select id="selectTestSQL" resultType="java.util.Map">
|
<select id="selectPlanRemainDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
|
|
||||||
select ${filed} from order_remain_plate where organ_id = #{organId} and plan_id = #{planId} and deleted = false
|
select ${filed} from order_remain_plate where organ_id = #{organId} and deleted = false and plan_id = #{planId}
|
||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
+7
-2
@@ -3,6 +3,7 @@ package com.cf.imes.module.manage.controller.admin.pack.vo;
|
|||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -10,6 +11,7 @@ import java.util.List;
|
|||||||
|
|
||||||
@Schema(description = "管理后台 - 生产单表 order_{N} Response VO")
|
@Schema(description = "管理后台 - 生产单表 order_{N} Response VO")
|
||||||
@Data
|
@Data
|
||||||
|
@Setter
|
||||||
public class PackRespVO {
|
public class PackRespVO {
|
||||||
|
|
||||||
|
|
||||||
@@ -86,8 +88,11 @@ public class PackRespVO {
|
|||||||
private Long pendingNum;
|
private Long pendingNum;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "生产单对应的板材ID")
|
@Schema(description = "生产单对应的板材ID集")
|
||||||
private List<Long> plateId;
|
private List<Long> plateIdList;
|
||||||
|
|
||||||
|
@Schema(description = "生产单对应的包裹ID集")
|
||||||
|
private List<Long> packIdList;
|
||||||
|
|
||||||
// @Schema(description = "生产单对应的板件信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
// @Schema(description = "生产单对应的板件信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
// List<PlateDetailsRespVO> plateDetailsRespVO;
|
// List<PlateDetailsRespVO> plateDetailsRespVO;
|
||||||
|
|||||||
+11
-1
@@ -51,10 +51,11 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
default OrderPackageDO selectByPackId(Long packId,Long organId) {
|
default OrderPackageDO selectByPackId(Long packId,Long orderId,Long organId) {
|
||||||
return selectOne(new LambdaQueryWrapperX<OrderPackageDO>()
|
return selectOne(new LambdaQueryWrapperX<OrderPackageDO>()
|
||||||
.eq(OrderPackageDO::getOrganId, organId)
|
.eq(OrderPackageDO::getOrganId, organId)
|
||||||
.eq(OrderPackageDO::getDeleted,false)
|
.eq(OrderPackageDO::getDeleted,false)
|
||||||
|
.eqIfPresent(OrderPackageDO::getOrderId,orderId)
|
||||||
.eqIfPresent(OrderPackageDO::getId, packId));
|
.eqIfPresent(OrderPackageDO::getId, packId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,4 +100,13 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
|
|||||||
|
|
||||||
List<OrderPackageVO> selectPackListByOrderId(@Param("orderId") Long orderId,@Param("organId") Long organId);
|
List<OrderPackageVO> selectPackListByOrderId(@Param("orderId") Long orderId,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
|
default List<OrderPackageDO> selectPackStatusList(Long orderId,Long organId) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<OrderPackageDO>()
|
||||||
|
.eq(OrderPackageDO::getOrganId,organId)
|
||||||
|
.eq(OrderPackageDO::getDeleted,false)
|
||||||
|
.eq(OrderPackageDO::getStatus,OrderPackageStatusEnum.PACKAGED.getStatus())
|
||||||
|
.eqIfPresent(OrderPackageDO::getOrderId, orderId));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+7
@@ -27,4 +27,11 @@ public interface OrderPrepackagedMapper extends BaseMapperX<OrderPrepackagedDO>
|
|||||||
.eqIfPresent(OrderPrepackagedDO::getOrderId, orderId));
|
.eqIfPresent(OrderPrepackagedDO::getOrderId, orderId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
default int deletePacked(Long orderId, Long organId) {
|
||||||
|
return delete(new LambdaQueryWrapperX<OrderPrepackagedDO>()
|
||||||
|
.eq(OrderPrepackagedDO::getOrganId, organId)
|
||||||
|
.eqIfPresent(OrderPrepackagedDO::getOrderId, orderId));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -45,6 +45,7 @@ public interface OrderPlateMapper extends BaseMapperX<OrderPlateDO> {
|
|||||||
default List<OrderPlateDO> selectplateByPlateNo(Long plateNo, Long orderId, Long organId) {
|
default List<OrderPlateDO> selectplateByPlateNo(Long plateNo, Long orderId, Long organId) {
|
||||||
return selectList(new LambdaQueryWrapperX<OrderPlateDO>()
|
return selectList(new LambdaQueryWrapperX<OrderPlateDO>()
|
||||||
.eq(OrderPlateDO::getOrganId, organId)
|
.eq(OrderPlateDO::getOrganId, organId)
|
||||||
|
.eq(OrderPlateDO::getDeleted,false)
|
||||||
.eq(OrderPlateDO::getOrderId, orderId)
|
.eq(OrderPlateDO::getOrderId, orderId)
|
||||||
.likeIfPresent(OrderPlateDO::getPlateNo, plateNo.toString())
|
.likeIfPresent(OrderPlateDO::getPlateNo, plateNo.toString())
|
||||||
.select(OrderPlateDO::getId));
|
.select(OrderPlateDO::getId));
|
||||||
|
|||||||
+2
-1
@@ -91,9 +91,10 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
default List<OrderItemDO> selectPackByPlateId(List<Long> plateId, Long organId) {
|
default List<OrderItemDO> selectPackByPlateId(List<Long> plateId,Long orderId ,Long organId) {
|
||||||
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||||
.eq(OrderItemDO::getOrganId, organId)
|
.eq(OrderItemDO::getOrganId, organId)
|
||||||
|
.eqIfPresent(OrderItemDO::getOrderId,orderId)
|
||||||
.inIfPresent(OrderItemDO::getPlateId, plateId)
|
.inIfPresent(OrderItemDO::getPlateId, plateId)
|
||||||
.select(OrderItemDO::getPackageId));
|
.select(OrderItemDO::getPackageId));
|
||||||
}
|
}
|
||||||
|
|||||||
+64
-23
@@ -136,6 +136,10 @@ public class PackServiceImpl implements PackService {
|
|||||||
// 查询查询分页
|
// 查询查询分页
|
||||||
packRespVOS = ordersMapper.selectOrderIdList(page, pageReqVO, getUserOrganId());
|
packRespVOS = ordersMapper.selectOrderIdList(page, pageReqVO, getUserOrganId());
|
||||||
|
|
||||||
|
if (CollectionUtil.isEmpty(packRespVOS.getRecords())) {
|
||||||
|
return new PageResult<>();
|
||||||
|
}
|
||||||
|
|
||||||
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
|
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
|
||||||
|
|
||||||
if (orderIds.isEmpty()) {
|
if (orderIds.isEmpty()) {
|
||||||
@@ -150,8 +154,8 @@ public class PackServiceImpl implements PackService {
|
|||||||
AssertUtils.notEmpty(packRespVOList, ErrorCodeConstants.ORDER_PLATE_ERROR);
|
AssertUtils.notEmpty(packRespVOList, ErrorCodeConstants.ORDER_PLATE_ERROR);
|
||||||
|
|
||||||
for (PackRespVO packRespVO : packRespVOList) {
|
for (PackRespVO packRespVO : packRespVOList) {
|
||||||
packRespVO.setTotalPieceCount((long) packRespVO.getPlateId().size());
|
packRespVO.setTotalPieceCount((long) packRespVO.getPlateIdList().size());
|
||||||
packRespVO.setPlateId(null);
|
packRespVO.setPlateIdList(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -159,15 +163,21 @@ public class PackServiceImpl implements PackService {
|
|||||||
List<PackRespVO> respVOS = orderPackageMapper.selectPackPage(orderIds, getUserOrganId());
|
List<PackRespVO> respVOS = orderPackageMapper.selectPackPage(orderIds, getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
|
for (PackRespVO packRespVO : respVOS) {
|
||||||
|
packRespVO.setPackCount((long) packRespVO.getPackIdList().size());
|
||||||
|
packRespVO.setPackIdList(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 查询当前生产单已经打包的板材数量
|
// 查询当前生产单已经打包的板材数量
|
||||||
List<PackRespVO> plateNum = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId());
|
List<PackRespVO> plateNum = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
for (PackRespVO packRespVO : plateNum) {
|
for (PackRespVO packRespVO : plateNum) {
|
||||||
packRespVO.setPackPieceCount((long) packRespVO.getPlateId().size());
|
packRespVO.setPackPieceCount((long) packRespVO.getPlateIdList().size());
|
||||||
packRespVO.setPlateId(null);
|
packRespVO.setPlateIdList(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (PackRespVO record : packRespVOS.getRecords()) {
|
for (PackRespVO record : packRespVOS.getRecords()) {
|
||||||
|
|
||||||
// 板材总数
|
// 板材总数
|
||||||
@@ -181,9 +191,6 @@ public class PackServiceImpl implements PackService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CollectionUtil.isEmpty(packRespVOS.getRecords())) {
|
|
||||||
return new PageResult<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal());
|
return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal());
|
||||||
@@ -270,6 +277,10 @@ public class PackServiceImpl implements PackService {
|
|||||||
|
|
||||||
List<OrderPackageVO> orderPackageVOS = orderPackageMapper.selectPackListByOrderId(reqVO.getOrderId(), getUserOrganId());
|
List<OrderPackageVO> orderPackageVOS = orderPackageMapper.selectPackListByOrderId(reqVO.getOrderId(), getUserOrganId());
|
||||||
|
|
||||||
|
if(orderPackageVOS.isEmpty()){
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
|
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
|
||||||
|
|
||||||
// AssertUtils.notEmpty(orderPackageVOS,orderDO,ORDER_PLATE_ERROR);
|
// AssertUtils.notEmpty(orderPackageVOS,orderDO,ORDER_PLATE_ERROR);
|
||||||
@@ -297,7 +308,6 @@ public class PackServiceImpl implements PackService {
|
|||||||
|
|
||||||
if (reqVO.getPlateNo() != null) {
|
if (reqVO.getPlateNo() != null) {
|
||||||
|
|
||||||
|
|
||||||
List<Long> plateId = orderPlateMapper.selectplateByPlateNo(reqVO.getPlateNo(), reqVO.getOrderId(), getUserOrganId())
|
List<Long> plateId = orderPlateMapper.selectplateByPlateNo(reqVO.getPlateNo(), reqVO.getOrderId(), getUserOrganId())
|
||||||
.stream().map(OrderPlateDO::getId).toList();
|
.stream().map(OrderPlateDO::getId).toList();
|
||||||
|
|
||||||
@@ -305,7 +315,7 @@ public class PackServiceImpl implements PackService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
packId = orderItemMapper.selectPackByPlateId(plateId, getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
|
packId = orderItemMapper.selectPackByPlateId(plateId,reqVO.getOrderId() ,getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -314,8 +324,8 @@ public class PackServiceImpl implements PackService {
|
|||||||
queryWrapperX
|
queryWrapperX
|
||||||
.eq("o.organ_id", getUserOrganId())
|
.eq("o.organ_id", getUserOrganId())
|
||||||
.eq("o.deleted", false)
|
.eq("o.deleted", false)
|
||||||
.eq("op.deleted", false)
|
|
||||||
.eq("o.id", reqVO.getOrderId())
|
.eq("o.id", reqVO.getOrderId())
|
||||||
|
.eq("op.deleted", false)
|
||||||
.likeIfPresent("op.package_no", reqVO.getPackageNo())
|
.likeIfPresent("op.package_no", reqVO.getPackageNo())
|
||||||
.inIfPresent("op.id", packId)
|
.inIfPresent("op.id", packId)
|
||||||
.eqIfPresent("op.status", reqVO.getPackStatus())
|
.eqIfPresent("op.status", reqVO.getPackStatus())
|
||||||
@@ -391,10 +401,10 @@ public class PackServiceImpl implements PackService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(reqVO.getPackId(), getUserOrganId());
|
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(reqVO.getPackId(),reqVO.getOrderId(), getUserOrganId());
|
||||||
|
|
||||||
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(reqVO.getPackId(), reqVO.getOrderId(), getUserOrganId());
|
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(reqVO.getPackId(), reqVO.getOrderId(), getUserOrganId());
|
||||||
List<Long> partsList = orderItemDOS.stream().map(OrderItemDO::getPartsId).toList();
|
List<Long> partsList = orderItemDOS.stream().map(OrderItemDO::getPartsId).distinct().toList();
|
||||||
|
|
||||||
|
|
||||||
// 如果此时删除的包裹配件数量等于查询出来的配件数量,且新增的板材数量不为0,更改包裹的类型
|
// 如果此时删除的包裹配件数量等于查询出来的配件数量,且新增的板材数量不为0,更改包裹的类型
|
||||||
@@ -447,6 +457,9 @@ public class PackServiceImpl implements PackService {
|
|||||||
public OrderPackRespVO unpacking(Long packageID) {
|
public OrderPackRespVO unpacking(Long packageID) {
|
||||||
|
|
||||||
OrderPackageDO packageDO = orderPackageMapper.selectById(packageID);
|
OrderPackageDO packageDO = orderPackageMapper.selectById(packageID);
|
||||||
|
|
||||||
|
AssertUtils.notEmpty(packageDO,ORDER_PACK_DATA_ERROR );
|
||||||
|
|
||||||
packageDO.setStatus(OrderPackageStatusEnum.UNPACKED.getStatus());
|
packageDO.setStatus(OrderPackageStatusEnum.UNPACKED.getStatus());
|
||||||
orderPackageMapper.updateById(packageDO);
|
orderPackageMapper.updateById(packageDO);
|
||||||
return typeConversion(packageDO);
|
return typeConversion(packageDO);
|
||||||
@@ -484,9 +497,9 @@ public class PackServiceImpl implements PackService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(packageVO.getPackId(), getUserOrganId());
|
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(packageVO.getPackId(),packageVO.getOrderId(), getUserOrganId());
|
||||||
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(packageVO.getPackId(), packageVO.getOrderId(), getUserOrganId());
|
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(packageVO.getPackId(), packageVO.getOrderId(), getUserOrganId());
|
||||||
List<Long> plateList = orderItemDOS.stream().map(OrderItemDO::getPlateId).toList();
|
List<Long> plateList = orderItemDOS.stream().map(OrderItemDO::getPlateId).distinct().toList();
|
||||||
|
|
||||||
|
|
||||||
// 如果此时删除的包裹板材数量等于查询出来的板材数量,且新增的配件数量不为0,更改包裹的类型
|
// 如果此时删除的包裹板材数量等于查询出来的板材数量,且新增的配件数量不为0,更改包裹的类型
|
||||||
@@ -560,11 +573,8 @@ public class PackServiceImpl implements PackService {
|
|||||||
|
|
||||||
OrderDO orderDO = ordersMapper.selectById(orderId);
|
OrderDO orderDO = ordersMapper.selectById(orderId);
|
||||||
|
|
||||||
// if(orderDO.getFinishTime() != null){
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 修改生产单的打包状态未已打包
|
// 修改生产单的打包状态为已打包
|
||||||
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
|
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
|
||||||
|
|
||||||
ordersMapper.updateById(orderDO);
|
ordersMapper.updateById(orderDO);
|
||||||
@@ -579,7 +589,7 @@ public class PackServiceImpl implements PackService {
|
|||||||
|
|
||||||
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatus(orderId, getUserOrganId());
|
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatus(orderId, getUserOrganId());
|
||||||
|
|
||||||
return orderPackageDOS.stream().map(m -> typeConversion(m)).collect(Collectors.toList());
|
return orderPackageDOS.stream().map(this::typeConversion).collect(Collectors.toList());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -608,20 +618,52 @@ public class PackServiceImpl implements PackService {
|
|||||||
.stream().map(OrderItemDO::getPartsId)
|
.stream().map(OrderItemDO::getPartsId)
|
||||||
.distinct()
|
.distinct()
|
||||||
.toList();
|
.toList();
|
||||||
|
if(partsIds.isEmpty()){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
orderPartsMapper.deleteOrderParts(partsIds, reqVO.getOrderId(), getUserOrganId());
|
orderPartsMapper.deleteOrderParts(partsIds, reqVO.getOrderId(), getUserOrganId());
|
||||||
|
|
||||||
orderPackageMapper.updateParts(reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId());
|
orderPackageMapper.updateParts(reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
orderItemMapper.deleteParts(reqVO.getPackageId(), reqVO.getOrderId(), partsIds, getUserOrganId());
|
orderItemMapper.deleteParts(reqVO.getPackageId(), reqVO.getOrderId(), partsIds, getUserOrganId());
|
||||||
|
|
||||||
|
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatusList(reqVO.getOrderId(), getUserOrganId());
|
||||||
|
|
||||||
|
if(orderPackageDOS.isEmpty()){
|
||||||
|
|
||||||
|
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
|
||||||
|
|
||||||
|
orderDO.setPackaged(OrderPackageStatusEnum.UNPACKED.getStatus());
|
||||||
|
|
||||||
|
ordersMapper.updateById(orderDO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
orderPackageMapper.updateParts(reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId());
|
orderPackageMapper.updateParts(reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId());
|
||||||
|
|
||||||
orderItemMapper.deleteOrderPack(reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId());
|
orderItemMapper.deleteOrderPack(reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId());
|
||||||
|
|
||||||
|
orderPrepackagedMapper.deletePacked(reqVO.getOrderId(),getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
|
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatusList(reqVO.getOrderId(), getUserOrganId());
|
||||||
|
|
||||||
|
if(orderPackageDOS.isEmpty()){
|
||||||
|
|
||||||
|
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
|
||||||
|
|
||||||
|
orderDO.setPackaged(OrderPackageStatusEnum.UNPACKED.getStatus());
|
||||||
|
|
||||||
|
ordersMapper.updateById(orderDO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -660,7 +702,6 @@ public class PackServiceImpl implements PackService {
|
|||||||
orderItemMapper.insert(orderItemDO);
|
orderItemMapper.insert(orderItemDO);
|
||||||
|
|
||||||
// 查看新增的包裹信息
|
// 查看新增的包裹信息
|
||||||
/* return orderPackageMapper.selectByPackId(orderPackageDO.getId());*/
|
|
||||||
return typeConversion(orderPackageDO);
|
return typeConversion(orderPackageDO);
|
||||||
|
|
||||||
|
|
||||||
@@ -684,7 +725,7 @@ public class PackServiceImpl implements PackService {
|
|||||||
orderParts.setType("外部配件");
|
orderParts.setType("外部配件");
|
||||||
orderPartsMapper.insert(orderParts);
|
orderPartsMapper.insert(orderParts);
|
||||||
|
|
||||||
// 在生产单明细表中添加数据(生产单号,配件ID,包裹ID,部件数量(目前一直为1))
|
// 在生产单明细表中添加数据(生产单号,配件ID,包裹ID,部件数量)
|
||||||
OrderItemDO orderItemDO = new OrderItemDO();
|
OrderItemDO orderItemDO = new OrderItemDO();
|
||||||
orderItemDO.setOrderId(reqVO.getOrderId());
|
orderItemDO.setOrderId(reqVO.getOrderId());
|
||||||
orderItemDO.setPartsId(orderParts.getId());
|
orderItemDO.setPartsId(orderParts.getId());
|
||||||
|
|||||||
-2
@@ -219,8 +219,6 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
|
|||||||
plateDetailsRespVO.setProcessGroup(name);
|
plateDetailsRespVO.setProcessGroup(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Page<PackageDetailsRespVO> packageDetailsRespVOPage = page.setRecords(packageDetailsRespVOS);
|
|
||||||
|
|
||||||
|
|
||||||
return new PageResult<>(packageDetailsRespVOS.getRecords(), packageDetailsRespVOS.getTotal());
|
return new PageResult<>(packageDetailsRespVOS.getRecords(), packageDetailsRespVOS.getTotal());
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -5,10 +5,12 @@
|
|||||||
<resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
|
<resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
|
||||||
|
|
||||||
<result property="id" column="orderId"/>
|
<result property="id" column="orderId"/>
|
||||||
<result property="packCount" column="packCount"/>
|
<!-- <result property="packCount" column="packCount"/>-->
|
||||||
<result property="packPieceCount" column="packPieceCount"/>
|
<!-- <result property="packPieceCount" column="packPieceCount"/>-->
|
||||||
|
|
||||||
<collection property="plateId" ofType="java.lang.Long" column="plateId"/>
|
<collection property="plateIdList" ofType="java.lang.Long" column="plateId"/>
|
||||||
|
|
||||||
|
<collection property="packIdList" ofType="java.lang.Long" column="packId"/>
|
||||||
|
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
@@ -19,7 +21,7 @@
|
|||||||
|
|
||||||
select
|
select
|
||||||
order_id as orderId,
|
order_id as orderId,
|
||||||
count(id) as packCount
|
id as packId
|
||||||
|
|
||||||
from order_package
|
from order_package
|
||||||
|
|
||||||
@@ -35,8 +37,6 @@
|
|||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|
||||||
group by order_id
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
oi.plate_id as plateId
|
oi.plate_id as plateId
|
||||||
|
|
||||||
from order_package op
|
from order_package op
|
||||||
left join order_item oi on op.organ_id = oi.organ_id and op.id = oi.package_id
|
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.package_id
|
||||||
|
|
||||||
where
|
where
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -178,7 +178,7 @@
|
|||||||
|
|
||||||
<result property="id" column="orderId"/>
|
<result property="id" column="orderId"/>
|
||||||
|
|
||||||
<collection property="plateId" ofType="java.lang.Long" column="plateId"/>
|
<collection property="plateIdList" ofType="java.lang.Long" column="plateId"/>
|
||||||
|
|
||||||
|
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|||||||
+2
-2
@@ -172,7 +172,7 @@
|
|||||||
|
|
||||||
organ_id =#{organId}
|
organ_id =#{organId}
|
||||||
and deleted = false
|
and deleted = false
|
||||||
and status != 0
|
and status in (1,2,3,4)
|
||||||
|
|
||||||
<if test="pageReqVO.orderId !=null">
|
<if test="pageReqVO.orderId !=null">
|
||||||
and id like concat('%', #{pageReqVO.orderId},'%')
|
and id like concat('%', #{pageReqVO.orderId},'%')
|
||||||
@@ -200,7 +200,7 @@
|
|||||||
|
|
||||||
</where>
|
</where>
|
||||||
|
|
||||||
order by create_time desc
|
order by order_date desc
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -156,7 +156,7 @@
|
|||||||
|
|
||||||
<update id="insertPackId" parameterType="java.lang.Long">
|
<update id="insertPackId" parameterType="java.lang.Long">
|
||||||
|
|
||||||
update order_item oi
|
update order_item
|
||||||
|
|
||||||
set package_id = #{packId}
|
set package_id = #{packId}
|
||||||
|
|
||||||
|
|||||||
+12
-1
@@ -211,11 +211,12 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS = new ErrorCode(1_002_029_008, "当前机台配置的模板中,该品牌已存在,请重新输入品牌名称");
|
ErrorCode THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS = new ErrorCode(1_002_029_008, "当前机台配置的模板中,该品牌已存在,请重新输入品牌名称");
|
||||||
ErrorCode THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST = new ErrorCode(1_002_029_009, "该型号的机台不存在,请进行配置");
|
ErrorCode THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST = new ErrorCode(1_002_029_009, "该型号的机台不存在,请进行配置");
|
||||||
ErrorCode THE_CURRENT_BRAND = new ErrorCode(1_002_029_010, "品牌ID错误,或品牌不存在");
|
ErrorCode THE_CURRENT_BRAND = new ErrorCode(1_002_029_010, "品牌ID错误,或品牌不存在");
|
||||||
ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前模板创建的机台数量已达到最大值,无法继续创建");
|
ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前组织该类型的机台创建已达到最大值,无法继续创建");
|
||||||
ErrorCode MACHINE_NAME_ERROR = new ErrorCode(1_002_029_012, "当前机台名称已存在,请重新输入机台名称");
|
ErrorCode MACHINE_NAME_ERROR = new ErrorCode(1_002_029_012, "当前机台名称已存在,请重新输入机台名称");
|
||||||
ErrorCode MACHINETEMPLATE_NAME_ERROR = new ErrorCode(1_002_029_013, "当前机台模板的名称已存在,请重新输入机台模板名称");
|
ErrorCode MACHINETEMPLATE_NAME_ERROR = new ErrorCode(1_002_029_013, "当前机台模板的名称已存在,请重新输入机台模板名称");
|
||||||
ErrorCode LABELINGMACHINE_RELATED_DATA_ERROR = new ErrorCode(1_002_029_014, "当前机台关联的贴标机数据有误,请在高级配置中重新配置贴标机或选择其他模板");
|
ErrorCode LABELINGMACHINE_RELATED_DATA_ERROR = new ErrorCode(1_002_029_014, "当前机台关联的贴标机数据有误,请在高级配置中重新配置贴标机或选择其他模板");
|
||||||
ErrorCode DRILLMACHINE_RELATED_DATA_ERROR = new ErrorCode(1_002_029_015, "当前机台关联的钻孔机数据有误,请在钻孔模块中重新配置钻孔机或选择其他模板");
|
ErrorCode DRILLMACHINE_RELATED_DATA_ERROR = new ErrorCode(1_002_029_015, "当前机台关联的钻孔机数据有误,请在钻孔模块中重新配置钻孔机或选择其他模板");
|
||||||
|
ErrorCode MACHINE_DATA_ERROR = new ErrorCode(1_002_029_016, "当前组织还未进行机台授权,请联系组织管理员在基础管理里对当前组织进行机台授权,或联系客服进行授权");
|
||||||
|
|
||||||
|
|
||||||
// ========== 标签模板 1-002-300-000 ==========
|
// ========== 标签模板 1-002-300-000 ==========
|
||||||
@@ -287,6 +288,16 @@ public interface ErrorCodeConstants {
|
|||||||
//=========== 断言提示信息 1-002-041-000 ============
|
//=========== 断言提示信息 1-002-041-000 ============
|
||||||
ErrorCode ORDER_DATE_ERROR = new ErrorCode(1_002_041_001, "生产单信息不存在,请重新进入或切换生产单");
|
ErrorCode ORDER_DATE_ERROR = new ErrorCode(1_002_041_001, "生产单信息不存在,请重新进入或切换生产单");
|
||||||
ErrorCode ORDER_PLATE_ERROR = new ErrorCode(1_002_041_002, "生产单对应的板材数据有异常,请查看板材信息或联系客服");
|
ErrorCode ORDER_PLATE_ERROR = new ErrorCode(1_002_041_002, "生产单对应的板材数据有异常,请查看板材信息或联系客服");
|
||||||
|
ErrorCode INSERT_PLATE_DATE_ERROR = new ErrorCode(1_002_041_003, "新增排单的板材数据有误,请重新新增");
|
||||||
|
ErrorCode ORDER_PLAN_DATE_ERROR = new ErrorCode(1_002_041_004, "排单信息不存在,请重新进入或切换排单");
|
||||||
|
ErrorCode ORDER_PLAN_OPTIMIZE_ERROR = new ErrorCode(1_002_041_005, "排单的优化数据异常,请将该排单重新优化");
|
||||||
|
ErrorCode ORDER_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_006, "生产单对应的板材造型数据为空,请检查板材信息或者联系客服");
|
||||||
|
ErrorCode ORDER_PLAN_PLATE_ERROR = new ErrorCode(1_002_041_007, "当前排单对应的板材数据有异常,请查看板材信息或联系客服");
|
||||||
|
ErrorCode ORDER_PLAN_ERROR = new ErrorCode(1_002_041_008, "当前排单对应的生产单数据有异常,请查看生产单信息或联系客服");
|
||||||
|
ErrorCode ORDER_PLAN_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_009, "当前排单对应的板材造型数据为空,请检查板材信息或者联系客服");
|
||||||
|
ErrorCode ORDER_GOODS_DATA_ERROR = new ErrorCode(1_002_041_010, "当前大板数据异常,请检查大板信息或者联系客服");
|
||||||
|
ErrorCode ORDER_PACK_DATA_ERROR = new ErrorCode(1_002_041_011, "当前包裹数据为空,请重新查看包裹数据或联系客服");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+46
-20
@@ -1,33 +1,29 @@
|
|||||||
package com.cf.imes.module.system.controller.admin.datasource;
|
package com.cf.imes.module.system.controller.admin.datasource;
|
||||||
|
|
||||||
import com.cf.imes.framework.es.core.valid.CreateGroup;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import com.cf.imes.framework.common.pojo.PageParam;
|
|
||||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||||
|
import com.cf.imes.framework.common.pojo.PageParam;
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||||
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
|
||||||
|
|
||||||
import com.cf.imes.framework.excel.core.util.ExcelUtils;
|
import com.cf.imes.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||||
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.*;
|
|
||||||
|
|
||||||
import com.cf.imes.module.system.controller.admin.datasource.vo.*;
|
import com.cf.imes.module.system.controller.admin.datasource.vo.*;
|
||||||
import com.cf.imes.module.system.dal.dataobject.datasource.DataSourceDO;
|
import com.cf.imes.module.system.dal.dataobject.datasource.DataSourceDO;
|
||||||
import com.cf.imes.module.system.service.datasource.DataSourceService;
|
import com.cf.imes.module.system.service.datasource.DataSourceService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
||||||
|
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 系统数据源")
|
@Tag(name = "管理后台 - 系统数据源")
|
||||||
@RestController
|
@RestController
|
||||||
@@ -90,9 +86,9 @@ public class DataSourceController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/create")
|
// @PostMapping("/create")
|
||||||
@Operation(summary = "新增数据源字段")
|
// @Operation(summary = "新增数据源字段")
|
||||||
@PreAuthorize("@ss.hasPermission('system:data-source:create')")
|
// @PreAuthorize("@ss.hasPermission('system:data-source:create')")
|
||||||
public CommonResult<Boolean> createDataSource(@Validated @RequestBody List<DataSourceSaveReqVO> createReqVO) {
|
public CommonResult<Boolean> createDataSource(@Validated @RequestBody List<DataSourceSaveReqVO> createReqVO) {
|
||||||
|
|
||||||
dataSourceService.createDataSource(createReqVO);
|
dataSourceService.createDataSource(createReqVO);
|
||||||
@@ -111,6 +107,36 @@ public class DataSourceController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/getKeyNameData")
|
||||||
|
@Operation(summary = "数据源对应字段数据查询")
|
||||||
|
@Parameters({
|
||||||
|
@Parameter(name = "machineId", description = "机台ID", required = true),
|
||||||
|
@Parameter(name = "planId", description = "排单ID", required = true)
|
||||||
|
})
|
||||||
|
//@PreAuthorize("@ss.hasPermission('system:data-source:query')")
|
||||||
|
public CommonResult<String> getKeyNameData(@RequestParam("machineId") Long machineId,@RequestParam("planId") Long planId) {
|
||||||
|
|
||||||
|
String keyNameData = dataSourceService.getKeyNameData(machineId,planId);
|
||||||
|
|
||||||
|
return success(keyNameData);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@PutMapping("/insertKeyNameData")
|
||||||
|
@Operation(summary = "保存机台数据源对应的数据源字段")
|
||||||
|
//@PreAuthorize("@ss.hasPermission('system:data-source:query')")
|
||||||
|
public CommonResult<Boolean> saveMachineKeyName(@RequestBody List<MachineDataSourceDO> machineDataSourceDOS ) {
|
||||||
|
|
||||||
|
return success(dataSourceService.saveMachineKeyName(machineDataSourceDOS));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
@Operation(summary = "导出系统数据源 Excel")
|
@Operation(summary = "导出系统数据源 Excel")
|
||||||
@PreAuthorize("@ss.hasPermission('system:data-source:export')")
|
@PreAuthorize("@ss.hasPermission('system:data-source:export')")
|
||||||
|
|||||||
+87
@@ -0,0 +1,87 @@
|
|||||||
|
package com.cf.imes.module.system.controller.admin.datasource.dataQuery;
|
||||||
|
|
||||||
|
|
||||||
|
import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
|
||||||
|
import com.cf.imes.module.system.dal.mysql.organ.OrganMapper;
|
||||||
|
import com.cf.imes.module.system.dal.mysql.user.AdminUserMapper;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.cf.imes.framework.common.util.json.JsonUtils.toJsonString;
|
||||||
|
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Administrator
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class DataQuery {
|
||||||
|
|
||||||
|
String SEPARATE = "select";
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrganMapper organMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AdminUserMapper userMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MachineMapper machineMapper;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public String dataGetOrgan(String filed) {
|
||||||
|
|
||||||
|
// String sql = "select from system_organization where id = #{id} and deleted = false";
|
||||||
|
//
|
||||||
|
// sql = sql.replace("#{id}", String.valueOf(getUserOrganId()));
|
||||||
|
|
||||||
|
|
||||||
|
return toJsonString(organMapper.selectOrganDataSource(conversion(filed),getUserOrganId()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public String dataGetUser(String filed, List<String> nameList) {
|
||||||
|
|
||||||
|
|
||||||
|
// String sql = "select from system_users where nickname in (#{nameList}) and deleted = false and organ_id = #{organId}";
|
||||||
|
//
|
||||||
|
// sql = sql.replace("#{organId}", getUserOrganId() + "").replace("#{orderIds}", nameList.toString().replaceAll("\\[|\\]", ""));
|
||||||
|
|
||||||
|
|
||||||
|
return toJsonString(userMapper.selectUserDataSource(conversion(filed),getUserOrganId(),nameList));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String dataGetMachine(String filed,Long machineId) {
|
||||||
|
|
||||||
|
|
||||||
|
return toJsonString(machineMapper.selectMachineDataSource(conversion(filed),machineId,getUserOrganId()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 字符串处理
|
||||||
|
private String conversion(String filed) {
|
||||||
|
|
||||||
|
// 去除字段中的 【 】
|
||||||
|
return filed.replaceAll("\\[|\\]", "");
|
||||||
|
|
||||||
|
// 使用正则表达式在单词后插入字符串
|
||||||
|
// return sql.replaceAll(SEPARATE + "(\\b)", SEPARATE + " " + toInsert);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
package com.cf.imes.module.system.controller.admin.datasource.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Schema(description = "数据源字段信息")
|
||||||
|
public class DataSource {
|
||||||
|
|
||||||
|
@Schema(description = "父级ID")
|
||||||
|
private Integer parentSourceId;
|
||||||
|
|
||||||
|
@Schema(description = "数据源ID")
|
||||||
|
private Long sourceId;
|
||||||
|
|
||||||
|
@Schema(description = "数据源字段名称")
|
||||||
|
private String keyName;
|
||||||
|
|
||||||
|
}
|
||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
package com.cf.imes.module.system.controller.admin.datasource.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import com.cf.imes.framework.es.core.dal.ESDocument;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class MachineDataSourceDO extends ESDocument {
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "机台ID")
|
||||||
|
private Long machineId;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "数据源对象")
|
||||||
|
private List<DataSource> dataSource;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+1
-1
@@ -29,7 +29,7 @@ public class MachineAuthController {
|
|||||||
|
|
||||||
|
|
||||||
@PutMapping("insert-organ-auth")
|
@PutMapping("insert-organ-auth")
|
||||||
@Operation(summary = "组织机台授权信息更新")
|
@Operation(summary = "组织机台授权信息新增")
|
||||||
@PreAuthorize("@ss.hasPermission('machine-auth::update')")
|
@PreAuthorize("@ss.hasPermission('machine-auth::update')")
|
||||||
public CommonResult<Boolean> authInsert(@RequestBody MachineOrgAuthReq vo) {
|
public CommonResult<Boolean> authInsert(@RequestBody MachineOrgAuthReq vo) {
|
||||||
return success(machineService.authInsert(vo));
|
return success(machineService.authInsert(vo));
|
||||||
|
|||||||
+2
-5
@@ -3,9 +3,6 @@ package com.cf.imes.module.system.controller.admin.machine.vo;
|
|||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Beal
|
* @author Beal
|
||||||
*/
|
*/
|
||||||
@@ -36,8 +33,8 @@ public class MachineOrgAuthReq {
|
|||||||
private Integer sealedgeLimit;
|
private Integer sealedgeLimit;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "授权的机台ID")
|
// @Schema(description = "授权的机台ID")
|
||||||
private List<Integer> machineAuthIds;
|
// private List<Integer> machineAuthIds;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -11,8 +11,9 @@ import lombok.Data;
|
|||||||
public class OrganMachinePage extends PageParam {
|
public class OrganMachinePage extends PageParam {
|
||||||
|
|
||||||
@Schema(description = "组织名称")
|
@Schema(description = "组织名称")
|
||||||
private String organName;
|
private Long organId;
|
||||||
|
|
||||||
|
@Schema(description = "组织状态(0正常 1停用)")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
@Schema(description = "机台名称")
|
|
||||||
private String machineName;
|
|
||||||
}
|
}
|
||||||
|
|||||||
+14
@@ -6,6 +6,8 @@ import lombok.Builder;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Beal
|
* @author Beal
|
||||||
*/
|
*/
|
||||||
@@ -18,6 +20,9 @@ public class OrganMachineResp {
|
|||||||
@Schema(description = "组织id")
|
@Schema(description = "组织id")
|
||||||
private Long organId;
|
private Long organId;
|
||||||
|
|
||||||
|
@Schema(description = "组织状态(0正常 1停用)")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
@Schema(description = "组织名称")
|
@Schema(description = "组织名称")
|
||||||
private String organName;
|
private String organName;
|
||||||
|
|
||||||
@@ -41,4 +46,13 @@ public class OrganMachineResp {
|
|||||||
@Schema(description = "封边机授权数量")
|
@Schema(description = "封边机授权数量")
|
||||||
private Integer sealedgeLimit;
|
private Integer sealedgeLimit;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "操作人")
|
||||||
|
private String updater;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "修改时间")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -74,5 +74,5 @@ public interface MachineMapper extends BaseMapperX<MachineDO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<MachineDO> selectMachineDataSource(@Param("filed") String filed,@Param("machineId") Long machineId,@Param("organId") Long organId);
|
||||||
}
|
}
|
||||||
+1
-1
@@ -90,7 +90,7 @@ public interface OrganMapper extends BaseMapperX<OrganizationDO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<OrganizationDO> selectTestSQL(@Param("sql") String sql);
|
List<OrganizationDO> selectOrganDataSource(@Param("filed") String filed,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+7
-5
@@ -1,15 +1,10 @@
|
|||||||
package com.cf.imes.module.system.dal.mysql.setting;
|
package com.cf.imes.module.system.dal.mysql.setting;
|
||||||
|
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
|
||||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.module.system.controller.admin.machine.vo.MachinePageReqVO;
|
|
||||||
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO;
|
|
||||||
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface SettingMapper extends BaseMapperX<PackageConfigDO> {
|
public interface SettingMapper extends BaseMapperX<PackageConfigDO> {
|
||||||
@@ -23,4 +18,11 @@ public interface SettingMapper extends BaseMapperX<PackageConfigDO> {
|
|||||||
.eqIfPresent(PackageConfigDO::getType,type));
|
.eqIfPresent(PackageConfigDO::getType,type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
default int deleteSetting(Integer type,Long userId, Long organId) {
|
||||||
|
return delete(new LambdaQueryWrapperX<PackageConfigDO>()
|
||||||
|
.eq(PackageConfigDO::getOrganId, organId)
|
||||||
|
.eq(PackageConfigDO::getUserId, userId)
|
||||||
|
.eq(PackageConfigDO::getType,type));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -182,4 +182,8 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
|
|||||||
*/
|
*/
|
||||||
@Delete("DELETE FROM system_users WHERE id = #{id}")
|
@Delete("DELETE FROM system_users WHERE id = #{id}")
|
||||||
int physicalDeleteById(@Param("id") Long id);
|
int physicalDeleteById(@Param("id") Long id);
|
||||||
|
|
||||||
|
|
||||||
|
List<AdminUserDO> selectUserDataSource(@Param("filed") String filed,@Param("organId") Long organId,@Param("nameList") List<String> nameList);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-4
@@ -1,13 +1,11 @@
|
|||||||
package com.cf.imes.module.system.service.datasource;
|
package com.cf.imes.module.system.service.datasource;
|
||||||
|
|
||||||
import java.util.*;
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
import com.cf.imes.module.system.controller.admin.datasource.vo.*;
|
import com.cf.imes.module.system.controller.admin.datasource.vo.*;
|
||||||
import com.cf.imes.module.system.dal.dataobject.datasource.DataSourceDO;
|
import com.cf.imes.module.system.dal.dataobject.datasource.DataSourceDO;
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
|
||||||
import com.cf.imes.framework.common.pojo.PageParam;
|
|
||||||
import com.cf.imes.module.system.dal.dataobject.datasource.DataSourceFiledDO;
|
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统数据源 Service 接口
|
* 系统数据源 Service 接口
|
||||||
@@ -59,4 +57,9 @@ public interface DataSourceService {
|
|||||||
List<DataSourceRespVO> list();
|
List<DataSourceRespVO> list();
|
||||||
|
|
||||||
List<DataSourceFiledReqVO> getList(Integer type);
|
List<DataSourceFiledReqVO> getList(Integer type);
|
||||||
|
|
||||||
|
String getKeyNameData(Long machineId,Long planId);
|
||||||
|
|
||||||
|
Boolean saveMachineKeyName(List<MachineDataSourceDO> machineDataSourceDOS);
|
||||||
|
|
||||||
}
|
}
|
||||||
+357
-16
@@ -1,28 +1,37 @@
|
|||||||
package com.cf.imes.module.system.service.datasource;
|
package com.cf.imes.module.system.service.datasource;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
||||||
|
import co.elastic.clients.elasticsearch.core.*;
|
||||||
|
import co.elastic.clients.elasticsearch.core.search.Hit;
|
||||||
|
import com.cf.imes.framework.common.enums.MachineTypeEnum;
|
||||||
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
|
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import com.cf.imes.module.executor.api.plan.OrderPlanApi;
|
||||||
|
import com.cf.imes.module.system.controller.admin.datasource.dataQuery.DataQuery;
|
||||||
|
import com.cf.imes.module.system.controller.admin.datasource.vo.*;
|
||||||
|
import com.cf.imes.module.system.dal.dataobject.datasource.DataSourceDO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.datasource.DataSourceFiledDO;
|
import com.cf.imes.module.system.dal.dataobject.datasource.DataSourceFiledDO;
|
||||||
import com.cf.imes.module.system.dal.mysql.datasource.DataSourceFiledMapper;
|
import com.cf.imes.module.system.dal.mysql.datasource.DataSourceFiledMapper;
|
||||||
|
import com.cf.imes.module.system.dal.mysql.datasource.DataSourceMapper;
|
||||||
|
import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.cf.imes.module.system.controller.admin.datasource.vo.*;
|
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_ERROR_DELETE;
|
||||||
import com.cf.imes.module.system.dal.dataobject.datasource.DataSourceDO;
|
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR;
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
|
||||||
import com.cf.imes.framework.common.pojo.PageParam;
|
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
|
||||||
import com.cf.imes.module.system.dal.mysql.datasource.DataSourceMapper;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_ALLOW_DELETE;
|
import static com.cf.imes.framework.common.util.object.BeanUtils.toBean;
|
||||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
import static com.cf.imes.module.system.enums.ErrorCodeConstants.DATA_SOURCE_NOT_EXISTS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统数据源 Service 实现类
|
* 系统数据源 Service 实现类
|
||||||
@@ -31,6 +40,7 @@ import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
|
@Slf4j
|
||||||
public class DataSourceServiceImpl implements DataSourceService {
|
public class DataSourceServiceImpl implements DataSourceService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@@ -39,6 +49,24 @@ public class DataSourceServiceImpl implements DataSourceService {
|
|||||||
@Resource
|
@Resource
|
||||||
private DataSourceFiledMapper dataSourceFiledMapper;
|
private DataSourceFiledMapper dataSourceFiledMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MachineMapper machineMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ESDocumentService esDocumentService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ElasticsearchClient elasticsearchClient;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderPlanApi orderPlanApi;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DataQuery dataQuery;
|
||||||
|
|
||||||
|
|
||||||
|
String MACHINE_DATA_SOURCE = "imes_machine_data_source";
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createDataSource(List<DataSourceSaveReqVO> createReqVO) {
|
public void createDataSource(List<DataSourceSaveReqVO> createReqVO) {
|
||||||
@@ -252,7 +280,7 @@ public class DataSourceServiceImpl implements DataSourceService {
|
|||||||
// 校验存在
|
// 校验存在
|
||||||
validateDataSourceExists(updateReqVO.getId());
|
validateDataSourceExists(updateReqVO.getId());
|
||||||
// 更新
|
// 更新
|
||||||
DataSourceDO updateObj = BeanUtils.toBean(updateReqVO, DataSourceDO.class);
|
DataSourceDO updateObj = toBean(updateReqVO, DataSourceDO.class);
|
||||||
dataSourceMapper.updateById(updateObj);
|
dataSourceMapper.updateById(updateObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -388,7 +416,7 @@ public class DataSourceServiceImpl implements DataSourceService {
|
|||||||
|
|
||||||
List<DataSourceDO> dataSourceDOS = dataSourceMapper.selectByType();
|
List<DataSourceDO> dataSourceDOS = dataSourceMapper.selectByType();
|
||||||
|
|
||||||
List<DataSourceFiledReqVO> dataSourceFiledReqVOS = BeanUtils.toBean(dataSourceDOS, DataSourceFiledReqVO.class);
|
List<DataSourceFiledReqVO> dataSourceFiledReqVOS = toBean(dataSourceDOS, DataSourceFiledReqVO.class);
|
||||||
|
|
||||||
List<Long> ids = dataSourceDOS.stream().map(DataSourceDO::getId).toList();
|
List<Long> ids = dataSourceDOS.stream().map(DataSourceDO::getId).toList();
|
||||||
|
|
||||||
@@ -422,7 +450,7 @@ public class DataSourceServiceImpl implements DataSourceService {
|
|||||||
|
|
||||||
// 获取没有key的节点ID
|
// 获取没有key的节点ID
|
||||||
List<Long> ids = parentList.stream()
|
List<Long> ids = parentList.stream()
|
||||||
.filter(f -> f.getKeyName() == null)
|
// .filter(f -> f.getKeyName() == null)
|
||||||
.map(DataSourceFiledReqVO::getId)
|
.map(DataSourceFiledReqVO::getId)
|
||||||
.distinct()
|
.distinct()
|
||||||
.toList();
|
.toList();
|
||||||
@@ -450,6 +478,319 @@ public class DataSourceServiceImpl implements DataSourceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getKeyNameData(Long machineId,Long planId) {
|
||||||
|
|
||||||
|
|
||||||
|
StringBuilder data = new StringBuilder();
|
||||||
|
|
||||||
|
List<Integer> parentSourceId = new ArrayList<>();
|
||||||
|
|
||||||
|
List<MachineDataSourceDO> dataSourceDOS = buildMachineDataSourceByMachineId(machineId, MACHINE_DATA_SOURCE);
|
||||||
|
|
||||||
|
|
||||||
|
for (MachineDataSourceDO dataSourceDO : dataSourceDOS) {
|
||||||
|
|
||||||
|
parentSourceId.addAll(dataSourceDO.getDataSource().stream().map(DataSource::getParentSourceId).toList());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
parentSourceId = parentSourceId.stream().distinct().toList();
|
||||||
|
|
||||||
|
|
||||||
|
for (Integer aLong : parentSourceId) {
|
||||||
|
|
||||||
|
switch (aLong) {
|
||||||
|
|
||||||
|
// 生产单基础信息
|
||||||
|
// 生产单经销商信息
|
||||||
|
// 生产单终端客户信息
|
||||||
|
case 1543, 68, 80 -> {
|
||||||
|
String machineDataSourceKeyName = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(orderPlanApi.apiDataGetPlan(planId, machineDataSourceKeyName));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 生产单组织信息
|
||||||
|
case 61 -> {
|
||||||
|
String machineDataSourceKeyName1 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(dataQuery.dataGetOrgan(machineDataSourceKeyName1));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 生产单业务员信息
|
||||||
|
// 生产单拆单员信息
|
||||||
|
case 74, 92 -> {
|
||||||
|
String machineDataSourceKeyName2 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
List<String> nameList = orderPlanApi.apiGetOrders(planId, aLong == 74);
|
||||||
|
data.append(dataQuery.dataGetUser(machineDataSourceKeyName2, nameList));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 排单基础信息
|
||||||
|
case 98 -> {
|
||||||
|
String machineDataSourceKeyName3 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(orderPlanApi.getPlan(planId, machineDataSourceKeyName3));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 排单板材的大板用量信息
|
||||||
|
case 110 -> {
|
||||||
|
List<String> machineDataSourceKeyName4 = buildMachineDataSourceByParentSourceId(machineId, aLong, MACHINE_DATA_SOURCE)
|
||||||
|
.get(0)
|
||||||
|
.getDataSource()
|
||||||
|
.stream().map(DataSource::getKeyName).toList();
|
||||||
|
data.append(orderPlanApi.apiGetEsPlan(planId, machineDataSourceKeyName4));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 排单板材的余料板用量信息
|
||||||
|
// 物料(商品)板材信息的余料信息
|
||||||
|
case 119, 822 -> {
|
||||||
|
String machineDataSourceKeyName5 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(orderPlanApi.apiGetPlanRemainPlate(planId, machineDataSourceKeyName5));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 排单板件的基础信息
|
||||||
|
// 排单板件的规格尺寸的成品尺寸信息
|
||||||
|
// 排单板件的规格尺寸的拆单尺寸信息
|
||||||
|
// 雕刻机加工概要信息
|
||||||
|
// 排单钻孔机(大板上下钻)加工信息概要
|
||||||
|
// 排单钻孔机(小板)加工信息概要
|
||||||
|
// 板件中板材基础信息
|
||||||
|
// 板件中的基础信息的成品尺寸
|
||||||
|
case 140, 204, 209, 446, 552, 657, 846, 907 -> {
|
||||||
|
String machineDataSourceKeyName6 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(orderPlanApi.apiGetPlanPlate(planId, machineDataSourceKeyName6));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 排单板件的备注信息
|
||||||
|
// 排单板件的规格尺寸的开料尺寸信息
|
||||||
|
// 板件中板材基础信息的备注信息
|
||||||
|
// 板件中基础信息的开料尺寸
|
||||||
|
case 141, 213, 853, 908 -> {
|
||||||
|
List<String> machineDataSourceKeyName7 = buildMachineDataSourceByParentSourceId(machineId, aLong, MACHINE_DATA_SOURCE)
|
||||||
|
.get(0)
|
||||||
|
.getDataSource()
|
||||||
|
.stream().map(DataSource::getKeyName).toList();
|
||||||
|
data.append(orderPlanApi.apiGetEsPlate(planId, machineDataSourceKeyName7));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 生产单中的房间信息
|
||||||
|
// 生产单中的柜体信息
|
||||||
|
// 板件中的基础信息的房间信息
|
||||||
|
// 板件中的基础信息的柜体信息
|
||||||
|
case 1544,1545, 881, 889 -> {
|
||||||
|
String machineDataSourceKeyName8 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(orderPlanApi.apiGetPlanBodyOrRoom(planId, machineDataSourceKeyName8));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 板件信息的加工组信息
|
||||||
|
case 897 -> {
|
||||||
|
String machineDataSourceKeyName9 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(orderPlanApi.apiGetPlanGroup(planId, machineDataSourceKeyName9));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 物料(商品)的板材信息
|
||||||
|
// 排单排版信息-大板信息
|
||||||
|
case 808, 416 -> {
|
||||||
|
String machineDataSourceKeyName10 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(orderPlanApi.getGoods(planId, machineDataSourceKeyName10));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 物料(商品)的配件信息
|
||||||
|
case 809 -> {
|
||||||
|
String machineDataSourceKeyName11 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(orderPlanApi.apiGetPlanParts(planId, machineDataSourceKeyName11));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 物料(商品)的配件备注信息
|
||||||
|
case 840 -> {
|
||||||
|
List<String> machineDataSourceKeyName12 = buildMachineDataSourceByParentSourceId(machineId, aLong, MACHINE_DATA_SOURCE)
|
||||||
|
.get(0)
|
||||||
|
.getDataSource()
|
||||||
|
.stream().map(DataSource::getKeyName).toList();
|
||||||
|
data.append(orderPlanApi.apiGetEsParts(planId, machineDataSourceKeyName12));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 排单信息的生产线信息
|
||||||
|
case 1483 -> {
|
||||||
|
Integer machineType = machineMapper.selectById(machineId).getMachineType();
|
||||||
|
if (machineType.equals(MachineTypeEnum.CUTTING.getType())){
|
||||||
|
String machineDataSourceKeyName13 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(dataQuery.dataGetMachine(machineDataSourceKeyName13,machineId));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 排单信息的机台信息
|
||||||
|
case 1487 -> {
|
||||||
|
|
||||||
|
String machineDataSourceKeyName14 = getMachineDataSourceKeyName(machineId, aLong);
|
||||||
|
data.append(dataQuery.dataGetMachine(machineDataSourceKeyName14,machineId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return data.toString();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Boolean saveMachineKeyName(List<MachineDataSourceDO> machineDataSourceDOS) {
|
||||||
|
|
||||||
|
Long machineId = machineDataSourceDOS.stream().map(MachineDataSourceDO::getMachineId).distinct().toList().get(0);
|
||||||
|
/*
|
||||||
|
* 目前数据源保存有两种方式:
|
||||||
|
* 1. 每回保存全都传过来,先将机台的原数据源删除,再重新保存
|
||||||
|
* 2. 传过来的时候将新增的和删除的区分开来,我这边做数据处理
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
// todo 目前先实现第一种:每回保存时传入全部数据,先删除原机台字段信息,再保存
|
||||||
|
deleteByMachineId(machineId,MACHINE_DATA_SOURCE);
|
||||||
|
batchSaveMachineDataSource(machineDataSourceDOS);
|
||||||
|
|
||||||
|
return Boolean.TRUE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static List<String> convertToSnakeCase(List<String> camelCaseList) {
|
||||||
|
List<String> snakeCaseList = new ArrayList<>();
|
||||||
|
|
||||||
|
// 字段ID改成数据库的形式
|
||||||
|
camelCaseList = camelCaseList.stream().map(key -> key.replace("_", "")).toList();
|
||||||
|
|
||||||
|
|
||||||
|
for (String camelCaseStr : camelCaseList) {
|
||||||
|
StringBuilder snakeCaseStr = new StringBuilder();
|
||||||
|
|
||||||
|
for (int i = 0; i < camelCaseStr.length(); i++) {
|
||||||
|
char c = camelCaseStr.charAt(i);
|
||||||
|
// 如果字符是大写字母,并且不是第一个字符,则添加下划线
|
||||||
|
if (Character.isUpperCase(c) && i != 0) {
|
||||||
|
snakeCaseStr.append('_');
|
||||||
|
}
|
||||||
|
// 转换字符为小写
|
||||||
|
snakeCaseStr.append(Character.toLowerCase(c));
|
||||||
|
}
|
||||||
|
|
||||||
|
snakeCaseList.add(snakeCaseStr.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
return snakeCaseList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void batchSaveMachineDataSource(List<MachineDataSourceDO> machineDataSourceDOS) {
|
||||||
|
try {
|
||||||
|
BulkResponse bulkResponse = esDocumentService.bulkCreate(MACHINE_DATA_SOURCE, machineDataSourceDOS);
|
||||||
|
boolean errors = bulkResponse.errors();
|
||||||
|
if (errors) {
|
||||||
|
log.error(bulkResponse.items().toString());
|
||||||
|
throw new ServiceException(500, "未知异常");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
log.error(e.getMessage());
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private String getMachineDataSourceKeyName(Long machineId, Integer parentSourceId) {
|
||||||
|
|
||||||
|
return convertToSnakeCase(buildMachineDataSourceByParentSourceId(machineId, parentSourceId, MACHINE_DATA_SOURCE)
|
||||||
|
.get(0)
|
||||||
|
.getDataSource()
|
||||||
|
.stream().map(DataSource::getKeyName).toList())
|
||||||
|
.toString();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 根据机台ID和父级ID,查询对应的数据源字段
|
||||||
|
private List<MachineDataSourceDO> buildMachineDataSourceByParentSourceId(Long machineId,Integer parentSourceId, String index) {
|
||||||
|
|
||||||
|
SearchRequest.Builder builder = new SearchRequest.Builder();
|
||||||
|
builder.index(index);
|
||||||
|
|
||||||
|
builder.query(q -> q.bool(b -> b
|
||||||
|
.must(m->m.term(t->t.field("machineId").value(machineId)))
|
||||||
|
.must(m->m.match(t->t.field("dataSource.parentSourceId").query(parentSourceId)))));
|
||||||
|
|
||||||
|
try {
|
||||||
|
SearchResponse<MachineDataSourceDO> search = elasticsearchClient.search(builder.build(), MachineDataSourceDO.class);
|
||||||
|
List<Hit<MachineDataSourceDO>> hits = search.hits().hits();
|
||||||
|
if (CollectionUtil.isNotEmpty(hits)) {
|
||||||
|
return hits.stream().map(Hit::source).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return new ArrayList<>();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
throw new ServiceException(INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 根据机台ID查询机台对应的数据源字段信息
|
||||||
|
private List<MachineDataSourceDO> buildMachineDataSourceByMachineId(Long machineId, String index) {
|
||||||
|
|
||||||
|
SearchRequest.Builder builder = new SearchRequest.Builder();
|
||||||
|
builder.index(index);
|
||||||
|
builder.query(q -> q.term(b -> b.field("machineId").value(machineId)));
|
||||||
|
|
||||||
|
try {
|
||||||
|
SearchResponse<MachineDataSourceDO> search = elasticsearchClient.search(builder.build(), MachineDataSourceDO.class);
|
||||||
|
List<Hit<MachineDataSourceDO>> hits = search.hits().hits();
|
||||||
|
if (CollectionUtil.isNotEmpty(hits)) {
|
||||||
|
return hits.stream().map(Hit::source).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return new ArrayList<>();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
throw new ServiceException(INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 根据机台ID删除对应的数据源ES信息
|
||||||
|
public void deleteByMachineId(Long machineId, String index) {
|
||||||
|
DeleteByQueryRequest.Builder builder = new DeleteByQueryRequest.Builder();
|
||||||
|
builder.index(index);
|
||||||
|
builder.query(q -> q.term(t -> t.field("machineId").value(machineId)));
|
||||||
|
try {
|
||||||
|
DeleteByQueryResponse response = elasticsearchClient.deleteByQuery(builder.build());
|
||||||
|
log.info("Deleted {} documents with planId {}", response.deleted(), machineId);
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("Error deleting documents with planId {}: {}", machineId, e.getMessage());
|
||||||
|
throw new ServiceException(ES_ERROR_DELETE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private List<Long> conversion(String sourceId) {
|
private List<Long> conversion(String sourceId) {
|
||||||
|
|
||||||
return Arrays.stream(sourceId.split(","))
|
return Arrays.stream(sourceId.split(","))
|
||||||
|
|||||||
+27
-26
@@ -42,6 +42,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -99,13 +100,19 @@ public class MachineServiceImpl implements MachineService {
|
|||||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||||
assert loginUser != null;
|
assert loginUser != null;
|
||||||
|
|
||||||
|
MachineLimitDO machineLimitDO = machineLimitMapper.selectById(loginUser.getOrganId());
|
||||||
|
|
||||||
|
if(machineLimitDO == null){
|
||||||
|
throw exception(MACHINE_DATA_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
// 校验机台名称是否重复
|
// 校验机台名称是否重复
|
||||||
MachineDO machine = machineMapper.selectMachineName(createReqVO.getName(), createReqVO.getMachineType(), getUserOrganId());
|
MachineDO machine = machineMapper.selectMachineName(createReqVO.getName(), createReqVO.getMachineType(), getUserOrganId());
|
||||||
if (machine != null) {
|
if (machine != null) {
|
||||||
throw exception(MACHINE_NAME_ERROR);
|
throw exception(MACHINE_NAME_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
// validateMachineNum(createReqVO.getMachineType(), loginUser.getOrganId());
|
validateMachineNum(createReqVO.getMachineType(), loginUser.getOrganId());
|
||||||
|
|
||||||
MachineDO machineDO;
|
MachineDO machineDO;
|
||||||
MachineTemplateDO machineTemplateDO;
|
MachineTemplateDO machineTemplateDO;
|
||||||
@@ -435,9 +442,9 @@ public class MachineServiceImpl implements MachineService {
|
|||||||
@Override
|
@Override
|
||||||
public Boolean authInsert(MachineOrgAuthReq vo) {
|
public Boolean authInsert(MachineOrgAuthReq vo) {
|
||||||
|
|
||||||
OrganizationDO tenant = organMapper.selectById(vo.getOrganId());
|
MachineLimitDO machineLimit = machineLimitMapper.selectById(vo.getOrganId());
|
||||||
|
|
||||||
if (tenant != null) {
|
if (machineLimit != null) {
|
||||||
throw exception(ORGAN_ALREADY_EXISTS);
|
throw exception(ORGAN_ALREADY_EXISTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -448,7 +455,7 @@ public class MachineServiceImpl implements MachineService {
|
|||||||
.labelLimit(vo.getLabelLimit())
|
.labelLimit(vo.getLabelLimit())
|
||||||
.sawLimit(vo.getSawLimit())
|
.sawLimit(vo.getSawLimit())
|
||||||
.sealedgeLimit(vo.getSealedgeLimit())
|
.sealedgeLimit(vo.getSealedgeLimit())
|
||||||
.setting(vo.getMachineAuthIds().toString())
|
// .setting(vo.getMachineAuthIds().toString())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
machineLimitMapper.insert(machineLimitDO);
|
machineLimitMapper.insert(machineLimitDO);
|
||||||
@@ -465,6 +472,9 @@ public class MachineServiceImpl implements MachineService {
|
|||||||
throw exception(ORGAN_NOT_EXISTS);
|
throw exception(ORGAN_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||||
|
assert loginUser != null;
|
||||||
|
|
||||||
MachineLimitDO machineLimitDO = MachineLimitDO.builder()
|
MachineLimitDO machineLimitDO = MachineLimitDO.builder()
|
||||||
.organId(vo.getOrganId())
|
.organId(vo.getOrganId())
|
||||||
.cutLimit(vo.getCutLimit())
|
.cutLimit(vo.getCutLimit())
|
||||||
@@ -472,9 +482,12 @@ public class MachineServiceImpl implements MachineService {
|
|||||||
.labelLimit(vo.getLabelLimit())
|
.labelLimit(vo.getLabelLimit())
|
||||||
.sawLimit(vo.getSawLimit())
|
.sawLimit(vo.getSawLimit())
|
||||||
.sealedgeLimit(vo.getSealedgeLimit())
|
.sealedgeLimit(vo.getSealedgeLimit())
|
||||||
.setting(vo.getMachineAuthIds().toString())
|
|
||||||
|
// .setting(vo.getMachineAuthIds().toString())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
machineLimitDO.setUpdateTime(LocalDateTime.now());
|
||||||
|
machineLimitDO.setUpdater(loginUser.getNickname());
|
||||||
|
|
||||||
machineLimitMapper.updateById(machineLimitDO);
|
machineLimitMapper.updateById(machineLimitDO);
|
||||||
|
|
||||||
@@ -571,30 +584,18 @@ public class MachineServiceImpl implements MachineService {
|
|||||||
// 校验当前组织当前类型的机台是否达到最大创建数量
|
// 校验当前组织当前类型的机台是否达到最大创建数量
|
||||||
private void validateMachineNum(Integer machineType, Long organId) {
|
private void validateMachineNum(Integer machineType, Long organId) {
|
||||||
|
|
||||||
Integer machineNum = machineMapper.selectByOrganId(machineType, organId).size() + 1;
|
int machineNum = machineMapper.selectByOrganId(machineType, organId).size() ;
|
||||||
|
|
||||||
MachineLimitDO machineLimitDO = machineLimitMapper.selectById(organId);
|
MachineLimitDO machineLimitDO = machineLimitMapper.selectById(organId);
|
||||||
|
|
||||||
Integer authMachineNum = 0;
|
Integer authMachineNum = switch (machineType) {
|
||||||
switch (machineType) {
|
case 1 -> machineLimitDO.getCutLimit();
|
||||||
|
case 2 -> machineLimitDO.getDrillLimit();
|
||||||
case 1:
|
case 3 -> machineLimitDO.getSawLimit();
|
||||||
authMachineNum = machineLimitDO.getCutLimit();
|
case 4 -> machineLimitDO.getLabelLimit();
|
||||||
break;
|
case 5 -> machineLimitDO.getSealedgeLimit();
|
||||||
case 2:
|
default -> 0;
|
||||||
authMachineNum = machineLimitDO.getDrillLimit();
|
};
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
authMachineNum = machineLimitDO.getSawLimit();
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
authMachineNum = machineLimitDO.getLabelLimit();
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
authMachineNum = machineLimitDO.getSealedgeLimit();
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (machineNum >= authMachineNum) {
|
if (machineNum >= authMachineNum) {
|
||||||
throw exception(MACHINE_NUM_ERROR);
|
throw exception(MACHINE_NUM_ERROR);
|
||||||
|
|||||||
+4
-2
@@ -3,7 +3,6 @@ package com.cf.imes.module.system.service.setting;
|
|||||||
|
|
||||||
import com.cf.imes.framework.common.enums.UserSettingTypeEnum;
|
import com.cf.imes.framework.common.enums.UserSettingTypeEnum;
|
||||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
|
||||||
import com.cf.imes.framework.security.core.LoginUser;
|
import com.cf.imes.framework.security.core.LoginUser;
|
||||||
import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO;
|
import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
||||||
@@ -16,7 +15,7 @@ import javax.annotation.Resource;
|
|||||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.cf.imes.framework.common.util.json.JsonUtils.unzipString;
|
import static com.cf.imes.framework.common.util.json.JsonUtils.unzipString;
|
||||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
import static com.cf.imes.module.system.enums.ErrorCodeConstants.CURRENTLY_NO_CONFIGURATION_AVAILABLE;
|
||||||
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -32,6 +31,9 @@ public class SettingServiceImpl implements SettingService{
|
|||||||
public Long insertSetting(PackageConfigReqVO reqVO) {
|
public Long insertSetting(PackageConfigReqVO reqVO) {
|
||||||
|
|
||||||
LoginUser loginUser = getLoginUser();
|
LoginUser loginUser = getLoginUser();
|
||||||
|
|
||||||
|
settingMapper.deleteSetting(reqVO.getType(),loginUser.getId(),loginUser.getOrganId());
|
||||||
|
|
||||||
PackageConfigDO packageConfigDO = PackageConfigDO.builder()
|
PackageConfigDO packageConfigDO = PackageConfigDO.builder()
|
||||||
.userId(loginUser.getId())
|
.userId(loginUser.getId())
|
||||||
.organId(loginUser.getOrganId())
|
.organId(loginUser.getOrganId())
|
||||||
|
|||||||
+16
-12
@@ -7,24 +7,28 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
select sml.*
|
select distinct
|
||||||
|
sml.organ_id,
|
||||||
|
sml.cut_limit,
|
||||||
|
sml.drill_limit,
|
||||||
|
sml.label_limit,
|
||||||
|
sml.saw_limit,
|
||||||
|
sml.sealedge_limit,
|
||||||
|
sml.updater,
|
||||||
|
sml.update_time,
|
||||||
|
so.name as organName,
|
||||||
|
so.status
|
||||||
from system_machine_limit sml
|
from system_machine_limit sml
|
||||||
|
join system_organization so on sml.organ_id = so.id
|
||||||
left join system_organization so on sml.organ_id = so.id
|
|
||||||
left join system_machine_template smt on sml.setting like concat(smt.id, '%')
|
|
||||||
<where>
|
<where>
|
||||||
sml.deleted = false
|
sml.deleted = false
|
||||||
and smt.deleted = false
|
|
||||||
and smt.is_enabled = true
|
|
||||||
and smt.is_default = false
|
|
||||||
and so.status = 0
|
|
||||||
|
|
||||||
<if test="machinePage.organName !=null">
|
<if test="machinePage.organId !=null">
|
||||||
and so.name like concat('%', #{machinePage.organName},'%')
|
and sml.organ_id = #{machinePage.organId}
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
<if test="machinePage.machineName !=null">
|
<if test="machinePage.status !=null">
|
||||||
and smt.name like concat('%', #{machinePage.machineName},'%')
|
and so.status = #{machinePage.status}
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
</where>
|
</where>
|
||||||
|
|||||||
+2
-2
@@ -21,9 +21,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<select id="selectTestSQL" resultType="com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO">
|
<select id="selectOrganDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
${sql}
|
select ${filed} from system_organization where id = #{organId} and deleted = false
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
+15
@@ -38,4 +38,19 @@
|
|||||||
ORDER BY
|
ORDER BY
|
||||||
id DESC
|
id DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectUserDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
|
select ${filed}
|
||||||
|
from system_users
|
||||||
|
where organ_id = #{organId}
|
||||||
|
and deleted = false
|
||||||
|
and nickname in
|
||||||
|
<foreach collection="nameList" item="nameList" open="(" close=")" separator=",">
|
||||||
|
#{nameList}
|
||||||
|
</foreach>
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
+6
@@ -16,4 +16,10 @@
|
|||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMachineDataSource" resultType="java.util.Map">
|
||||||
|
|
||||||
|
select ${filed} from system_machine where organ_id = #{organId} and deleted = false and id = #{machineId}
|
||||||
|
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user