mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
跟据新需求修改未排单,已排单,新增排单,优化生产等部分接口,禅道381,363,274Bug修改
This commit is contained in:
+29
@@ -0,0 +1,29 @@
|
||||
package com.cf.imes.framework.common.enums;
|
||||
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum OrderPlateTypeEnum {
|
||||
|
||||
|
||||
LAYERBOARD(0, "层板"),
|
||||
RISER(1, "立板"),
|
||||
BACKBOARD(2, "背板"),
|
||||
SELFINCREASINGBOARD(3, "自增板");
|
||||
|
||||
private final Integer type;
|
||||
private String description;
|
||||
|
||||
public boolean equals(Integer status) {
|
||||
return this.type .equals(status) ;
|
||||
}
|
||||
|
||||
public boolean equals(OrderPlateTypeEnum enableStatusEnum) {
|
||||
return enableStatusEnum != null && enableStatusEnum.type .equals(this.getType()) ;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+5
-4
@@ -9,10 +9,11 @@ import lombok.Getter;
|
||||
public enum PlanStatusEnum {
|
||||
|
||||
|
||||
NEWORDER(0,"新单"),
|
||||
BOARDHASBEENAPPLIEDFOR(1,"板材已申请"),
|
||||
DURINGCUTTING(2,"开料中"),
|
||||
OPENEDMATERIAL(3,"已开料");
|
||||
NOCUTTING(0, "未开料"),
|
||||
|
||||
OPENING(1, "开料中"),
|
||||
|
||||
OPENED(2, "已开料");
|
||||
|
||||
private Integer status;
|
||||
private String scheduling;
|
||||
|
||||
+2
@@ -33,6 +33,8 @@ public interface GlobalErrorCodeConstants {
|
||||
ErrorCode INTERNAL_SERVER_ERROR = new ErrorCode(500, "系统异常");
|
||||
ErrorCode NOT_IMPLEMENTED = new ErrorCode(501, "功能未实现/未开启");
|
||||
ErrorCode ERROR_CONFIGURATION = new ErrorCode(502, "错误的配置项");
|
||||
ErrorCode ES_ERROR_UPDATE = new ErrorCode(503, "ES文档更新失败");
|
||||
ErrorCode ES_ERROR_DELETE = new ErrorCode(504, "ES文档删除失败");
|
||||
|
||||
// ========== 自定义错误段 ==========
|
||||
ErrorCode REPEATED_REQUESTS = new ErrorCode(900, "重复请求,请稍后重试"); // 重复请求
|
||||
|
||||
+1
-4
@@ -1,7 +1,6 @@
|
||||
package com.cf.imes.framework.es.core.service;
|
||||
|
||||
import cn.hutool.core.lang.Snowflake;
|
||||
import cn.hutool.core.lang.UUID;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
@@ -17,9 +16,6 @@ import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeFormatterBuilder;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -146,6 +142,7 @@ public class ESDocumentServiceImpl implements ESDocumentService {
|
||||
esDocument.setCreator(loginUser.getNickname());
|
||||
esDocument.setCreateTime(simpleDateFormat.format(date));
|
||||
esDocument.setUpdater(loginUser.getNickname());
|
||||
esDocument.setOrganId(loginUser.getOrganId());
|
||||
|
||||
esDocument.setUpdateTime(simpleDateFormat.format(date));
|
||||
br.operations(op -> op.index(idx -> idx
|
||||
|
||||
+7
-1
@@ -1,10 +1,10 @@
|
||||
package com.cf.imes.framework.mybatis.core.query;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.cf.imes.framework.mybatis.core.enums.SqlConstants;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.cf.imes.framework.mybatis.core.enums.SqlConstants;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -145,6 +145,12 @@ public class QueryWrapperX<T> extends QueryWrapper<T> {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryWrapperX<T> isNotNull(String column) {
|
||||
super.isNotNull(column);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置只返回最后一条
|
||||
*
|
||||
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
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;
|
||||
|
||||
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
package com.cf.imes.module.executor.api.plan.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
|
||||
@Data
|
||||
public class PlanDTO {
|
||||
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
|
||||
private Long id;
|
||||
// 组织 ID
|
||||
|
||||
private Long organId;
|
||||
|
||||
/**
|
||||
* 排序优先级
|
||||
*/
|
||||
private Long sort;
|
||||
/**
|
||||
* 排单类型:1 混单排单,2 生产单排单
|
||||
*/
|
||||
private Integer type;
|
||||
/**
|
||||
* 排单状态:0 新单,1 板材已申请,2 开料中,3 已开料
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 机台 ID
|
||||
*/
|
||||
private Long machineId;
|
||||
/**
|
||||
* 计划时间
|
||||
*/
|
||||
private LocalDateTime planTime;
|
||||
/**
|
||||
* 生产单号
|
||||
*/
|
||||
private String orderNos;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 生产操作人
|
||||
*/
|
||||
private String operator;
|
||||
/**
|
||||
* 生产时间
|
||||
*/
|
||||
private LocalDateTime produceTime;
|
||||
|
||||
}
|
||||
+3
-1
@@ -11,12 +11,14 @@ public interface ErrorCodeConstants {
|
||||
// ========== 生产单开料排单
|
||||
ErrorCode PLAN_NOT_EXISTS = new ErrorCode(1_001_107_000, "生产单开料排单不存在");
|
||||
|
||||
ErrorCode PLAN_NOT_ALLOW_DELETE = new ErrorCode(1_001_107_001, "当前排单已开料不予许删除");
|
||||
ErrorCode PLAN_NOT_ALLOW_DELETE = new ErrorCode(1_001_107_001, "排单号:{},已开料不予许删除");
|
||||
|
||||
ErrorCode PLAN_NOT_ALLOW_CANCEL = new ErrorCode(1_001_107_002, "排单 新单 不予许作废");
|
||||
|
||||
ErrorCode LIST_CHANGES_ARE_PROHIBITED = new ErrorCode(1_001_107_003, "当前排单有板材已开料,禁止更改");
|
||||
|
||||
ErrorCode PLAN_ERROR = new ErrorCode(1_001_107_004, "{} 排单数据不存在");
|
||||
|
||||
// ========== 生产单商品 TODO 补充编号 ==========
|
||||
ErrorCode GOODS_NOT_EXISTS = new ErrorCode(1_001_108_000, "生产单商品不存在");
|
||||
|
||||
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
package com.cf.imes.module.executor.api.plan.vo;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class OrderGroupRespVO {
|
||||
|
||||
|
||||
@Schema(description = "加工组ID")
|
||||
private Long id;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "生产单号")
|
||||
private Long orderId;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "柜体ID")
|
||||
private Long bodyId;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "加工组类型")
|
||||
private String groupTypeName;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "模块名称")
|
||||
private String name;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "加工组宽度")
|
||||
private Double width;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "加工组高度")
|
||||
private Double height;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "加工组深度")
|
||||
private Double depth;
|
||||
|
||||
|
||||
@Schema(description = "加工组总数")
|
||||
private Integer groupNum;
|
||||
|
||||
}
|
||||
+32
-7
@@ -1,15 +1,17 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan;
|
||||
|
||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.CuttingStatusRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.SavePlanPlateResultReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateSaveReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.AddRemainReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.GetSourceDataReq;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize;
|
||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||
import com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService;
|
||||
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.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@@ -53,10 +55,15 @@ public class OptimizePlanController {
|
||||
|
||||
|
||||
@GetMapping("commit")
|
||||
@Operation(summary = "开始开料")
|
||||
@Operation(summary = "开料")
|
||||
@Parameters({
|
||||
@Parameter(name = "planId", description = "排单ID", required = true, example = "1024"),
|
||||
@Parameter(name = "goodsNo", description = "开料的大板编号", required = true, example = "1")
|
||||
})
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:optimize')")
|
||||
public CommonResult<Boolean> commit(@RequestParam @Valid @NotNull(message = "排单id不能空") Long planId) {
|
||||
return CommonResult.success(optimizePlanService.commit(planId));
|
||||
public CommonResult<Boolean> commit(@RequestParam("planId") Long planId,@RequestParam("goodsNo") List<Long> goodsNo) {
|
||||
|
||||
return CommonResult.success(optimizePlanService.commit(planId,goodsNo));
|
||||
}
|
||||
|
||||
@GetMapping("/endCutting")
|
||||
@@ -67,14 +74,24 @@ public class OptimizePlanController {
|
||||
}
|
||||
|
||||
|
||||
@PutMapping("/updateCuttingStatus")
|
||||
@Operation(summary = "修改开料状态")
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:optimize:updateCuttingStatus')")
|
||||
public CommonResult<Boolean> updateCuttingStatus(@RequestBody CuttingStatusRespVO respVO) {
|
||||
return success(optimizePlanService.updateCuttingStatus(respVO));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GetMapping("/getOrderSource")
|
||||
@Operation(summary = "获取生产单源数据")
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:optimize')")
|
||||
public CommonResult<OrderSource> getOrderSource(@Schema(description = "生产单id") @RequestParam(required = false) Long orderId,
|
||||
@Schema(description = "大板IDS-大板分类的IDS") @RequestParam(required = false) List<Long> ids,
|
||||
@Schema(description = "排单id") @RequestParam(required = false) Long planId,
|
||||
@Schema(description = "机台Id") @RequestParam("machineId") Long machineId
|
||||
) {
|
||||
return CommonResult.success(optimizePlanService.getOrderSource(orderId, planId, machineId));
|
||||
return CommonResult.success(optimizePlanService.getOrderSource(orderId, planId, machineId,ids));
|
||||
|
||||
}
|
||||
|
||||
@@ -111,5 +128,13 @@ public class OptimizePlanController {
|
||||
}
|
||||
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "ES批量删除测试")
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:delete')")
|
||||
public CommonResult<String> deleteTest(@RequestParam("id") List<Long> id) {
|
||||
return success(optimizePlanService.deleteTest(id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+56
-31
@@ -1,30 +1,36 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan;
|
||||
|
||||
import com.cf.imes.framework.es.core.valid.CreateGroup;
|
||||
import com.cf.imes.framework.es.core.valid.UpdateGroup;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
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 javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
||||
import com.cf.imes.framework.es.core.valid.CreateGroup;
|
||||
import com.cf.imes.framework.es.core.valid.UpdateGroup;
|
||||
import com.cf.imes.framework.excel.core.util.ExcelUtils;
|
||||
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.service.plan.PlanService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
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.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
||||
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||
|
||||
@Tag(name = "管理后台 - 排单")
|
||||
@RestController
|
||||
@@ -38,7 +44,7 @@ public class PlanController {
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建排单")
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:create')")
|
||||
public CommonResult<Long> createPlan(@Validated(CreateGroup.class) @RequestBody PlanSaveReqVO createReqVO) {
|
||||
public CommonResult<Map<Long,Long>> createPlan(@Validated(CreateGroup.class) @RequestBody PlanSaveReqVO createReqVO) {
|
||||
return success(planService.createPlan(createReqVO));
|
||||
}
|
||||
|
||||
@@ -52,16 +58,16 @@ public class PlanController {
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除排单")
|
||||
@Parameter(name = "id", description = "排单id", required = true)
|
||||
@Parameter(name = "ids", description = "排单ids", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:delete')")
|
||||
public CommonResult<Boolean> deletePlan(@RequestParam("id") Long id) {
|
||||
return success(planService.deletePlan(id));
|
||||
public CommonResult<Boolean> deletePlan(@RequestParam("ids") List<Long> ids) {
|
||||
return success(planService.deletePlan(ids));
|
||||
}
|
||||
|
||||
@DeleteMapping("cancellation")
|
||||
@Operation(summary = "作废")
|
||||
@Parameter(name = "id", description = "排单id", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('executor:plan:delete')")
|
||||
// @DeleteMapping("cancellation")
|
||||
// @Operation(summary = "作废")
|
||||
// @Parameter(name = "id", description = "排单id", required = true)
|
||||
// @PreAuthorize("@ss.hasPermission('executor:plan:delete')")
|
||||
public CommonResult<Boolean> cancellation(@RequestParam("id") Long id) {
|
||||
return success(planService.cancellation(id));
|
||||
}
|
||||
@@ -106,12 +112,19 @@ public class PlanController {
|
||||
}
|
||||
|
||||
@GetMapping("getNotPlanOrderListPage")
|
||||
@Operation(summary = "获取未排单的板材生产单板材分页列表")
|
||||
@Operation(summary = "获取未排单的生产单分页列表")
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:query')")
|
||||
public CommonResult<PageResult<OrderRespVOCopy>> getOrderPage(@Valid OrderPageReqVOCopy pageReqVO) {
|
||||
return success(planService.getOrderPage(pageReqVO));
|
||||
}
|
||||
|
||||
@GetMapping("getNotPlanOrderPlateList")
|
||||
@Operation(summary = "获取未排单的板材分页列表")
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:query')")
|
||||
public CommonResult<List<NotPlanOrderPlateRespVO>> getOrderPlateList(@Valid OrderPageReqVOCopy pageReqVO) {
|
||||
return success(planService.getOrderPlateList(pageReqVO));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("getNotPlanGoodsListPage")
|
||||
@Operation(summary = "获取未排单的大板板材分页列表")
|
||||
@@ -122,13 +135,14 @@ public class PlanController {
|
||||
|
||||
|
||||
|
||||
@GetMapping("getNotPlanPlateListPage")
|
||||
@Operation(summary = "获取未排单的板材分页列表")
|
||||
@PostMapping("getNotOptimizeGoodsList")
|
||||
@Operation(summary = "优化界面未排单的大板板材分页列表")
|
||||
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
|
||||
public CommonResult<List<PlatePage>> getNotPlanPlateListPage(@Valid PlateReqPageVO pageVO) {
|
||||
return success(planService.getNotPlanPlateListPage(pageVO));
|
||||
public CommonResult<List<NotPlanGoodsRespVO>> getNotOptimizeGoodsList(@Valid @RequestBody NotPlanGoodsReqVO reqVO) {
|
||||
return success(planService.getNotOptimizeGoodsList(reqVO));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("getNotPlanGoodsListPageByOrderId")
|
||||
@Operation(summary = "根据生产单id获取未排单的商品分页列表")
|
||||
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
|
||||
@@ -180,4 +194,15 @@ public class PlanController {
|
||||
return success(planService.getPlateList(planIds));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("getOrderRoomBodyList")
|
||||
@Operation(summary = "获取未排单的生产单的柜体和房间名称")
|
||||
@Parameter(name = "orderIds", description = "生产单ID", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:orderlist')")
|
||||
public CommonResult<List<OrderRoomBodyList>> getOrderRoomBody(@Valid @RequestParam List<Long> orderIds) {
|
||||
|
||||
return success(planService.getOrderRoomBody(orderIds));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.bo;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class OrderBodyIds {
|
||||
|
||||
|
||||
@Schema(description = "柜体ID")
|
||||
private Long bodyId;
|
||||
|
||||
@Schema(description = "柜体名称")
|
||||
private String bodyName;
|
||||
|
||||
|
||||
}
|
||||
+3
-4
@@ -3,16 +3,15 @@ package com.cf.imes.module.executor.controller.admin.plan.bo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.Builder;
|
||||
|
||||
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
|
||||
public class OrderIds {
|
||||
|
||||
|
||||
@Schema(description = "大板ID")
|
||||
@Schema(description = "大板ID-大板分类的ID")
|
||||
private Long id;
|
||||
|
||||
|
||||
@@ -20,7 +19,7 @@ public class OrderIds {
|
||||
private Long orderId;
|
||||
|
||||
|
||||
@Schema(description = "商品ID")
|
||||
@Schema(description = "商品ID-板材库对应的大板ID")
|
||||
private Long goodsId;
|
||||
|
||||
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.bo;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class OrderRoomBodyList {
|
||||
|
||||
|
||||
@Schema(description = "生产单ID")
|
||||
private Long orderId;
|
||||
|
||||
|
||||
@Schema(description = "柜体房间信息")
|
||||
private List<OrderRoomIds> orderRoomIds;
|
||||
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.bo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class OrderRoomIds {
|
||||
|
||||
|
||||
@Schema(description = "房间ID")
|
||||
private Long roomId;
|
||||
|
||||
@Schema(description = "房间名称")
|
||||
private String roomName;
|
||||
|
||||
@Schema(description = "柜体信息")
|
||||
private List<OrderBodyIds> orderBodyIds;
|
||||
|
||||
|
||||
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.ToString;
|
||||
|
||||
@Schema(description = "小板优化的数据信息")
|
||||
@Data
|
||||
@ToString(callSuper = true)
|
||||
public class BlockPlaceInfo {
|
||||
|
||||
|
||||
@Schema(description = "大板编号")
|
||||
private Long bi;
|
||||
|
||||
@Schema(description = "小板编号")
|
||||
private Long bo;
|
||||
|
||||
public BlockPlaceInfo(Long bi, Long bo) {
|
||||
this.bi = bi;
|
||||
this.bo = bo;
|
||||
}
|
||||
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class CuttingStatusRespVO {
|
||||
|
||||
|
||||
@Schema(description = "排单ID")
|
||||
private Long planId;
|
||||
|
||||
|
||||
@Schema(description = "取消开料的大板编号")
|
||||
private List<Long> goodsNo;
|
||||
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 未排单的大板的数据信息")
|
||||
@Data
|
||||
@ToString(callSuper = true)
|
||||
public class NotPlanGoodsReqVO {
|
||||
|
||||
|
||||
// @Schema(description = "生产单ids")
|
||||
// private List<Long> orderIds;
|
||||
//
|
||||
// @Schema(description = "生产单的大板ids")
|
||||
// private List<Long> goodsIds;
|
||||
//
|
||||
//
|
||||
// @Schema(description = "板材库对应的大板ids")
|
||||
// private List<Long> plateGoodsIds;
|
||||
|
||||
|
||||
@Schema(description = "生产单和大板的信息")
|
||||
private List<OrderIds> orderIdList;
|
||||
|
||||
|
||||
@Schema(description = "排单类型:1 混单排单,2 生产单排单", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Integer type;
|
||||
|
||||
|
||||
@Schema(description = "混单过滤条件")
|
||||
private List<Information> filter;
|
||||
|
||||
|
||||
@Valid
|
||||
@Data
|
||||
public static class Information {
|
||||
|
||||
@Schema(description = "材质")
|
||||
private Boolean material;
|
||||
|
||||
@Schema(description = "颜色")
|
||||
private Boolean color;
|
||||
|
||||
@Schema(description = "长*宽")
|
||||
private Boolean spec;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
@ToString(callSuper = true)
|
||||
public class NotPlanGoodsRespVO {
|
||||
|
||||
|
||||
// @Schema(description = "生产单ids")
|
||||
// private List<Long> orderIds;
|
||||
//
|
||||
//
|
||||
// @Schema(description = "生产单的大板ids")
|
||||
// private List<Long> goodsIds;
|
||||
//
|
||||
//
|
||||
// @Schema(description = "板材库对应的大板ids")
|
||||
// private List<Long> plateGoodsIds;
|
||||
|
||||
|
||||
@Schema(description = "生产单和大板的信息")
|
||||
private List<OrderIds> orderIdList;
|
||||
|
||||
|
||||
|
||||
// @Schema(description = "余料板ID")
|
||||
// private List<Long> remainPlateIds;
|
||||
|
||||
|
||||
@Schema(description = "商品ID-板材库对应的大板ID")
|
||||
private Long goodsId;
|
||||
|
||||
|
||||
@Schema(description = "商品名称")
|
||||
private String goodsName;
|
||||
|
||||
|
||||
@Schema(description = "商品材质")
|
||||
private String material;
|
||||
|
||||
|
||||
@Schema(description = "商品颜色")
|
||||
private String color;
|
||||
|
||||
|
||||
@Schema(description = "商品纹路")
|
||||
private Boolean texture;
|
||||
|
||||
|
||||
// @Schema(description = "宽")
|
||||
// private BigDecimal width;
|
||||
//
|
||||
//
|
||||
// @Schema(description = "高")
|
||||
// private BigDecimal height;
|
||||
//
|
||||
//
|
||||
@Schema(description = "厚")
|
||||
private BigDecimal thickness;
|
||||
|
||||
|
||||
// @Schema(description = "面积")
|
||||
// private BigDecimal area;
|
||||
|
||||
|
||||
@Schema(description = "小板数量")
|
||||
private Integer plateNum;
|
||||
|
||||
|
||||
@Schema(description = "大板数量")
|
||||
private Integer goodsNum;
|
||||
|
||||
|
||||
@Schema(description = "尺寸规格")
|
||||
private String spec;
|
||||
|
||||
|
||||
}
|
||||
+4
-4
@@ -15,7 +15,7 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
|
||||
public class GoodsReqVO {
|
||||
|
||||
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4109")
|
||||
@Schema(description = "主键-大板分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4109")
|
||||
private Long id;
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ public class GoodsReqVO {
|
||||
@Schema(description = "设计端商品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "832")
|
||||
private Long rawGoodsId;
|
||||
|
||||
@Schema(description = "商品 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "243")
|
||||
@Schema(description = "商品 ID-大板的实际ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "243")
|
||||
private Long goodsId;
|
||||
|
||||
@Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰")
|
||||
@@ -79,13 +79,13 @@ public class GoodsReqVO {
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
private LocalDateTime createTime;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "更新时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] updateTime;
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
|
||||
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.vo;
|
||||
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class NotPlanOrderPlateRespVO {
|
||||
|
||||
// @Schema(description = "生产单id")
|
||||
// private List<Long> orderId;
|
||||
//
|
||||
// @Schema(description = "生产单的大板ID-大板分类ID")
|
||||
// private List<Long> id;
|
||||
//
|
||||
// @Schema(description = "商品id-板材库对应的ID")
|
||||
// private Long goodsId;
|
||||
|
||||
|
||||
@Schema(description = "生产单和大板的信息")
|
||||
private List<OrderIds> orderIdList;
|
||||
|
||||
@Schema(description = "商品ID-板材库对应的大板ID")
|
||||
private Long goodsId;
|
||||
|
||||
@Schema(description = "商品名称")
|
||||
private String goodsName;
|
||||
|
||||
@Schema(description = "商品材质")
|
||||
private String material;
|
||||
|
||||
@Schema(description = "商品颜色")
|
||||
private String color;
|
||||
|
||||
@Schema(description = "宽")
|
||||
private BigDecimal width;
|
||||
|
||||
@Schema(description = "高")
|
||||
private BigDecimal height;
|
||||
|
||||
@Schema(description = "厚")
|
||||
private BigDecimal thickness;
|
||||
|
||||
@Schema(description = "商品纹路")
|
||||
private Boolean texture;
|
||||
|
||||
@Schema(description = "商品品牌")
|
||||
private String brand;
|
||||
|
||||
|
||||
}
|
||||
+4
-2
@@ -5,8 +5,6 @@ import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,6 +30,10 @@ public class OrderGoodsResp {
|
||||
private BigDecimal height;
|
||||
@Schema(description = "厚")
|
||||
private BigDecimal thickness;
|
||||
@Schema(description = "商品纹路")
|
||||
private Boolean texture;
|
||||
@Schema(description = "商品品牌")
|
||||
private String brand;
|
||||
@Schema(description = "面积")
|
||||
private BigDecimal area;
|
||||
|
||||
|
||||
+15
-11
@@ -3,12 +3,10 @@ package com.cf.imes.module.executor.controller.admin.plan.vo;
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
@@ -16,14 +14,12 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
|
||||
/**
|
||||
* @author there
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
|
||||
@Data
|
||||
public class OrderPageReqVOCopy extends PageParam {
|
||||
|
||||
@Schema(description = "生产单id")
|
||||
private Long orderId;
|
||||
@Schema(description = "商品id")
|
||||
private String goodsId;
|
||||
@Schema(description = "自定义id")
|
||||
private String defaultId;
|
||||
@Schema(description = "客户")
|
||||
@@ -49,12 +45,6 @@ public class OrderPageReqVOCopy extends PageParam {
|
||||
@Schema(description = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
/*@Schema(description = "交付日期开始时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime beginDate;
|
||||
@Schema(description = "交付日期结束时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime endDate;*/
|
||||
@Schema(description = "长 小范围")
|
||||
private BigDecimal longMinRang;
|
||||
@Schema(description = "长 大范围")
|
||||
@@ -64,4 +54,18 @@ public class OrderPageReqVOCopy extends PageParam {
|
||||
@Schema(description = "宽 大范围")
|
||||
private BigDecimal widthMaxRang;
|
||||
|
||||
|
||||
// todo 目前商品ID的数据筛选只解决了非混单的情况(非混单,数据类型为Long即可,混单情况需要改变),混单数据筛选待解决
|
||||
@Schema(description = "商品ID-板材库对应的大板ID")
|
||||
private Long goodsId;
|
||||
|
||||
@Schema(description = "大板分类ID")
|
||||
private List<Long> ids;
|
||||
@Schema(description = "房间ID")
|
||||
private List<Long> roomId;
|
||||
@Schema(description = "柜体ID")
|
||||
private List<Long> bodyId;
|
||||
@Schema(description = "生产单ids")
|
||||
private List<Long> orderIds;
|
||||
|
||||
}
|
||||
|
||||
+2
@@ -24,6 +24,8 @@ import static com.cf.imes.framework.common.util.date.DateUtils.*;
|
||||
public class OrderRespVOCopy {
|
||||
@Schema(description = "生产单id")
|
||||
private Long orderId;
|
||||
@Schema(description = "生产单状态")
|
||||
private Long status;
|
||||
@Schema(description = "自定义单号")
|
||||
private String defineId;
|
||||
@Schema(description = "客户")
|
||||
|
||||
+11
-4
@@ -1,10 +1,12 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
@@ -16,7 +18,12 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
|
||||
public class PlanPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "排单号")
|
||||
private String id;
|
||||
private Long id;
|
||||
|
||||
|
||||
@Schema(description = "是否翻页-true:上,false:下")
|
||||
private Boolean isUp;
|
||||
|
||||
|
||||
@Schema(description = "排序优先级")
|
||||
private Integer sort;
|
||||
|
||||
+27
-14
@@ -1,13 +1,12 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.vo;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 生产单开料排单 Response VO")
|
||||
@Data
|
||||
@@ -18,10 +17,6 @@ public class PlanRespVO {
|
||||
@ExcelProperty("ID")
|
||||
private Long id;
|
||||
|
||||
// @Schema(description = "排单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
// @ExcelProperty("排单号")
|
||||
// private String planNo;
|
||||
|
||||
@Schema(description = "排序优先级", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("排序优先级")
|
||||
private Integer sort;
|
||||
@@ -34,9 +29,6 @@ public class PlanRespVO {
|
||||
@ExcelProperty("排单状态:0 新单,1 板材已申请,2 开料中,3 已开料")
|
||||
private Integer status;
|
||||
|
||||
// @Schema(description = "是否支付:0 否,1 是", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
// @ExcelProperty("是否支付:0 否,1 是")
|
||||
// private Boolean isPay;
|
||||
|
||||
@Schema(description = "机台 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16707")
|
||||
@ExcelProperty("机台 ID")
|
||||
@@ -57,7 +49,7 @@ public class PlanRespVO {
|
||||
@Schema(description = "排单对应的生产单的信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<PlanOrderRespVO> orderList;
|
||||
|
||||
@Schema(description = "板材信息列表", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@Schema(description = "板材信息列表-大板信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<PlateInfoVO> plateInfoList;
|
||||
|
||||
@Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
|
||||
@@ -80,4 +72,25 @@ public class PlanRespVO {
|
||||
@ExcelProperty("生产时间")
|
||||
private LocalDateTime produceTime;
|
||||
|
||||
|
||||
@Schema(description = "优化大板片数")
|
||||
private Long optimizeGoodsCount;
|
||||
|
||||
|
||||
@Schema(description = "已开料的大板片数")
|
||||
private Long cutGoodsCount;
|
||||
|
||||
|
||||
@Schema(description = "总小板片数")
|
||||
private Long plateNum;
|
||||
|
||||
|
||||
@Schema(description = "未优化小板片数")
|
||||
private Long unOptimizePlateCount;
|
||||
|
||||
|
||||
@Schema(description = "已优化小板片数")
|
||||
private Long optimizePlateCount;
|
||||
|
||||
|
||||
}
|
||||
+21
-11
@@ -2,12 +2,13 @@ package com.cf.imes.module.executor.controller.admin.plan.vo;
|
||||
|
||||
import com.cf.imes.framework.es.core.valid.CreateGroup;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 生产单开料排单新增/修改 Request VO")
|
||||
@Data
|
||||
@@ -18,7 +19,6 @@ public class PlanSaveReqVO {
|
||||
|
||||
|
||||
@Schema(description = "排序优先级", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
//@NotNull(groups = CreateGroup.class,message = "排序优先级不能为空")
|
||||
private Long sort;
|
||||
|
||||
@Schema(description = "排单类型:1 混单排单,2 生产单排单", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@@ -38,14 +38,10 @@ public class PlanSaveReqVO {
|
||||
@NotNull(message = "计划时间不能为空", groups = CreateGroup.class)
|
||||
private LocalDateTime planTime;
|
||||
|
||||
/*@Schema(description = "生产单id列表", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<Long> orderIds;*/
|
||||
|
||||
/*@Schema(description = "板件id列表")
|
||||
private List<Long> plateIds;*/
|
||||
|
||||
@Schema(description = "生产单id与商品id 列表",requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<Item> itemList;
|
||||
// @Schema(description = "余料板ID")
|
||||
// private List<Long> remainPlateIds;
|
||||
|
||||
|
||||
@Schema(description = "备注")
|
||||
@@ -59,6 +55,15 @@ public class PlanSaveReqVO {
|
||||
@NotNull(message = "生产时间不能为空", groups = CreateGroup.class)
|
||||
private LocalDateTime produceTime;
|
||||
|
||||
|
||||
@Schema(description = "生产单id与商品id 列表",requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<Item> itemList;
|
||||
|
||||
|
||||
@Schema(description = "去除的大板分类ID",requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<Long> deleteIds;
|
||||
|
||||
|
||||
@Valid
|
||||
@Data
|
||||
public static class Item {
|
||||
@@ -70,8 +75,13 @@ public class PlanSaveReqVO {
|
||||
@Schema(description = "生产单id")
|
||||
@NotNull
|
||||
private Long orderId;
|
||||
|
||||
@Schema(description = "板材库大板id")
|
||||
@NotNull
|
||||
private Long goodsId;
|
||||
|
||||
@Schema(description = "余料板ID")
|
||||
@NotNull
|
||||
private Long remainPlateId;
|
||||
}
|
||||
}
|
||||
+6
-3
@@ -13,7 +13,7 @@ import java.util.List;
|
||||
public class PlateDetialRespVO {
|
||||
|
||||
@Schema(description = "板件ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long id;
|
||||
private Long plateId;
|
||||
|
||||
|
||||
@Schema(description = "房间ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@@ -35,10 +35,13 @@ public class PlateDetialRespVO {
|
||||
private Long orderId;
|
||||
|
||||
|
||||
@Schema(description = "商品ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long goodsId;
|
||||
@Schema(description = "商品ID-大板分类ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long id;
|
||||
|
||||
|
||||
@Schema(description = "大板实例ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long goodsId;
|
||||
|
||||
@Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String goodsName;
|
||||
|
||||
|
||||
+16
-2
@@ -1,14 +1,15 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.vo;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author there
|
||||
@@ -18,6 +19,16 @@ import java.math.BigDecimal;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PlateInfoVO {
|
||||
|
||||
|
||||
@Schema(description = "生产单和大板的信息")
|
||||
private List<OrderIds> orderIdList;
|
||||
|
||||
|
||||
@Schema(description = "板材库对应的大板ID-大板实际ID")
|
||||
private Long goodsId;
|
||||
|
||||
|
||||
@Schema(description = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String material;
|
||||
|
||||
@@ -40,7 +51,10 @@ public class PlateInfoVO {
|
||||
@Schema(description = "颜色")
|
||||
private String color;
|
||||
|
||||
@Schema(description = "数量")
|
||||
@Schema(description = "数量-大板对应的小板数量")
|
||||
private Integer count;
|
||||
|
||||
@Schema(description = "优化大板片数")
|
||||
private Long optimizeGoodsCount;
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ public class OptimizationSavePlateReqVO {
|
||||
private Integer type;
|
||||
|
||||
|
||||
@Schema(description = "商品ID")
|
||||
@Schema(description = "商品ID-大板的实际ID")
|
||||
private Long goodsId;
|
||||
|
||||
@Schema(description = "纹路类型,0 正纹 1 可翻转 2 反纹")
|
||||
|
||||
+13
-5
@@ -1,14 +1,14 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plate.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.util.*;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Beal
|
||||
@@ -173,6 +173,14 @@ public class PlateRespVO extends PageParam {
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "加工造型(槽)数")
|
||||
private Integer sculptNum;
|
||||
|
||||
|
||||
@Schema(description = "加工孔数")
|
||||
private Integer holeNum;
|
||||
|
||||
|
||||
@Schema(description = "板材颜色")
|
||||
private String color;
|
||||
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.cf.imes.module.executor.dal.dataobject.goods;
|
||||
|
||||
|
||||
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
|
||||
@Schema(description = "大板开料信息")
|
||||
public class CutedBoardInfo {
|
||||
|
||||
|
||||
@Schema(description = "已开料大板数量")
|
||||
private Long cutedBoardNumber;
|
||||
|
||||
|
||||
@Schema(description = "具体的开料大板编号")
|
||||
private List<Long> cutedBoardList;
|
||||
|
||||
|
||||
}
|
||||
+21
-1
@@ -2,6 +2,7 @@ package com.cf.imes.module.executor.dal.dataobject.goods;
|
||||
|
||||
|
||||
import com.cf.imes.framework.es.core.dal.ESDocument;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -9,6 +10,7 @@ import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
@@ -23,7 +25,25 @@ public class OptimizeBoardModelDO extends ESDocument {
|
||||
|
||||
|
||||
@Schema(description = "生产单id")
|
||||
private Long orderId;
|
||||
@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
|
||||
private List<Long> orderId;
|
||||
|
||||
|
||||
@Schema(description = "大板的实际ID")
|
||||
private Long goodsId;
|
||||
|
||||
|
||||
@Schema(description = "生产单已优化小板数量")
|
||||
private Long placeBlockNumber;
|
||||
|
||||
|
||||
// 新的数据集需要去除
|
||||
@Schema(description = "排单优化的大板数量")
|
||||
private Long placeBoardNumber;
|
||||
|
||||
|
||||
@Schema(description = "已开料大板数据集")
|
||||
private CutedBoardInfo cutedBoardInfo;
|
||||
|
||||
|
||||
@Schema(description = "大板原长")
|
||||
|
||||
+4
-7
@@ -1,11 +1,8 @@
|
||||
package com.cf.imes.module.executor.dal.dataobject.orderGroup;
|
||||
|
||||
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
|
||||
import lombok.*;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import lombok.*;
|
||||
|
||||
/**
|
||||
* 生产单加工组 DO
|
||||
@@ -51,15 +48,15 @@ public class OrderGroupDO extends BaseDO {
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 模块宽度
|
||||
* 加工组宽度
|
||||
*/
|
||||
private Double width;
|
||||
/**
|
||||
* 模块高度
|
||||
* 加工组高度
|
||||
*/
|
||||
private Double height;
|
||||
/**
|
||||
* 模块深度
|
||||
* 加工组深度
|
||||
*/
|
||||
private Double depth;
|
||||
/**
|
||||
|
||||
+4
-17
@@ -1,23 +1,10 @@
|
||||
package com.cf.imes.module.executor.dal.dataobject.plate;
|
||||
|
||||
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
||||
import lombok.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 生产单板件 DO
|
||||
@@ -55,7 +42,7 @@ public class PlateDO extends BaseDO {
|
||||
*/
|
||||
private String plateNo;
|
||||
/**
|
||||
* 板类型,0 层板 1 立板 2 背板
|
||||
* 板类型,0 层板 1 立板 2 背板 3 自增板
|
||||
*/
|
||||
private Integer type;
|
||||
/**
|
||||
|
||||
+55
-13
@@ -1,22 +1,21 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.goods;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsPageReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.GoodsReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPageReqVOCopy;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.cf.imes.module.executor.controller.admin.goods.vo.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
|
||||
/**
|
||||
@@ -51,7 +50,7 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
List<GoodsReqVO> selectGoodsList(@Param("orderId") Long orderId, @Param("organId") Long organId);
|
||||
|
||||
|
||||
List<GoodsReqVO> selectGoodsListByOrderIds(@Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||
List<GoodsReqVO> selectGoodsListByOrderIds(@Param("goodsIds") List<Long> goodsIds, @Param("organId") Long organId);
|
||||
|
||||
|
||||
// 单个修改删除状态
|
||||
@@ -82,12 +81,26 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
IPage<OrderGoodsResp> selectGoods(@Param("page") IPage page, @Param("goodsIds") List<Long> goodsIds, @Param("organId") Long organId);
|
||||
|
||||
|
||||
default GoodsDO selectId(Long orderId, Long goodsId, Long organId) {
|
||||
return selectOne(new LambdaQueryWrapperX<GoodsDO>()
|
||||
// default GoodsDO selectId(Long orderId, Long goodsId, Long organId) {
|
||||
// return selectOne(new LambdaQueryWrapperX<GoodsDO>()
|
||||
// }
|
||||
// default List<GoodsDO> selectGoodsPlateList(List<Long> goodIds, Long organId) {
|
||||
// return selectList(new LambdaQueryWrapperX<GoodsDO>()
|
||||
// .eq(GoodsDO::getOrganId, organId)
|
||||
// .inIfPresent(GoodsDO::getOrderId, goodIds)
|
||||
// .select(GoodsDO::getGoodsId,GoodsDO::getGoodsName, GoodsDO::getMaterial, GoodsDO::getColor, GoodsDO::getTexture,GoodsDO::getThickness, GoodsDO::getSpec));
|
||||
// }
|
||||
|
||||
|
||||
List<NotPlanGoodsRespVO> selectGoodsPlateList(@Param("goodIds") List<Long> goodIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
default List<GoodsDO> selectListByGoodsId(Long goodsId, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<GoodsDO>()
|
||||
.eq(GoodsDO::getOrganId, organId)
|
||||
.eq(GoodsDO::getOrderId, orderId)
|
||||
.eq(GoodsDO::getGoodsId, goodsId)
|
||||
.eq(GoodsDO::getDeleted, 0));
|
||||
.eq(GoodsDO::getDeleted, false)
|
||||
.eq(GoodsDO::getGoodsId, goodsId));
|
||||
|
||||
}
|
||||
|
||||
// 根据生产单删除
|
||||
@@ -101,4 +114,33 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
return delete(new LambdaQueryWrapperX<GoodsDO>()
|
||||
.in(GoodsDO::getOrderId, orderId));
|
||||
}
|
||||
|
||||
|
||||
// List<GoodsDO> seleTestSQL(@Param("sql") String sql);
|
||||
|
||||
|
||||
|
||||
default List<GoodsDO> selectListByGoodsIdList(List<Long> goodsIds,List<Long> orderIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<GoodsDO>()
|
||||
.eq(GoodsDO::getOrganId, organId)
|
||||
.eq(GoodsDO::getDeleted, false)
|
||||
.in(GoodsDO::getGoodsId, goodsIds)
|
||||
.in(GoodsDO::getOrderId, orderIds));
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<GoodsDO> seleTestSQL(@Param("filed") String filed,@Param("goodsIds") List<Long> goodsIds ,@Param("organId") Long organId);
|
||||
|
||||
|
||||
default GoodsDO selectGoodsId(Long orderId, Long goodsId, Long organId) {
|
||||
return selectOne(new LambdaQueryWrapperX<GoodsDO>()
|
||||
.eq(GoodsDO::getOrganId, organId)
|
||||
.eq(GoodsDO::getDeleted, false)
|
||||
.eq(GoodsDO::getGoodsId, goodsId)
|
||||
.eq(GoodsDO::getOrderId, orderId)
|
||||
.select(GoodsDO::getId));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+37
-3
@@ -13,15 +13,15 @@ import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderCountPro
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderOverdueRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPageReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPageReqVOCopy;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy;
|
||||
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.OrderStatusEnum;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
|
||||
import javax.annotation.sql.DataSourceDefinition;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
@@ -90,6 +90,7 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
|
||||
|
||||
IPage<OrderRespVOCopy> selectOrderPage(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper);
|
||||
|
||||
// IPage<OrderRespVOCopy> selectOrderPage(@Param("page") IPage page,@Param("pageReqVO") OrderPageReqVOCopy pageReqVO, @Param("organId") Long organId);
|
||||
|
||||
Map<String, Object> selectDynamicSqlString(@Param("sqlStr") String sqlStr);
|
||||
|
||||
@@ -143,7 +144,7 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
|
||||
|
||||
List<OrderRespVOCopy> selectOrderListByIds(@Param("orderIds") List<OrderIds> orderIds, @Param("organId") Long organId);
|
||||
|
||||
List<Long> selectOrderIds(@Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper);
|
||||
IPage<OrderGoodsResp> selectOrderIds(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper);
|
||||
|
||||
// 生产单预警统计
|
||||
List<OrderOverdueRespVO> selectOrderNear(@Param("today") LocalDateTime today, @Param("orderDate") LocalDateTime orderDate, @Param("organId") Long organId);
|
||||
@@ -214,4 +215,37 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
|
||||
.eq(OrderDO::getDeleted, OrderDeletedEnum.DELETED.getStatus())
|
||||
.lt(OrderDO::getUpdateTime, LocalDateTime.now().minusDays(30))).stream().map(OrderDO::getId).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
default int updateOrderListStatus(List<Long> orderIds, Integer status,Long organId) {
|
||||
return update(new LambdaUpdateWrapper<OrderDO>()
|
||||
.set(OrderDO::getStatus, status)
|
||||
.in(OrderDO::getId, orderIds)
|
||||
.eq(OrderDO::getDeleted, 0)
|
||||
.eq(OrderDO::getOrganId, organId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
List<OrderDO> selectTestSQL(@Param("filed") String filed,@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
default List<OrderDO> selectOrderIdsList(OrderPageReqVOCopy pageReqVO, List<Integer> statusList, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderDO>()
|
||||
.eqIfPresent(OrderDO::getOrganId, organId)
|
||||
.eq(OrderDO::getDeleted, false)
|
||||
.in(OrderDO::getStatus,statusList)
|
||||
.likeIfPresent(OrderDO::getId,pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
|
||||
.inIfPresent(OrderDO::getId,pageReqVO.getOrderIds())
|
||||
.likeIfPresent(OrderDO::getCustomOrderNo,pageReqVO.getDefaultId())
|
||||
.likeIfPresent(OrderDO::getCustomer,pageReqVO.getConsignee())
|
||||
.likeIfPresent(OrderDO::getAddress,pageReqVO.getConsigneeAddress())
|
||||
.betweenIfPresent(OrderDO::getCreateTime,pageReqVO.getCreateTime())
|
||||
.select(OrderDO::getId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
-6
@@ -4,18 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderModuleRespVO;
|
||||
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.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
+26
-8
@@ -1,25 +1,18 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.orderItem;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderModuleRespVO;
|
||||
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.plan.saveOptimize.OptimizeRemainPlate;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
|
||||
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.PlateRespVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderModuleExtra.OrderModuleExtraDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -85,4 +78,29 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
||||
return delete(new LambdaQueryWrapperX<OrderItemDO>()
|
||||
.in(OrderItemDO::getOrderId, orderId));
|
||||
}
|
||||
|
||||
|
||||
List<OrderRoomBodyList> selectRoomBodyByOrderId( @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
default List<OrderItemDO> selectPlateIdList(List<Long> plateIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||
.eq(OrderItemDO::getOrganId,organId)
|
||||
.inIfPresent(OrderItemDO::getPlateId, plateIds)
|
||||
.select(OrderItemDO::getBodyId,OrderItemDO::getRoomId,OrderItemDO::getGroupId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
default List<OrderItemDO> selectPartsList(List<Long> partIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||
.eq(OrderItemDO::getOrganId,organId)
|
||||
.inIfPresent(OrderItemDO::getPlateId, partIds)
|
||||
.select(OrderItemDO::getNum));
|
||||
|
||||
}
|
||||
}
|
||||
+20
-5
@@ -1,19 +1,20 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.orderParts;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
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.OrderPartsRespVO;
|
||||
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.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
|
||||
@@ -84,4 +85,18 @@ public interface OrderPartsMapper extends BaseMapperX<OrderPartsDO> {
|
||||
return delete(new LambdaQueryWrapperX<OrderPartsDO>()
|
||||
.in(OrderPartsDO::getOrderId, orderId));
|
||||
}
|
||||
|
||||
|
||||
List<OrderPartsDO> selectTestSql(@Param("filed") String filed,@Param("partIds") List<Long> partIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
default List<OrderPartsDO> selectPartIds(List<Long> orderIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderPartsDO>()
|
||||
.eq(OrderPartsDO::getOrganId,organId)
|
||||
.eq(OrderPartsDO::getDeleted,false)
|
||||
.in(OrderPartsDO::getOrderId,orderIds)
|
||||
.select(OrderPartsDO::getId));
|
||||
}
|
||||
|
||||
}
|
||||
+19
-4
@@ -1,21 +1,21 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.plan;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
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.MPJLambdaWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
|
||||
/**
|
||||
@@ -100,4 +100,19 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
|
||||
* @return
|
||||
*/
|
||||
List<OrderPlanStatisticsAreaRespVO> selectPlanAreaGroupByCreateTime(@Param("req") OrderStatisticsReqVO reqVO);
|
||||
|
||||
|
||||
List<PlanDO> seleTestSQL(@Param("filed") String filed,@Param("planId") Long planId,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
List<PlanDO> selectPlanIds(@Param("updateTime") String updateTime,@Param("sort") Long sort,@Param("organId") Long organId,@Param("planId") Long planId);
|
||||
|
||||
|
||||
|
||||
List<PlanDO> selectPlanIdsFalse(@Param("updateTime") String updateTime,@Param("sort") Long sort,@Param("organId") Long organId,@Param("planId") Long planId);
|
||||
|
||||
|
||||
// List<PlanDO> seleTestSQL(@Param("sql") String sql);
|
||||
|
||||
}
|
||||
+72
-6
@@ -1,23 +1,29 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.plate;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.cf.imes.framework.common.enums.OrderPlateTypeEnum;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
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.OrderIds;
|
||||
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.PlateGoodsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlatePageReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
|
||||
/**
|
||||
@@ -120,7 +126,9 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
List<PlateGoodsIdVO> selectPlateGoodsListByList(@Param("plates") List<Long> goodsIdList, @Param("orderId") Long orderId, @Param("organId") Long organId);
|
||||
|
||||
|
||||
List<PlatePage> selectGoodsPage( @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||
// List<NotPlanOrderPlateRespVO> selectGoodsPage( @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||
|
||||
List<NotPlanOrderPlateRespVO> selectGoodsPage( @Param(Constants.WRAPPER) Wrapper<PlateDO> wrapper);
|
||||
|
||||
|
||||
IPage<OrderGoodsResp> selectGoodsList(@Param("page") IPage<OrderGoodsResp> page,@Param("goodsIds") List<Long> goodsIds,@Param("organId") Long organId);
|
||||
@@ -152,9 +160,67 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
.eq(PlateDO::getOrganId, organId)
|
||||
.eqIfPresent(PlateDO::getOrderId, orderId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
default List<PlateDO> selectGoodsPlateList(List<Long> goodIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.inIfPresent(PlateDO::getGoodsId, goodIds));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<PlateDetialRespVO> selectPlateListByGoodIds(@Param("goodIds") List<Long> goodIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
List<PlateInfoVO> selectPlateArea(@Param("orderIdsList") List<OrderIds> orderIdsList,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
default List<PlateDO> selectPlateByPlateNo(List<Long> plateNo, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.inIfPresent(PlateDO::getPlateNo, plateNo)
|
||||
.select(PlateDO::getOrderId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
default List<PlateDO> selectPlateListByGoodsIds(List<Long> deleteIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.inIfPresent(PlateDO::getGoodsId, deleteIds)
|
||||
.select(PlateDO::getPlateNo));
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 批量删除
|
||||
default int deleteBatch(Collection<?> orderId) {
|
||||
return delete(new LambdaQueryWrapperX<PlateDO>()
|
||||
.in(PlateDO::getOrderId, orderId));
|
||||
}
|
||||
|
||||
|
||||
List<PlateRespVO> selectTestSQL(@Param("filed") String filed, @Param("field2") String field2,@Param("goodsIdList") List<Long> goodsIdList,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
default List<PlateDO> selectPlateIdList(List<Long> goodsIdList, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.eq(PlateDO::getDeleted,false)
|
||||
.inIfPresent(PlateDO::getGoodsId,goodsIdList)
|
||||
.eq(PlateDO::getType, OrderPlateTypeEnum.SELFINCREASINGBOARD.getType())
|
||||
.select(PlateDO::getId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
// List<PlateDO> selectTestSQL(@Param("sql") String sql);
|
||||
|
||||
|
||||
}
|
||||
+6
-2
@@ -4,11 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate;
|
||||
import com.cf.imes.module.executor.controller.admin.remainplate.vo.RemainPlatePageReqVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.processStep.ProcessStepDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -59,4 +58,9 @@ public interface RemainPlateMapper extends BaseMapperX<RemainPlateDO> {
|
||||
.in(RemainPlateDO::getId, ids)
|
||||
.eq(RemainPlateDO::getOrganId, organId));
|
||||
}
|
||||
|
||||
List<RemainPlateDO> selectTestSQL(@Param("filed") String filed,@Param("planId") Long planId,@Param("organId") Long organId);
|
||||
|
||||
|
||||
// List<RemainPlateDO> selectTestSQL(@Param("sql") String sql);
|
||||
}
|
||||
|
||||
-32
@@ -1,32 +0,0 @@
|
||||
package com.cf.imes.module.executor.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* 排单状态
|
||||
*
|
||||
* @author Gqr
|
||||
* @since 2024/6/7 14:25
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
public enum OrderPlanStatusEnum {
|
||||
NEW(0, "新单"),
|
||||
|
||||
APPLY(1, "板材已申请"),
|
||||
|
||||
OPENING(2, "开料中"),
|
||||
|
||||
OPENED(3, "已开料");
|
||||
|
||||
/**
|
||||
* 类型编码
|
||||
*/
|
||||
private final Integer code;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String desc;
|
||||
}
|
||||
+2
-1
@@ -5,6 +5,7 @@ import com.cf.imes.module.report.api.template.ReportTemplateApi;
|
||||
import com.cf.imes.module.system.api.application.ApplicationApi;
|
||||
import com.cf.imes.module.system.api.dataSource.DataSourceApi;
|
||||
import com.cf.imes.module.system.api.machine.MachineApi;
|
||||
import com.cf.imes.module.system.api.organ.OrganApi;
|
||||
import com.cf.imes.module.system.api.process.ProcessApi;
|
||||
import com.cf.imes.module.system.api.process.ProcessGroupApi;
|
||||
import com.cf.imes.module.system.api.user.AdminUserApi;
|
||||
@@ -17,6 +18,6 @@ import org.springframework.context.annotation.Configuration;
|
||||
*/
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@EnableFeignClients(clients = {AdminUserApi.class, MachineApi.class, DictDataApi.class,AdminUserApi.class,
|
||||
FileApi.class, ProcessGroupApi.class, FileApi.class, DataSourceApi.class, ApplicationApi.class, ProcessApi.class, ReportTemplateApi.class})
|
||||
FileApi.class, ProcessGroupApi.class, FileApi.class, DataSourceApi.class, ApplicationApi.class, ProcessApi.class, ReportTemplateApi.class, OrganApi.class})
|
||||
public class RpcConfiguration {
|
||||
}
|
||||
|
||||
+13
-6
@@ -1,10 +1,13 @@
|
||||
package com.cf.imes.module.executor.service.optimizeplan;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.CuttingStatusRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.SavePlanPlateResultReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -18,19 +21,17 @@ public interface OptimizePlanService {
|
||||
|
||||
Boolean addRemain(AddRemainReqVO vo);
|
||||
|
||||
Boolean savePlanPlateResult(SavePlanPlateResult result);
|
||||
|
||||
Boolean commit(Long planId);
|
||||
Boolean commit(Long planId, List<Long> goodsNo);
|
||||
|
||||
Boolean updateCuttingStatus(CuttingStatusRespVO respVO);
|
||||
|
||||
Boolean endCutting(Long planId);
|
||||
|
||||
OptimizeParamResVO getOptimizeParam(Long planId);
|
||||
|
||||
OptimizeParamRespVO getOptimizePlanParam(Long planId);
|
||||
|
||||
Map<String, Object> getLabelDataSourceValue(GetSourceDataReq req);
|
||||
|
||||
OrderSource getOrderSource(Long orderId, Long planId, Long machineId);
|
||||
OrderSource getOrderSource(Long orderId, Long planId, Long machineId,List<Long> ids);
|
||||
|
||||
OrderSource getOrderSourceByOrderId(Long orderId);
|
||||
|
||||
@@ -41,4 +42,10 @@ public interface OptimizePlanService {
|
||||
|
||||
|
||||
List<OrderModelDO> getPlateModel(Long orderId);
|
||||
|
||||
List<OptimizeBoardModelDO> buildBoardByOrderIds(Collection<Long> orderIds, String index, Integer size);
|
||||
|
||||
|
||||
String deleteTest(List<Long> id);
|
||||
|
||||
}
|
||||
|
||||
+360
-199
@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.lang.Snowflake;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
||||
import co.elastic.clients.elasticsearch._types.FieldValue;
|
||||
import co.elastic.clients.elasticsearch.core.*;
|
||||
@@ -12,26 +11,20 @@ import co.elastic.clients.elasticsearch.core.search.Hit;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
||||
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
||||
import com.cf.imes.framework.common.enums.ProcessProcessingTypeEnum;
|
||||
import com.cf.imes.framework.common.enums.RemainTypeEnum;
|
||||
import com.cf.imes.framework.common.exception.ServiceException;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
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.MPJLambdaWrapperX;
|
||||
import com.cf.imes.framework.security.core.LoginUser;
|
||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessGroupList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepAreaIds;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepSalaryIds;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.dto.Material;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.SavePlanPlateResultReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.*;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.CutedBoardInfo;
|
||||
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;
|
||||
@@ -41,8 +34,6 @@ import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.processStep.ProcessStepDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.remainplaten.OutlineDTO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.remainplaten.PointDTO;
|
||||
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;
|
||||
@@ -54,33 +45,32 @@ import com.cf.imes.module.executor.dal.mysql.processStep.ProcessStepMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.processStepItem.ProcessStepItemMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.remainplaten.RemainPlateMapper;
|
||||
import com.cf.imes.module.executor.enums.ErrorCodeConstants;
|
||||
import com.cf.imes.module.executor.util.RandomUtils;
|
||||
import com.cf.imes.module.executor.util.RectangleChecker;
|
||||
import com.cf.imes.module.infra.api.file.FileApi;
|
||||
import com.cf.imes.module.infra.api.file.dto.FileCreateReqDTO;
|
||||
import com.cf.imes.module.system.api.dataSource.DataSourceApi;
|
||||
import com.cf.imes.module.system.api.machine.MachineApi;
|
||||
import com.cf.imes.module.system.api.process.ProcessApi;
|
||||
import com.cf.imes.module.system.api.process.dto.ProcessDTO;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
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.exception.enums.GlobalErrorCodeConstants.UNKNOWN;
|
||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.*;
|
||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||
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.PLAN_NOT_EXISTS;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.INSUFFICIENT_PERMISSIONS;
|
||||
|
||||
/**
|
||||
* @author there
|
||||
@@ -163,55 +153,200 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean savePlanPlateResult(SavePlanPlateResult result) {
|
||||
return null;
|
||||
// PlanDO planDO = planMapper.selectById(result.getPlanId());
|
||||
// if (Objects.isNull(planDO)) {
|
||||
// throw exception(PLAN_NOT_EXISTS);
|
||||
// }
|
||||
// try {
|
||||
// String placeDateFileUrlSource = planDO.getPlaceDateFileUrl();
|
||||
// String placeOrderFileUrlSource = planDO.getPlaceOrderFileUrl();
|
||||
// if (StrUtil.isNotBlank(placeDateFileUrlSource)) {
|
||||
// fileApi.deleteFileByPath(placeDateFileUrlSource).checkError();
|
||||
// }
|
||||
// if (StrUtil.isNotBlank(placeOrderFileUrlSource)) {
|
||||
// fileApi.deleteFileByPath(placeOrderFileUrlSource).checkError();
|
||||
// }
|
||||
// FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO();
|
||||
//
|
||||
// fileCreateReqDTO.setContent(result.getPlaceData().getBytes());
|
||||
// fileCreateReqDTO.setName(result.getPlaceData().getOriginalFilename());
|
||||
// String placeDateFileUrl = fileApi.createFile(fileCreateReqDTO).getCheckedData();
|
||||
//
|
||||
// fileCreateReqDTO.setContent(result.getPlaceOrder().getBytes());
|
||||
// fileCreateReqDTO.setName(result.getPlaceOrder().getOriginalFilename());
|
||||
// String placeOrderFileUrl = fileApi.createFile(fileCreateReqDTO).getCheckedData();
|
||||
//
|
||||
// PlanDO updateDO = PlanDO.builder()
|
||||
// .id(result.getPlanId())
|
||||
// .placeDateFileUrl(placeOrderFileUrl)
|
||||
// .placeOrderFileUrl(placeDateFileUrl)
|
||||
// .build();
|
||||
// planMapper.updateById(updateDO);
|
||||
//
|
||||
// } catch (IOException e) {
|
||||
// throw exception(UNKNOWN);
|
||||
// }
|
||||
// return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean commit(Long planId) {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean commit(Long planId, List<Long> goodsNo) {
|
||||
|
||||
PlanDO planDO = planMapper.selectById(planId);
|
||||
if (Objects.isNull(planDO)) {
|
||||
throw exception(PLAN_NOT_EXISTS);
|
||||
}
|
||||
planMapper.updateById(PlanDO.builder()
|
||||
.id(planId)
|
||||
.status(PlanStatusEnum.DURINGCUTTING.getStatus())
|
||||
.build());
|
||||
|
||||
|
||||
// todo 目前只解决了非混单的情况,混单情况待解决
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 10);
|
||||
|
||||
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
|
||||
List<Long> plateNo = new ArrayList<>();
|
||||
|
||||
// 创建一个列表存储 BlockPlaceInfo 对象,将优化的小板信息拿出,获取到小板编号,查询生产单,修改生产单的状态
|
||||
List<BlockPlaceInfo> outputList = new ArrayList<>();
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
try {
|
||||
// 解析 JSON 字符串
|
||||
JsonNode jsonArray = mapper.readTree(optimizeBoardModelDO.getBlockPlaceInfo());
|
||||
|
||||
// 遍历 JSON 数组并提取所需字段
|
||||
if (jsonArray.isArray()) {
|
||||
for (JsonNode jsonNode : jsonArray) {
|
||||
Long bi = jsonNode.get("bi").asLong();
|
||||
Long bo = jsonNode.get("bo").asLong();
|
||||
outputList.add(new BlockPlaceInfo(bi,bo));
|
||||
}
|
||||
}
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
for (Long goods : goodsNo) {
|
||||
plateNo.addAll(outputList.stream().filter(f -> f.getBi().equals(goods)).map(BlockPlaceInfo::getBo).distinct().toList());
|
||||
}
|
||||
|
||||
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateByPlateNo(plateNo.stream().distinct().toList(), getUserOrganId());
|
||||
|
||||
|
||||
List<Long> orderIds = plateDOS.stream().map(PlateDO::getOrderId).distinct().toList();
|
||||
|
||||
|
||||
|
||||
// 修改生产单的状态
|
||||
orderMapper.updateOrderListStatus(orderIds,OrderStatusEnum.IN_PRODUCTION.getStatus(),getUserOrganId());
|
||||
|
||||
|
||||
CutedBoardInfo cutedBoardInfo = optimizeBoardModelDO.getCutedBoardInfo();
|
||||
|
||||
|
||||
// 获取原排单的开料大板数 + 新增的开料大板数
|
||||
long cutedBoardNumber = cutedBoardInfo.getCutedBoardNumber() ;
|
||||
|
||||
|
||||
cutedBoardNumber += goodsNo.size();
|
||||
|
||||
|
||||
// 获取原排单的已开料的大板编号
|
||||
List<Long> cutedBoardList = cutedBoardInfo.getCutedBoardList() == null ? new ArrayList<>() : cutedBoardInfo.getCutedBoardList();
|
||||
|
||||
|
||||
// 将新开料的大板编号添加到已开料的大板编号中
|
||||
cutedBoardList.addAll(goodsNo);
|
||||
|
||||
|
||||
// 将需要更新更新的数据更新到原数据中
|
||||
cutedBoardInfo.setCutedBoardNumber(cutedBoardNumber);
|
||||
cutedBoardInfo.setCutedBoardList(cutedBoardList);
|
||||
|
||||
|
||||
// 更新开料相关的数据
|
||||
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
||||
objectObjectHashMap.put("cutedBoardInfo",cutedBoardInfo);
|
||||
|
||||
try {
|
||||
|
||||
esDocumentService.updateById(ORDER_REMAIN_PLATE_MODEL, optimizeBoardModelDO.getId(), HashMap.class, objectObjectHashMap);
|
||||
|
||||
}catch (IOException e) {
|
||||
log.error(e.getMessage());
|
||||
throw new ServiceException(ES_ERROR_UPDATE);
|
||||
}
|
||||
|
||||
if(cutedBoardNumber > 0){
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||
planMapper.updateById(planDO);
|
||||
|
||||
}
|
||||
|
||||
if(optimizeBoardModelDO.getBoardCount() == cutedBoardNumber){
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.OPENED.getStatus());
|
||||
planDO.setProduceTime(LocalDateTime.now());
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
|
||||
}
|
||||
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateCuttingStatus(CuttingStatusRespVO respVO) {
|
||||
|
||||
Long planId = respVO.getPlanId();
|
||||
List<Long> goodsNo = respVO.getGoodsNo();
|
||||
|
||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
assert loginUser != null;
|
||||
|
||||
if(!loginUser.getIsSupAdmin()){
|
||||
|
||||
throw exception(INSUFFICIENT_PERMISSIONS);
|
||||
|
||||
}
|
||||
|
||||
PlanDO planDO = planMapper.selectById(planId);
|
||||
if (planDO == null) {
|
||||
throw exception(PLAN_NOT_EXISTS);
|
||||
}
|
||||
|
||||
// todo 目前只解决了非混单的情况,混单情况待解决
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(planId, ORDER_REMAIN_PLATE_MODEL, 99);
|
||||
|
||||
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
|
||||
CutedBoardInfo cutedBoardInfo = optimizeBoardModelDO.getCutedBoardInfo() == null ? new CutedBoardInfo() : optimizeBoardModelDO.getCutedBoardInfo();
|
||||
|
||||
|
||||
if(cutedBoardInfo.getCutedBoardNumber() != null) {
|
||||
// 已经开料的大板信息
|
||||
List<Long> cutedBoardList = cutedBoardInfo.getCutedBoardList();
|
||||
// 开料的大板数量
|
||||
long cutedBoardNumber = cutedBoardInfo.getCutedBoardNumber();
|
||||
|
||||
// 移除取消开料的数据
|
||||
cutedBoardList.removeAll(goodsNo);
|
||||
// 减去取消开料的大板数量
|
||||
cutedBoardNumber -= (goodsNo.isEmpty() ? 0 : goodsNo.size());
|
||||
|
||||
|
||||
// 将需要更新更新的数据更新到原数据中
|
||||
cutedBoardInfo.setCutedBoardNumber(cutedBoardNumber);
|
||||
cutedBoardInfo.setCutedBoardList(cutedBoardList);
|
||||
|
||||
|
||||
// 更新开料相关的数据
|
||||
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
||||
objectObjectHashMap.put("cutedBoardInfo", cutedBoardInfo);
|
||||
|
||||
try {
|
||||
|
||||
esDocumentService.updateById(ORDER_REMAIN_PLATE_MODEL, optimizeBoardModelDO.getId(), HashMap.class, objectObjectHashMap);
|
||||
|
||||
} catch (IOException e) {
|
||||
log.error(e.getMessage());
|
||||
throw new ServiceException(ES_ERROR_UPDATE);
|
||||
}
|
||||
|
||||
if(cutedBoardInfo.getCutedBoardNumber() == 0){
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.NOCUTTING.getStatus());
|
||||
planDO.setProduceTime(null);
|
||||
planMapper.updateById(planDO);
|
||||
|
||||
}
|
||||
|
||||
if(planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus()) && cutedBoardInfo.getCutedBoardNumber() > 0 && cutedBoardInfo.getCutedBoardNumber() < optimizeBoardModelDO.getBoardCount() ){
|
||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||
planDO.setProduceTime(null);
|
||||
planMapper.updateById(planDO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// todo 待确认,是否要达到这样的需求 : 生产单的状态也应该更改,如果大板变为未开料,生产单对应的状态应该变为已排单(这时取消开料对应的大板对应的生产单应该在其他排单中不存在,可修改)
|
||||
|
||||
|
||||
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@@ -224,7 +359,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
planMapper.updateById(PlanDO.builder()
|
||||
.id(planId)
|
||||
.status(PlanStatusEnum.OPENEDMATERIAL.getStatus())
|
||||
.status(PlanStatusEnum.OPENED.getStatus())
|
||||
.produceTime(LocalDateTime.now())
|
||||
.build());
|
||||
|
||||
@@ -281,93 +416,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public OptimizeParamResVO getOptimizeParam(Long planId) {
|
||||
//小板列表
|
||||
List<PlateParam> plates = plateMapper.selectPlateList(planId);
|
||||
//余料规格列表
|
||||
List<RemainPlateDO> remainPlateDOS = remainPlateMapper.selectList(new LambdaQueryWrapperX<RemainPlateDO>().eq(RemainPlateDO::getPlanId, planId));
|
||||
//余料板规格
|
||||
List<OptimizeParamResVO.RawSize> rawSizes = new ArrayList<>();
|
||||
List<Integer> remainPlateCount = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(remainPlateDOS)) {
|
||||
Map<String, List<OutlineDTO>> map = remainPlateDOS.stream()
|
||||
.map(e -> OutlineDTO.builder()
|
||||
.list(JsonUtils.parseArray(e.getOutLineJson(), PointDTO.class))
|
||||
.length(e.getLength())
|
||||
.width(e.getWidth())
|
||||
.build()
|
||||
)
|
||||
.filter(e -> e.getList().size() == 4 && RectangleChecker.checkRectangle(e.getList()))
|
||||
.collect(Collectors.groupingBy(e -> e.getLength() + "," + e.getWidth()));
|
||||
map.entrySet().forEach(e -> {
|
||||
String[] split = e.getKey().split(",");
|
||||
BigDecimal length = new BigDecimal(split[0]);
|
||||
BigDecimal width = new BigDecimal(split[1]);
|
||||
List<OutlineDTO> outlines = e.getValue();
|
||||
rawSizes.add(OptimizeParamResVO.RawSize.builder()
|
||||
.length(length)
|
||||
.width(width)
|
||||
.x(new BigDecimal(outlines.get(0).getList().get(0).getX()))
|
||||
.y(new BigDecimal(outlines.get(0).getList().get(0).getY()))
|
||||
.build());
|
||||
remainPlateCount.add(outlines.size());
|
||||
});
|
||||
}
|
||||
|
||||
//大板规格
|
||||
/**
|
||||
* select * from order_goods a
|
||||
* left join order_plate b on a.goods_id = b.goods_id
|
||||
* left join order_item c on b.id = c.plate_id
|
||||
* left join order_plan_item d on c.id = d.item_id
|
||||
* where d.plan_id = 1769638780093857792
|
||||
*/
|
||||
MPJLambdaWrapper<GoodsDO> wrapper = new MPJLambdaWrapperX<GoodsDO>()
|
||||
.distinct()
|
||||
.select(GoodsDO::getId, GoodsDO::getWidth, GoodsDO::getHeight)
|
||||
.leftJoin(PlateDO.class, PlateDO::getGoodsId, GoodsDO::getGoodsId)
|
||||
.leftJoin(OrderItemDO.class, OrderItemDO::getPlanId, PlateDO::getPlateNo)
|
||||
.leftJoin(PlanItemDO.class, PlanItemDO::getItemId, OrderItemDO::getId)
|
||||
.eq(PlanItemDO::getPlanId, planId);
|
||||
|
||||
GoodsDO goodsDO = goodsMapper.selectJoinOne(GoodsDO.class, wrapper);
|
||||
rawSizes.add(OptimizeParamResVO.RawSize.builder()
|
||||
.width(goodsDO.getWidth())
|
||||
.length(goodsDO.getHeight())
|
||||
.x(new BigDecimal("0"))
|
||||
.y(new BigDecimal("0"))
|
||||
.build());
|
||||
return OptimizeParamResVO.builder()
|
||||
.plates(plates)
|
||||
.rawSizes(rawSizes)
|
||||
.remainPlateCount(remainPlateCount)
|
||||
.build();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public OptimizeParamRespVO getOptimizePlanParam(Long planId) {
|
||||
|
||||
OptimizeParamRespVO optimizePlanParam = planMapper.getOptimizePlanParam(planId);
|
||||
|
||||
if (Objects.isNull(optimizePlanParam)) {
|
||||
return RandomUtils.randomPojo(OptimizeParamRespVO.class);
|
||||
}
|
||||
//暂时先mock
|
||||
ArrayList<Material> list = new ArrayList<>();
|
||||
list.add(RandomUtils.randomPojo(Material.class));
|
||||
list.add(RandomUtils.randomPojo(Material.class));
|
||||
ArrayList<PlateDetailVO> plateDetailVOS = new ArrayList<>();
|
||||
plateDetailVOS.add(RandomUtils.randomPojo(PlateDetailVO.class));
|
||||
plateDetailVOS.add(RandomUtils.randomPojo(PlateDetailVO.class));
|
||||
plateDetailVOS.add(RandomUtils.randomPojo(PlateDetailVO.class));
|
||||
if (CollectionUtil.isNotEmpty(optimizePlanParam.getPlateList())) {
|
||||
optimizePlanParam.getPlateList().get(0).setPlateDetailList(plateDetailVOS);
|
||||
}
|
||||
optimizePlanParam.setMaterialList(list);
|
||||
return optimizePlanParam;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getLabelDataSourceValue(GetSourceDataReq req) {
|
||||
@@ -383,9 +431,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderSource getOrderSource(Long orderId, Long planId, Long machineId) {
|
||||
if (!Objects.isNull(orderId) && !Objects.isNull(planId)) {
|
||||
throw exception(154112, "生产单id与排单id只能传一个");
|
||||
public OrderSource getOrderSource(Long orderId, Long planId, Long machineId,List<Long> ids) {
|
||||
if (!Objects.isNull(orderId) && !Objects.isNull(planId) && !Objects.isNull(ids)) {
|
||||
throw exception(154112, "生产单id与排单id与大板分类ID只能传一个");
|
||||
}
|
||||
OrderSource orderSource;
|
||||
if (ObjectUtil.isNotNull(orderId)) {
|
||||
@@ -398,6 +446,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
orderSource.setMachineDTO(machineApi.getMachineDetail(machineId).getCheckedData());
|
||||
return orderSource;
|
||||
}
|
||||
if (ObjectUtil.isNotNull(ids)) {
|
||||
orderSource = getOrderSourceByGoodId(ids);
|
||||
orderSource.setMachineDTO(machineApi.getMachineDetail(machineId).getCheckedData());
|
||||
return orderSource;
|
||||
}
|
||||
throw exception(ErrorCodeConstants.SOURCE_NOT_EXITS_ERROR);
|
||||
|
||||
}
|
||||
@@ -476,7 +529,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
throw exception(PLAN_NOT_EXISTS);
|
||||
}
|
||||
MPJLambdaWrapper<OrderItemDO> wrapper = new MPJLambdaWrapperX<OrderItemDO>()
|
||||
.select(OrderItemDO::getOrderId)
|
||||
.select(OrderItemDO::getOrderId,OrderItemDO::getPlateId)
|
||||
.rightJoin(PlanItemDO.class, PlanItemDO::getItemId, OrderItemDO::getId)
|
||||
.eq(PlanItemDO::getPlanId, planId)
|
||||
.isNotNull(OrderItemDO::getId);
|
||||
@@ -488,9 +541,14 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
// List<GoodsDO> goodsDOS = goodsMapper.selectList(new LambdaQueryWrapperX<GoodsDO>().in(GoodsDO::getOrderId, orderIds));
|
||||
|
||||
List<GoodsReqVO> goodsDOS = goodsMapper.selectGoodsListByOrderIds(orderIds,getUserOrganId());
|
||||
|
||||
List<PlateDetialRespVO> plateDOS = plateMapper.selectPlateDetialListByIds(orderIds,getUserOrganId());
|
||||
List<Long> plateIds = orderItemDOS.stream().map(OrderItemDO::getPlateId).distinct().toList();
|
||||
|
||||
List<Long> goodsIds = plateMapper.selectBatchIds(plateIds).stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||
|
||||
List<GoodsReqVO> goodsDOS = goodsMapper.selectGoodsListByOrderIds(goodsIds,getUserOrganId());
|
||||
|
||||
List<PlateDetialRespVO> plateDOS = plateMapper.selectPlateDetialListByIds(plateIds,getUserOrganId());
|
||||
|
||||
for (PlateDetialRespVO plateDetailsRespVO : plateDOS) {
|
||||
String name = "";
|
||||
@@ -544,38 +602,102 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
|
||||
|
||||
public OrderSource getOrderSourceByGoodId(List<Long> ids) {
|
||||
|
||||
// PlanDO planDO = planMapper.selectById(planId);
|
||||
// if (Objects.isNull(planDO)) {
|
||||
// throw exception(PLAN_NOT_EXISTS);
|
||||
// }
|
||||
|
||||
|
||||
// List<GoodsDO> goodsDOS = goodsMapper.selectBatchIds(goodIds);
|
||||
|
||||
List<GoodsReqVO> goodsReqVOS = goodsMapper.selectJoinList(GoodsReqVO.class, new MPJLambdaWrapperX<GoodsDO>()
|
||||
|
||||
.leftJoin(RemainPlateDO.class, RemainPlateDO::getGoodsId, GoodsDO::getId)
|
||||
.selectAll(GoodsDO.class)
|
||||
.selectAs(RemainPlateDO::getId,"remainId")
|
||||
.isNotNull(PlanItemDO::getId)
|
||||
.eq(GoodsDO::getOrganId, getUserOrganId())
|
||||
.in(GoodsDO::getId, ids));
|
||||
|
||||
|
||||
|
||||
List<Long> orderIds = goodsReqVOS.stream().map(GoodsReqVO::getOrderId).distinct().toList();
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
|
||||
List<PlateDetialRespVO> plateDetialRespVOS = plateMapper.selectPlateListByGoodIds(ids, getUserOrganId());
|
||||
|
||||
|
||||
for (PlateDetialRespVO plateDetailsRespVO : plateDetialRespVOS) {
|
||||
String name = "";
|
||||
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
||||
for (ProcessGroupList groupNameList : plateDetailsRespVO.getProcessGroupLists()) {
|
||||
// 去除最后的逗号
|
||||
name += groupNameList.getGroupName() + ",";
|
||||
|
||||
}
|
||||
name = name.substring(0, name.length() - 1);
|
||||
}
|
||||
|
||||
plateDetailsRespVO.setProcessGroupName(name);
|
||||
|
||||
plateDetailsRespVO.setGoodsId(goodsReqVOS
|
||||
.stream()
|
||||
.filter(f->f.getId().equals(plateDetailsRespVO.getId()))
|
||||
.map(GoodsReqVO::getGoodsId)
|
||||
.findAny().orElse(null));
|
||||
}
|
||||
|
||||
|
||||
// 造型数据的尺寸长度
|
||||
Integer orderModelSize = plateDetialRespVOS.size();
|
||||
|
||||
List<OrderModelDO> orderModelDOS = buildRespByOrderIds(orderIds, ORDER_PLATE_MODEL, orderModelSize);
|
||||
|
||||
|
||||
// // 查询生产单对应的配件信息
|
||||
// List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
|
||||
//
|
||||
// // 查询生产单对应的包裹信息
|
||||
// List<PrintOrderPackReqVO> printOrderPackReqVOS = orderItemMapper.selectPackList(orderIds, getUserOrganId());
|
||||
|
||||
return OrderSource.builder()
|
||||
.orderList(orderDOS)
|
||||
.goodsList(goodsReqVOS)
|
||||
.plateList(plateDetialRespVOS)
|
||||
.plateModels(orderModelDOS)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 保存优化后的数据
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOptimizationResults(SavePlanPlateResultReqVO req) {
|
||||
|
||||
|
||||
// // 判断当前的大板数据是否已经优化,有优化,更新,没有,新增
|
||||
// if (req.getOptimizeBoardModelDOS().get(0).getIsOptimized().equals(true)) {
|
||||
// try {
|
||||
// // 更新大板的优化数据
|
||||
// BulkResponse bulkResponse = esDocumentService.bulkUpdate(ORDER_REMAIN_PLATE_MODEL, req.getOptimizeBoardModelDOS());
|
||||
// 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);
|
||||
// }
|
||||
// }
|
||||
// else {
|
||||
// 先根据排单查找是否有优化数据,如果有,删除
|
||||
List<Long> planIds = req.getOptimizeBoardModelDOS().stream().map(OptimizeBoardModelDO::getPlanId).toList();
|
||||
|
||||
// 保存优化后的大板数据
|
||||
batchSaveBoardModel(req.getOptimizeBoardModelDOS());
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, planIds.size());
|
||||
if(!optimizeBoardModelDOS.isEmpty()){
|
||||
|
||||
// }
|
||||
deleteByPlanId(planIds,ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 保存优化后的大板数据
|
||||
batchSaveBoardModel(req.getOptimizeBoardModelDOS());
|
||||
|
||||
|
||||
if (CollectionUtil.isNotEmpty(req.getOptimizeRemainPlates())) {
|
||||
ArrayList<RemainPlateDO> remainPlateDOS = new ArrayList();
|
||||
ArrayList<RemainPlateDO> remainPlateDOS = new ArrayList<>();
|
||||
|
||||
for (OptimizeRemainPlate optimizeRemainPlate : req.getOptimizeRemainPlates()) {
|
||||
remainPlateDOS.add(RemainPlateDO.builder()
|
||||
@@ -603,16 +725,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
|
||||
remainPlateMapper.updateBatch(remainPlateDOS);
|
||||
// for (RemainPlateDO remainPlateDO : remainPlateDOS) {
|
||||
//
|
||||
//// if(remainPlateDO.getId() != null){
|
||||
//// remainPlateMapper.insert(remainPlateDO);
|
||||
////
|
||||
//// }
|
||||
//
|
||||
// remainPlateMapper.updateById(remainPlateDO);
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
@@ -622,24 +734,17 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
if (CollectionUtil.isNotEmpty(req.getAddPlateIds())) {
|
||||
|
||||
List<PlateDetialRespVO> addPlates = req.getPlateList().stream()
|
||||
.filter(m -> req.getAddPlateIds().contains(m.getId()))
|
||||
.map(m -> m.setId(null))
|
||||
.filter(m -> req.getAddPlateIds().contains(m.getPlateId()))
|
||||
.map(m -> m.setPlateId(null))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
|
||||
// List<Long> collect = req.getPlateList().stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||
// List<Long> addPlateIds = req.getAddPlateIds().stream().filter(m -> !collect.contains(m)).collect(Collectors.toList());
|
||||
// List<PlateDetialRespVO> addPlates = req.getPlateList().stream()
|
||||
// .filter(m -> addPlateIds.contains(m.getId()))
|
||||
// .map(m->m.setId(null))
|
||||
// .collect(Collectors.toList());
|
||||
// 批量新增小板信息
|
||||
List<PlateDO> plateDOS = BeanUtils.toBean(addPlates, PlateDO.class);
|
||||
|
||||
plateMapper.insertBatch(plateDOS);
|
||||
|
||||
// 批量新增生产单明细表信息
|
||||
ArrayList<OrderItemDO> orderItemDOS = new ArrayList();
|
||||
ArrayList<OrderItemDO> orderItemDOS = new ArrayList<>();
|
||||
|
||||
for (PlateDetialRespVO plateDetialRespVO : req.getPlateList()) {
|
||||
orderItemDOS.add(OrderItemDO.builder()
|
||||
@@ -649,7 +754,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
// .groupId(Long.valueOf(plateDetialRespVO.getProcessGroupId()))
|
||||
.orderId(plateDetialRespVO.getOrderId())
|
||||
.type(1)
|
||||
.plateId(plateDetialRespVO.getId())
|
||||
.plateId(plateDetialRespVO.getPlateId())
|
||||
.build());
|
||||
}
|
||||
|
||||
@@ -782,7 +887,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
}
|
||||
|
||||
private List<OptimizeBoardModelDO> buildBoardByOrderIds(Collection<Long> orderIds, String index, Integer size) {
|
||||
|
||||
@Override
|
||||
public List<OptimizeBoardModelDO> buildBoardByOrderIds(Collection<Long> orderIds, String index, Integer size) {
|
||||
List<FieldValue> fieldValues = orderIds.stream().map(FieldValue::of).toList();
|
||||
SearchRequest.Builder builder = new SearchRequest.Builder();
|
||||
builder.index(index);
|
||||
@@ -802,5 +909,59 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
|
||||
|
||||
public List<OptimizeBoardModelDO> buildBoardByPlanIds(Collection<Long> planIds, String index, Integer size) {
|
||||
List<FieldValue> fieldValues = planIds.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("planId").terms(e -> e.value(fieldValues))));
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void deleteByPlanId(List<Long> planIds, String index) {
|
||||
List<FieldValue> fieldValues = planIds.stream().map(FieldValue::of).toList();
|
||||
|
||||
DeleteByQueryRequest.Builder builder = new DeleteByQueryRequest.Builder();
|
||||
builder.index(index);
|
||||
|
||||
builder.query(q -> q.terms(b -> b.field("planId").terms(e -> e.value(fieldValues))));
|
||||
|
||||
try {
|
||||
DeleteByQueryResponse response = elasticsearchClient.deleteByQuery(builder.build());
|
||||
log.info("Deleted {} documents with planId {}", response.deleted(), planIds);
|
||||
} catch (IOException e) {
|
||||
log.error("Error deleting documents with planId {}: {}", planIds, e.getMessage());
|
||||
throw new ServiceException(ES_ERROR_DELETE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String deleteTest(List<Long> orderIds) {
|
||||
|
||||
Long a = 1801515154546884609L;
|
||||
|
||||
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(a, ORDER_REMAIN_PLATE_MODEL, 999);
|
||||
|
||||
System.out.println("哈哈哈哈哈1 "+optimizeBoardModelDOS);
|
||||
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+16
-9
@@ -1,12 +1,15 @@
|
||||
package com.cf.imes.module.executor.service.plan;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 生产单开料排单 Service 接口
|
||||
@@ -21,7 +24,7 @@ public interface PlanService {
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createPlan(@Valid PlanSaveReqVO createReqVO);
|
||||
Map<Long,Long> createPlan(@Valid PlanSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新生产单开料排单
|
||||
@@ -33,9 +36,9 @@ public interface PlanService {
|
||||
/**
|
||||
* 删除生产单开料排单
|
||||
*
|
||||
* @param id 编号
|
||||
* @param ids 编号
|
||||
*/
|
||||
Boolean deletePlan(Long id);
|
||||
Boolean deletePlan(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得生产单开料排单
|
||||
@@ -75,5 +78,9 @@ public interface PlanService {
|
||||
List<PlateResList> getPlateList(List<Long> planIds);
|
||||
|
||||
|
||||
List<OrderRoomBodyList> getOrderRoomBody(List<Long> orderIds);
|
||||
|
||||
List<NotPlanOrderPlateRespVO> getOrderPlateList(OrderPageReqVOCopy pageReqVO);
|
||||
|
||||
List<NotPlanGoodsRespVO> getNotOptimizeGoodsList(NotPlanGoodsReqVO reqVO);
|
||||
}
|
||||
+601
-154
@@ -1,27 +1,39 @@
|
||||
package com.cf.imes.module.executor.service.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.DeleteByQueryRequest;
|
||||
import co.elastic.clients.elasticsearch.core.DeleteByQueryResponse;
|
||||
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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
import com.cf.imes.framework.common.enums.PlanFilterTypeEnum;
|
||||
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.common.exception.ServiceException;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
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.MPJLambdaWrapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
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.plate.vo.PlateRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.BlockPlaceInfo;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
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.plan.PlanDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||
@@ -29,36 +41,37 @@ import com.cf.imes.module.executor.dal.mysql.module.ModuleMapper;
|
||||
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.orderItem.OrderItemMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.planitem.PlanItemMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
|
||||
import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
||||
import com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService;
|
||||
import com.cf.imes.module.system.api.machine.MachineApi;
|
||||
import com.cf.imes.module.system.api.machine.dto.CuttingRespDTO;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
|
||||
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
||||
|
||||
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.util.ServiceExceptionUtil.exception;
|
||||
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.module.executor.enums.ErrorCodeConstants.*;
|
||||
import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.THE_BOARD_HAS_BEEN_CUT_INTO_PIECES;
|
||||
|
||||
/**
|
||||
* 生产单开料排单 Service 实现类
|
||||
@@ -67,6 +80,7 @@ import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparato
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
@Slf4j
|
||||
public class PlanServiceImpl implements PlanService {
|
||||
|
||||
@Resource
|
||||
@@ -99,104 +113,276 @@ public class PlanServiceImpl implements PlanService {
|
||||
@Resource
|
||||
private IdentifierGenerator identifierGenerator;
|
||||
|
||||
String ORDER_REMAIN_PLATE_MODEL = "imes_order_remain_plate_model";
|
||||
|
||||
@Resource
|
||||
private ElasticsearchClient elasticsearchClient;
|
||||
|
||||
@Resource
|
||||
private OptimizePlanService optimizePlanService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long createPlan(PlanSaveReqVO createReqVO) {
|
||||
public Map<Long,Long> createPlan(PlanSaveReqVO createReqVO) {
|
||||
|
||||
// todo 目前只考虑了非混单的情况,混单的情况待考虑
|
||||
List<PlanSaveReqVO.Item> itemList = createReqVO.getItemList();
|
||||
// 插入
|
||||
long sort = System.currentTimeMillis();
|
||||
PlanDO plan = BeanUtils.toBean(createReqVO, PlanDO.class);
|
||||
// plan.setIsPay(Boolean.FALSE);
|
||||
plan.setSort(0L);
|
||||
// plan.setPlanNo(identifierGenerator.nextId(null).toString());
|
||||
String orderNos = itemList.stream().map(PlanSaveReqVO.Item::getOrderId).distinct().toList().toString();
|
||||
plan.setOrderNos(orderNos);
|
||||
plan.setProduceTime(null);
|
||||
planMapper.insert(plan);
|
||||
|
||||
// 修改对应的生产单的状态为 生产中
|
||||
List<Long> orderIds = JSON.parseArray(orderNos).toJavaList(Long.class);
|
||||
ArrayList<PlanDO> planDOS = new ArrayList<>();
|
||||
|
||||
List<GoodsNum> goodsNums = plateMapper.selectGoodsNum(orderIds, getUserOrganId());
|
||||
ArrayList<PlanItemDO> planItemDOS = new ArrayList<>();
|
||||
|
||||
for (Long orderId : orderIds) {
|
||||
Map<Long,Long> goodsPlanId = new HashMap<>();
|
||||
|
||||
// 传入的生产单的大板数量
|
||||
int size1 = itemList.stream().filter(f -> Objects.equals(f.getOrderId(), orderId)).map(PlanSaveReqVO.Item::getId).distinct().toList().size();
|
||||
// 当前生产单对应的大板数量
|
||||
List<Long> list = goodsNums.stream().filter(f -> Objects.equals(f.getOrderId(), orderId)).map(GoodsNum::getGoodsNum).toList();
|
||||
Map<Long, List<PlanSaveReqVO.Item>> groupedItems = itemList.stream()
|
||||
.collect(Collectors.groupingBy(PlanSaveReqVO.Item::getGoodsId));
|
||||
|
||||
|
||||
for (Map.Entry<Long, List<PlanSaveReqVO.Item>> entry : groupedItems.entrySet()) {
|
||||
|
||||
List<PlanSaveReqVO.Item> items = entry.getValue();
|
||||
|
||||
// 创建计划
|
||||
PlanDO plan = BeanUtils.toBean(createReqVO, PlanDO.class);
|
||||
plan.setId(identifierGenerator.nextId(plan).longValue());
|
||||
plan.setSort(0L);
|
||||
String orderNos = items.stream().map(PlanSaveReqVO.Item::getOrderId).distinct().toList().toString();
|
||||
plan.setOrderNos(orderNos);
|
||||
plan.setProduceTime(null);
|
||||
|
||||
planDOS.add(plan);
|
||||
|
||||
goodsPlanId.put(entry.getKey(), plan.getId());
|
||||
|
||||
Set<Long> itemIds = plateMapper.selectBatchOrderIdsAndGoodsIds(items,getUserOrganId());
|
||||
|
||||
if (CollectionUtil.isNotEmpty(itemIds)) {
|
||||
|
||||
for (Long itemId : itemIds) {
|
||||
planItemDOS.add(PlanItemDO.builder()
|
||||
.planId(plan.getId())
|
||||
.itemId(itemId)
|
||||
.build());
|
||||
}
|
||||
|
||||
if(size1 == list.get(0)){
|
||||
OrderDO orderDO = orderMapper.selectById(orderId).setStatus(OrderStatusEnum.IN_PRODUCTION.getStatus());
|
||||
orderMapper.updateById(orderDO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Long planId = plan.getId();
|
||||
planMapper.insertBatch(planDOS);
|
||||
|
||||
|
||||
Set<Long> itemIds = plateMapper.selectBatchOrderIdsAndGoodsIds(itemList,getUserOrganId());
|
||||
planItemMapper.insertBatch(planItemDOS);
|
||||
|
||||
if (CollectionUtil.isNotEmpty(itemIds)) {
|
||||
ArrayList<PlanItemDO> planItemDOS = new ArrayList<>();
|
||||
for (Long itemId : itemIds) {
|
||||
planItemDOS.add(PlanItemDO.builder()
|
||||
.planId(planId)
|
||||
.itemId(itemId)
|
||||
.build());
|
||||
}
|
||||
planItemMapper.insertBatch(planItemDOS);
|
||||
}
|
||||
// 返回
|
||||
return plan.getId();
|
||||
|
||||
return goodsPlanId;
|
||||
|
||||
//
|
||||
// // 插入
|
||||
// PlanDO plan = BeanUtils.toBean(createReqVO, PlanDO.class);
|
||||
// plan.setSort(0L);
|
||||
// String orderNos = itemList.stream().map(PlanSaveReqVO.Item::getOrderId).distinct().toList().toString();
|
||||
// plan.setOrderNos(orderNos);
|
||||
// plan.setProduceTime(null);
|
||||
// planMapper.insert(plan);
|
||||
//
|
||||
// // 修改对应的生产单的状态为 已排单
|
||||
// List<Long> orderIds = itemList.stream().map(PlanSaveReqVO.Item::getOrderId).toList();
|
||||
//
|
||||
// List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
//
|
||||
// List<OrderDO> orderDOList = orderDOS.stream().map(o -> o.setStatus(OrderStatusEnum.SORTED.getStatus())).toList();
|
||||
//
|
||||
// orderMapper.updateBatch(orderDOList);
|
||||
//
|
||||
// Long planId = plan.getId();
|
||||
//
|
||||
//
|
||||
// // 返回
|
||||
// return plan.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updatePlan(PlanSaveReqVO updateReqVO) {
|
||||
|
||||
// 校验存在
|
||||
validatePlanExists(updateReqVO.getId());
|
||||
validatePlanExists(updateReqVO.getId(),updateReqVO.getMachineId());
|
||||
// 更新
|
||||
PlanDO plan = BeanUtils.toBean(updateReqVO, PlanDO.class);
|
||||
|
||||
// 目前只解决非混单的情况
|
||||
if(!updateReqVO.getItemList().isEmpty()){
|
||||
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(plan.getId(), ORDER_REMAIN_PLATE_MODEL, 99);
|
||||
|
||||
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
|
||||
List<Long> goodsNo = optimizeBoardModelDO.getCutedBoardInfo().getCutedBoardList();
|
||||
|
||||
List<Long> plateNo = new ArrayList<>();
|
||||
|
||||
// 创建一个列表存储 BlockPlaceInfo 对象,将优化的小板信息拿出,获取到小板编号,查询生产单,修改生产单的状态
|
||||
List<BlockPlaceInfo> outputList = new ArrayList<>();
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
try {
|
||||
// 解析 JSON 字符串
|
||||
JsonNode jsonArray = mapper.readTree(optimizeBoardModelDO.getBlockPlaceInfo());
|
||||
|
||||
// 遍历 JSON 数组并提取所需字段
|
||||
if (jsonArray.isArray()) {
|
||||
for (JsonNode jsonNode : jsonArray) {
|
||||
Long bi = jsonNode.get("bi").asLong();
|
||||
Long bo = jsonNode.get("bo").asLong();
|
||||
outputList.add(new BlockPlaceInfo(bi,bo));
|
||||
}
|
||||
}
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
for (Long goods : goodsNo) {
|
||||
plateNo.addAll(outputList.stream().filter(f -> f.getBi().equals(goods)).map(BlockPlaceInfo::getBo).distinct().toList());
|
||||
}
|
||||
|
||||
if(updateReqVO.getDeleteIds() != null) {
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateListByGoodsIds(updateReqVO.getDeleteIds(), getUserOrganId());
|
||||
|
||||
List<Long> deletePlateNos = plateDOS.stream().map(PlateDO::getPlateNo).map(Long::valueOf).toList();
|
||||
|
||||
List<Long> plateNoCopyList = new ArrayList<>(plateNo);
|
||||
|
||||
// 使用retainAll方法保留 plateNo 中与 deletePlateNos 相同的元素
|
||||
plateNoCopyList.retainAll(deletePlateNos);
|
||||
|
||||
// 如果 plateNoCopyList 不为空,说明两个List有共同的元素
|
||||
boolean b = !plateNoCopyList.isEmpty();
|
||||
|
||||
if (b) {
|
||||
|
||||
throw exception(THE_BOARD_HAS_BEEN_CUT_INTO_PIECES);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
planMapper.updateById(plan);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deletePlan(Long id) {
|
||||
public Boolean deletePlan(List<Long> ids) {
|
||||
// 校验存在
|
||||
PlanDO planDO = planMapper.selectById(id);
|
||||
if (planDO == null) {
|
||||
throw exception(PLAN_NOT_EXISTS);
|
||||
}
|
||||
if (planDO.getStatus().equals(PlanStatusEnum.DURINGCUTTING.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.OPENEDMATERIAL.getStatus())) {
|
||||
throw exception(PLAN_NOT_ALLOW_DELETE);
|
||||
}
|
||||
// 删除
|
||||
planMapper.deleteById(id);
|
||||
/*planOrderMapper.delete(new LambdaQueryWrapperX<PlanOrderDO>().eq(PlanOrderDO::getPlanId, id));*/
|
||||
planItemMapper.delete(new LambdaQueryWrapperX<PlanItemDO>().eq(PlanItemDO::getPlanId, id));
|
||||
validatePlan(ids);
|
||||
|
||||
// 修改生产单的状态为待排单
|
||||
List<Long> orderIds = JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class);
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds).stream().map(m -> m.setStatus(OrderStatusEnum.SORTED.getStatus())).collect(Collectors.toList());
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
List<PlanDO> planDOS = planMapper.selectBatchIds(ids);
|
||||
|
||||
List<Long> orderIds = new ArrayList<>();
|
||||
for (PlanDO planDO : planDOS) {
|
||||
|
||||
orderIds.addAll(JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class));
|
||||
|
||||
}
|
||||
|
||||
// 删除排单信息,排单明细表信息,ES优化数据
|
||||
planMapper.deleteBatchIds(ids);
|
||||
planItemMapper.delete(new LambdaQueryWrapperX<PlanItemDO>().in(PlanItemDO::getPlanId, ids));
|
||||
|
||||
|
||||
// 排单对应的自增板的删除 todo 目前值解决了非混单的情况
|
||||
List<OptimizeBoardModelDO> boardModelDOS = buildBoardByPlanIds(ids, ORDER_REMAIN_PLATE_MODEL, ids.size());
|
||||
if(!boardModelDOS.isEmpty()) {
|
||||
|
||||
List<Long> goodsIds = boardModelDOS.stream().map(OptimizeBoardModelDO::getGoodsId).toList();
|
||||
|
||||
List<Long> goodsIdList = goodsMapper.selectListByGoodsIdList(goodsIds, orderIds, getUserOrganId()).stream().map(GoodsDO::getId).toList();
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateIdList(goodsIdList, getUserOrganId());
|
||||
if(!plateDOS.isEmpty()) {
|
||||
List<Long> plateIds = plateDOS.stream().map(PlateDO::getId).toList();
|
||||
|
||||
plateMapper.deleteBatchIds(plateIds);
|
||||
|
||||
orderItemMapper.delete(new LambdaQueryWrapperX<OrderItemDO>().in(OrderItemDO::getPlateId, plateIds));
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 目前生产单的状态已经去除待排单,所以无需修改生产单的状态
|
||||
// List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds).stream().map(m -> m.setStatus(OrderStatusEnum.SORTED.getStatus())).collect(Collectors.toList());
|
||||
// orderMapper.updateBatch(orderDOS);
|
||||
|
||||
|
||||
// 删除排单对应的优化生产数据
|
||||
deleteByPlanId(ids, ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
}
|
||||
|
||||
List<Long> orderIdList = new ArrayList<>();
|
||||
|
||||
List<Long> diff;
|
||||
|
||||
// 根据生产单ID查询ES的优化数据
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = optimizePlanService.buildBoardByOrderIds(orderIds, ORDER_REMAIN_PLATE_MODEL, 999);
|
||||
|
||||
if(optimizeBoardModelDOS.isEmpty()){
|
||||
|
||||
diff = new ArrayList<>(orderIds);
|
||||
|
||||
}else {
|
||||
optimizeBoardModelDOS.forEach(f -> orderIdList.addAll(f.getOrderId()));
|
||||
|
||||
// 已经删除的排单的生产单号和新查找的生生产单号对比,找出不同的部分
|
||||
diff = orderIds.stream().filter(f -> !orderIdList.contains(f)).toList();
|
||||
}
|
||||
|
||||
if(!diff.isEmpty()){
|
||||
|
||||
List<OrderDO> orderList = orderMapper.selectBatchIds(diff);
|
||||
|
||||
List<OrderDO> orderDOList = orderList.stream().map(m -> m.setStatus(OrderStatusEnum.NEW_ORDER.getStatus())).toList();
|
||||
|
||||
orderMapper.updateBatch(orderDOList);
|
||||
}
|
||||
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
private void validatePlanExists(Long id) {
|
||||
if (planMapper.selectById(id) == null) {
|
||||
|
||||
|
||||
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.getMachineId().equals(machineId)){
|
||||
throw exception(LIST_CHANGES_ARE_PROHIBITED);
|
||||
}
|
||||
}
|
||||
|
||||
private void validatePlan(List<Long> ids) {
|
||||
|
||||
planMapper.selectPlanByOrderIds(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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -232,21 +418,76 @@ public class PlanServiceImpl implements PlanService {
|
||||
return respVO;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public PageResult<PlanRespVO> getPlanPage(PlanPageReqVO pageReqVO) {
|
||||
PageResult<PlanDO> planDOPageResult = planMapper.selectPage(pageReqVO);
|
||||
if (CollectionUtil.isEmpty(planDOPageResult.getList())) {
|
||||
return new PageResult<>();
|
||||
}
|
||||
Set<Long> macheineIds = planDOPageResult.getList().stream().map(PlanDO::getMachineId).collect(Collectors.toSet());
|
||||
List<CuttingRespDTO> machines = machineApi.list(macheineIds).getCheckedData();
|
||||
|
||||
PageResult<PlanDO> planDOPageResult = new PageResult<>();
|
||||
|
||||
|
||||
if(pageReqVO.getIsUp() != null) {
|
||||
|
||||
PlanDO planDO = planMapper.selectById(pageReqVO.getId());
|
||||
|
||||
|
||||
List<PlanDO> plan = pageReqVO.getIsUp() ?
|
||||
planMapper.selectPlanIds(planDO.getUpdateTime().toString(),planDO.getSort(), getUserOrganId(), planDO.getId()) :
|
||||
|
||||
planMapper.selectPlanIdsFalse(planDO.getUpdateTime().toString(),planDO.getSort(), getUserOrganId(), planDO.getId());
|
||||
|
||||
if (plan.isEmpty()) {
|
||||
|
||||
throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ? "第" : "最后");
|
||||
}
|
||||
|
||||
planDOPageResult.setList(plan);
|
||||
|
||||
|
||||
}else {
|
||||
|
||||
planDOPageResult = planMapper.selectPage(pageReqVO);
|
||||
if (CollectionUtil.isEmpty(planDOPageResult.getList())) {
|
||||
return new PageResult<>();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Set<Long> machineIds = planDOPageResult.getList().stream().map(PlanDO::getMachineId).collect(Collectors.toSet());
|
||||
|
||||
List<Long> planIds = planDOPageResult.getList().stream().map(PlanDO::getId).collect(Collectors.toList());
|
||||
|
||||
|
||||
List<CuttingRespDTO> machines = machineApi.list(machineIds).getCheckedData();
|
||||
|
||||
|
||||
|
||||
List<PlateInfoVO> plateInfoVOS = planItemMapper.selectGoodsList(planIds,getUserOrganId());
|
||||
|
||||
List<OrderIds> orderIdsList = new ArrayList<>();
|
||||
|
||||
plateInfoVOS.forEach(f->
|
||||
orderIdsList.addAll(f.getOrderIdList()));
|
||||
|
||||
|
||||
List<PlateInfoVO> plateInfoVOList = plateMapper.selectPlateArea(orderIdsList, getUserOrganId());
|
||||
|
||||
|
||||
// todo 目前这种情况只解决没有混单的情况,混单情况待解决 (目前解决,数据正确性待测试)
|
||||
for (PlateInfoVO plateInfoVO : plateInfoVOS) {
|
||||
plateInfoVO.setArea(plateInfoVOList.stream()
|
||||
.filter(s->s.getGoodsId().equals(plateInfoVO.getGoodsId()))
|
||||
.map(PlateInfoVO::getArea)
|
||||
.reduce(BigDecimal.ZERO,BigDecimal::add));
|
||||
|
||||
plateInfoVO.setOptimizeGoodsCount(plateInfoVOList.stream().filter(s->s.getGoodsId().equals(plateInfoVO.getGoodsId())).mapToLong(PlateInfoVO::getOptimizeGoodsCount).sum());
|
||||
}
|
||||
|
||||
|
||||
// 根据排单ID查询ES中的优化数据 todo 目前只解决无混单的情况,混单情况待解决
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, plateInfoVOS.size());
|
||||
|
||||
|
||||
// 获取排单对应的生产单的信息
|
||||
List<PlanOrderRespVO> planOrderRespVOS = planItemMapper.selectOrderList(planIds, getUserOrganId());
|
||||
@@ -256,14 +497,40 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
|
||||
planRespVOPageResult.getList().forEach(e -> {
|
||||
// 机台信息
|
||||
e.setMachineName(machines.stream()
|
||||
.filter(f -> Objects.equals(f.getId(), e.getMachineId()))
|
||||
.map(CuttingRespDTO::getName)
|
||||
.findAny()
|
||||
.orElse(null));
|
||||
// 板材信息列表
|
||||
e.setPlateInfoList(plateInfoVOS.stream()
|
||||
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
||||
.collect(Collectors.toList()));
|
||||
// todo 小板总数量目前只解决没有混单的情况时的小板数量,后续待加入混单情况 (目前解决,数据正确性待测试)
|
||||
e.setPlateNum(plateInfoVOS.stream()
|
||||
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
||||
.mapToLong(PlateInfoVO::getCount)
|
||||
.sum());
|
||||
// todo 大板优化数量目前只解决没有混单的情况时的小板数量,后续待加入混单情况 (目前解决,数据正确性待测试)
|
||||
e.setOptimizeGoodsCount(optimizeBoardModelDOS.stream()
|
||||
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
||||
// todo 目前兼容修改,新的需求不需要这个校验
|
||||
.mapToLong(m -> m.getBoardCount() == null ?0 : m.getBoardCount())
|
||||
.sum());
|
||||
// 大板开料数
|
||||
e.setCutGoodsCount(optimizeBoardModelDOS.stream()
|
||||
.filter(f->Objects.equals(f.getPlanId(), e.getId()))
|
||||
.mapToLong(m-> m.getCutedBoardInfo() == null ? 0 : m.getCutedBoardInfo().getCutedBoardNumber())
|
||||
.sum());
|
||||
// 小板优化数量
|
||||
e.setOptimizePlateCount(optimizeBoardModelDOS.stream()
|
||||
.filter(f->Objects.equals(f.getPlanId(), e.getId()))
|
||||
.mapToLong(m-> m.getPlaceBlockNumber() == null ? 0 : m.getPlaceBlockNumber())
|
||||
.sum());
|
||||
// 未优化小板数量
|
||||
e.setUnOptimizePlateCount(e.getPlateNum() - e.getOptimizePlateCount());
|
||||
// 生产单信息
|
||||
e.setOrderList(planOrderRespVOS.stream()
|
||||
.filter( f-> Objects.equals(f.getPlanId(), e.getId()))
|
||||
.collect(Collectors.toList()));
|
||||
@@ -276,25 +543,71 @@ public class PlanServiceImpl implements PlanService {
|
||||
public PageResult<OrderRespVOCopy> getOrderPage(OrderPageReqVOCopy pageReqVO) {
|
||||
PageDTO<OrderRespVOCopy> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||
|
||||
List<Integer> statusList = new ArrayList<>();
|
||||
statusList.add(OrderStatusEnum.NEW_ORDER.getStatus());
|
||||
statusList.add(OrderStatusEnum.IN_PRODUCTION.getStatus());
|
||||
statusList.add(OrderStatusEnum.SORTED.getStatus());
|
||||
|
||||
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectListByGoodsId(pageReqVO.getGoodsId(), getUserOrganId());
|
||||
|
||||
// List<Long> orderIds = new ArrayList<>();
|
||||
// if(pageReqVO.getGoodsId() != null) {
|
||||
// List<GoodsDO> goodsDOS = goodsMapper.selectListByGoodsId(pageReqVO.getGoodsId(), getUserOrganId());
|
||||
// orderIds = goodsDOS.stream().map(GoodsDO::getOrderId).toList();
|
||||
// }
|
||||
|
||||
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
|
||||
queryWrapperX
|
||||
.eq("a.organ_id",getUserOrganId())
|
||||
.eq("a.status",OrderStatusEnum.SORTED.getStatus())
|
||||
// .eq("a.status",OrderStatusEnum.SORTED.getStatus())
|
||||
.eq("a.deleted",false)
|
||||
.in("a.status",statusList)
|
||||
.isNotNull("opi.item_id")
|
||||
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
||||
.inIfPresent("op.goods_id",goodsDOS.isEmpty() ? null :goodsDOS.stream().map(GoodsDO::getId).toList())
|
||||
|
||||
.inIfPresent("a.id",pageReqVO.getOrderIds())
|
||||
.likeIfPresent("a.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
|
||||
// .isNull("opi.item_id")
|
||||
.inIfPresent("op.goods_id",pageReqVO.getIds())
|
||||
.eqIfPresent("a.customer", pageReqVO.getConsignee())
|
||||
.eqIfPresent("a.custom_order_no", pageReqVO.getDefaultId())
|
||||
.eqIfPresent("a.address", pageReqVO.getConsigneeAddress())
|
||||
.betweenIfPresent("a.create_time", pageReqVO.getCreateTime())
|
||||
.eqIfPresent("op.is_special_shaped", pageReqVO.getRectangle() != null ? false: null)
|
||||
.eqIfPresent("op.is_special_shaped", pageReqVO.getSpecialShaped())
|
||||
.eqIfPresent("op.is_sculpt", pageReqVO.getSculpt())
|
||||
.eqIfPresent("op.is_door", pageReqVO.getIsDoor())
|
||||
.betweenIfPresent("op.height", new BigDecimal[]{pageReqVO.getLongMinRang(), pageReqVO.getLongMaxRang()})
|
||||
.betweenIfPresent("op.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()})
|
||||
.groupBy("a.id", " a.order_date", "a.delivery_date", "a.customer", "a.address", "a.custom_order_no","a.create_time","a.update_time")
|
||||
.groupBy("a.id", " a.order_date", "a.delivery_date", "a.customer", "a.address", "a.custom_order_no","a.create_time","a.update_time","a.status")
|
||||
.orderByDesc("a.update_time");
|
||||
|
||||
|
||||
IPage<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page, queryWrapperX);
|
||||
|
||||
if (CollectionUtil.isEmpty(orderRespVOCopies.getRecords())) {
|
||||
return new PageResult<>();
|
||||
}
|
||||
|
||||
|
||||
return new PageResult<>(orderRespVOCopies.getRecords(), orderRespVOCopies.getTotal());
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<NotPlanOrderPlateRespVO> getOrderPlateList(OrderPageReqVOCopy pageReqVO) {
|
||||
|
||||
QueryWrapperX<PlateDO> queryWrapperX = new QueryWrapperX<>();
|
||||
queryWrapperX
|
||||
.eq("c.organ_id",getUserOrganId())
|
||||
.inIfPresent("c.order_id", pageReqVO.getOrderIds())
|
||||
.isNotNull("opi.item_id")
|
||||
.inIfPresent("oi.room_id",pageReqVO.getRoomId())
|
||||
.inIfPresent("oi.body_id",pageReqVO.getBodyId())
|
||||
.eqIfPresent("a.is_special_shaped", pageReqVO.getRectangle() != null ? false: null)
|
||||
.eqIfPresent("a.is_special_shaped", pageReqVO.getSpecialShaped())
|
||||
.eqIfPresent("a.is_sculpt", pageReqVO.getSculpt())
|
||||
.eqIfPresent("a.is_door", pageReqVO.getIsDoor())
|
||||
.betweenIfPresent("a.height", new BigDecimal[]{pageReqVO.getLongMinRang(), pageReqVO.getLongMaxRang()})
|
||||
.betweenIfPresent("a.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()})
|
||||
.groupBy("c.id", " c.order_id", "c.goods_name", "c.width", "c.height", "c.thickness","c.material","c.color","c.texture","c.goods_id");
|
||||
|
||||
String filterTypes = "";
|
||||
if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) {
|
||||
filterTypes += PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType().toString();
|
||||
@@ -306,46 +619,89 @@ public class PlanServiceImpl implements PlanService {
|
||||
filterTypes += PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType().toString();
|
||||
}
|
||||
|
||||
queryWrapperX.likeIfPresent("op.filter_type", insertSeparator(filterTypes));
|
||||
queryWrapperX.likeIfPresent("a.filter_type", insertSeparator(filterTypes));
|
||||
|
||||
IPage<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page, queryWrapperX);
|
||||
// List<NotPlanOrderPlateRespVO> platePages = plateMapper.selectGoodsPage(pageReqVO.getOrderIds(),getUserOrganId()/*, orderRespVOCopy.getGoodsId()*/);
|
||||
|
||||
if (CollectionUtil.isEmpty(orderRespVOCopies.getRecords())) {
|
||||
return new PageResult<>();
|
||||
List<NotPlanOrderPlateRespVO> notPlanOrderPlateRespVOS = plateMapper.selectGoodsPage(queryWrapperX);
|
||||
|
||||
// todo 目前数据筛选只考虑了非混单的情况,混单情况待解决
|
||||
if(pageReqVO.getGoodsId() != null) {
|
||||
return notPlanOrderPlateRespVOS.stream().filter(f -> f.getGoodsId().equals(pageReqVO.getGoodsId())).toList();
|
||||
}
|
||||
|
||||
List<OrderRespVOCopy> records = orderRespVOCopies.getRecords();
|
||||
List<Long> orderIds = records.stream().map(m -> m.getOrderId()).collect(Collectors.toList());
|
||||
|
||||
|
||||
List<PlatePage> platePages = plateMapper.selectGoodsPage(orderIds,getUserOrganId()/*, orderRespVOCopy.getGoodsId()*/);
|
||||
return notPlanOrderPlateRespVOS;
|
||||
|
||||
|
||||
|
||||
List<OrderRespVOCopy> filteredRecords = records.stream()
|
||||
.filter(record -> {
|
||||
List<PlatePage> filteredPages = platePages.stream()
|
||||
.filter(f -> Objects.equals(f.getOrderId(), record.getOrderId()))
|
||||
.collect(Collectors.toList());
|
||||
if (filteredPages.isEmpty()) {
|
||||
return false; // 移除该记录
|
||||
} else {
|
||||
record.setPlatePages(filteredPages);
|
||||
return true; // 保留该记录
|
||||
}
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 处理后的 filteredRecords 将不包含过滤后的数据为空的 record
|
||||
orderRespVOCopies.setRecords(filteredRecords);
|
||||
|
||||
// orderRespVOCopies.setTotal(orderRespVOCopies.getRecords().size());
|
||||
// List<OrderRespVOCopy> filteredRecords = records.stream()
|
||||
// .filter(record -> {
|
||||
// List<PlatePage> filteredPages = platePages.stream()
|
||||
// .filter(f -> Objects.equals(f.getOrderId(), record.getOrderId()))
|
||||
// .collect(Collectors.toList());
|
||||
// if (filteredPages.isEmpty()) {
|
||||
// return false; // 移除该记录
|
||||
// } else {
|
||||
// record.setPlatePages(filteredPages);
|
||||
// return true; // 保留该记录
|
||||
// }
|
||||
// })
|
||||
// .collect(Collectors.toList());
|
||||
//
|
||||
// // 处理后的 filteredRecords 将不包含过滤后的数据为空的 record
|
||||
// orderRespVOCopies.setRecords(filteredRecords);
|
||||
//
|
||||
//// orderRespVOCopies.setTotal(orderRespVOCopies.getRecords().size());
|
||||
//
|
||||
//
|
||||
// return new PageResult<>(orderRespVOCopies.getRecords(), orderRespVOCopies.getTotal());
|
||||
|
||||
|
||||
return new PageResult<>(orderRespVOCopies.getRecords(), orderRespVOCopies.getTotal());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NotPlanGoodsRespVO> getNotOptimizeGoodsList(NotPlanGoodsReqVO reqVO) {
|
||||
|
||||
// 板材库对应的大板ID
|
||||
List<Long> plateGoodIds = reqVO.getOrderIdList().stream().map(OrderIds::getId).toList();
|
||||
|
||||
|
||||
List<NotPlanGoodsRespVO> notPlanGoodsRespVOS = goodsMapper.selectJoinList(NotPlanGoodsRespVO.class, new MPJLambdaWrapperX<GoodsDO>()
|
||||
|
||||
.leftJoin(PlateDO.class, PlateDO::getGoodsId, GoodsDO::getId)
|
||||
.selectCount(PlateDO::getId,"plateNum")
|
||||
.select(GoodsDO::getGoodsId, GoodsDO::getHeight, GoodsDO::getWidth, GoodsDO::getColor, GoodsDO::getGoodsName, GoodsDO::getThickness,GoodsDO::getSpec,GoodsDO::getMaterial,GoodsDO::getTexture)
|
||||
.isNotNull(PlanItemDO::getId)
|
||||
.eq(GoodsDO::getOrganId, getUserOrganId())
|
||||
.in(GoodsDO::getId, plateGoodIds)
|
||||
.groupBy(GoodsDO::getGoodsId, GoodsDO::getHeight, GoodsDO::getWidth, GoodsDO::getColor, GoodsDO::getGoodsName, GoodsDO::getThickness,GoodsDO::getSpec,GoodsDO::getMaterial,GoodsDO::getTexture));
|
||||
|
||||
|
||||
|
||||
// // 生产单对应的大板ID
|
||||
// List<Long> goodIds = reqVO.getOrderIdList().stream().map(OrderIds::getId).toList();
|
||||
//
|
||||
// // 查询板材库的大板信息
|
||||
// List<NotPlanGoodsRespVO> notPlanGoodsRespVOS = goodsMapper.selectGoodsPlateList(plateGoodIds, getUserOrganId());
|
||||
|
||||
// 查询小板数量
|
||||
// List<PlateDO> plateDOS = plateMapper.selectGoodsPlateNum(goodIds, getUserOrganId());
|
||||
|
||||
|
||||
// List<NotPlanGoodsRespVO> notPlanGoodsRespVOS = BeanUtils.toBean(goodsDOS, NotPlanGoodsRespVO.class);
|
||||
|
||||
for (NotPlanGoodsRespVO notPlanGoodsRespVO : notPlanGoodsRespVOS) {
|
||||
notPlanGoodsRespVO.setOrderIdList(reqVO.getOrderIdList()
|
||||
.stream()
|
||||
.filter(orderIds -> orderIds.getGoodsId().equals(notPlanGoodsRespVO.getGoodsId())).toList());
|
||||
|
||||
notPlanGoodsRespVO.setGoodsNum(notPlanGoodsRespVO.getOrderIdList().stream().map(OrderIds::getId).toList().size());
|
||||
|
||||
}
|
||||
|
||||
return notPlanGoodsRespVOS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -356,17 +712,30 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
PageDTO<OrderGoodsResp> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||
|
||||
List<Integer> statusList = new ArrayList<>();
|
||||
statusList.add(OrderStatusEnum.NEW_ORDER.getStatus());
|
||||
statusList.add(OrderStatusEnum.IN_PRODUCTION.getStatus());
|
||||
statusList.add(OrderStatusEnum.SORTED.getStatus());
|
||||
|
||||
List<Long> orderIds = orderMapper.selectOrderIdsList(pageReqVO, statusList, getUserOrganId())
|
||||
.stream().map(OrderDO::getId).toList();
|
||||
|
||||
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
|
||||
queryWrapperX
|
||||
.eq("a.organ_id",getUserOrganId())
|
||||
.eq("a.status",OrderStatusEnum.SORTED.getStatus())
|
||||
.eq("a.deleted",false)
|
||||
.likeIfPresent("a.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
|
||||
// .isNull("opi.item_id")
|
||||
.eqIfPresent("a.customer", pageReqVO.getConsignee())
|
||||
.eqIfPresent("a.custom_order_no", pageReqVO.getDefaultId())
|
||||
.eqIfPresent("a.address", pageReqVO.getConsigneeAddress())
|
||||
.betweenIfPresent("a.create_time", pageReqVO.getCreateTime())
|
||||
.eq("oi.organ_id",getUserOrganId())
|
||||
// .in("a.status",statusList)
|
||||
.eq("og.deleted",false)
|
||||
// .likeIfPresent("oi.order_id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
|
||||
.inIfPresent("oi.order_id", orderIds)
|
||||
.isNotNull("opi.item_id")
|
||||
.isNotNull("og.id")
|
||||
// .eqIfPresent("a.customer", pageReqVO.getConsignee())
|
||||
// .eqIfPresent("a.custom_order_no", pageReqVO.getDefaultId())
|
||||
// .eqIfPresent("a.address", pageReqVO.getConsigneeAddress())
|
||||
// .betweenIfPresent("a.create_time", pageReqVO.getCreateTime())
|
||||
|
||||
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
||||
.eqIfPresent("og.goods_id",pageReqVO.getGoodsId())
|
||||
.eqIfPresent("op.is_special_shaped", pageReqVO.getRectangle() != null ? false: null)
|
||||
.eqIfPresent("op.is_special_shaped", pageReqVO.getSpecialShaped())
|
||||
.eqIfPresent("op.is_sculpt", pageReqVO.getSculpt())
|
||||
@@ -387,36 +756,45 @@ public class PlanServiceImpl implements PlanService {
|
||||
queryWrapperX.likeIfPresent("op.filter_type", insertSeparator(filterTypes));
|
||||
|
||||
|
||||
List<Long> orderIds = orderMapper.selectOrderIds(queryWrapperX);
|
||||
|
||||
if(orderIds.isEmpty()){
|
||||
return new PageResult<>();
|
||||
}
|
||||
// List<Long> orderIds = orderMapper.selectOrderIds(queryWrapperX);
|
||||
|
||||
|
||||
List<OrderIds> orderIdsList = plateMapper.selectOrderIds(orderIds,getUserOrganId());
|
||||
IPage<OrderGoodsResp> orderGoodsResps = orderMapper.selectOrderIds(page,queryWrapperX);
|
||||
|
||||
// if(orderIds.isEmpty()){
|
||||
// return new PageResult<>();
|
||||
// }
|
||||
//
|
||||
//
|
||||
// List<OrderIds> orderIdsList = plateMapper.selectOrderIds(orderIds,getUserOrganId());
|
||||
//
|
||||
//
|
||||
// List<Long> goodsList = orderIdsList.stream().map(OrderIds::getGoodsId).distinct().toList();
|
||||
//
|
||||
// // 修改排单时进行数据筛选,todo 目前只解决非混单情况
|
||||
// if(pageReqVO.getGoodsId() != null){
|
||||
//
|
||||
// goodsList = goodsList.stream().filter(f->f.equals(pageReqVO.getGoodsId())).toList();
|
||||
//
|
||||
// }
|
||||
//
|
||||
// IPage<OrderGoodsResp> orderGoodsResps = goodsMapper.selectGoods(page,goodsList, getUserOrganId());
|
||||
|
||||
|
||||
List<Long> goodsList = orderIdsList.stream().map(OrderIds::getGoodsId).distinct().toList();
|
||||
// List<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderListByIds(orderIdsList, getUserOrganId());
|
||||
|
||||
|
||||
IPage<OrderGoodsResp> orderGoodsResps = goodsMapper.selectGoods(page,goodsList, getUserOrganId());
|
||||
|
||||
|
||||
List<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderListByIds(orderIdsList, getUserOrganId());
|
||||
|
||||
|
||||
for (OrderGoodsResp record : orderGoodsResps.getRecords()) {
|
||||
record.setNum(orderRespVOCopies.stream().filter(e-> Objects.equals(e.getGoodsId(), record.getGoodsId())).
|
||||
mapToInt(OrderRespVOCopy::getNum).sum());
|
||||
|
||||
record.setArea(orderRespVOCopies.stream().filter(e-> Objects.equals(e.getGoodsId(), record.getGoodsId()))
|
||||
.map(OrderRespVOCopy::getArea)
|
||||
.reduce(BigDecimal.ZERO,BigDecimal::add));
|
||||
|
||||
record.setOrderIds(orderIdsList.stream().filter(e -> Objects.equals(e.getGoodsId(), record.getGoodsId())).collect(Collectors.toList()));
|
||||
record.setOrderList(orderRespVOCopies.stream().filter(e -> Objects.equals(e.getGoodsId(), record.getGoodsId())).collect(Collectors.toList()));
|
||||
}
|
||||
// for (OrderGoodsResp record : orderGoodsResps.getRecords()) {
|
||||
// record.setNum(orderRespVOCopies.stream().filter(e-> Objects.equals(e.getGoodsId(), record.getGoodsId())).
|
||||
// mapToInt(OrderRespVOCopy::getNum).sum());
|
||||
//
|
||||
// record.setArea(orderRespVOCopies.stream().filter(e-> Objects.equals(e.getGoodsId(), record.getGoodsId()))
|
||||
// .map(OrderRespVOCopy::getArea)
|
||||
// .reduce(BigDecimal.ZERO,BigDecimal::add));
|
||||
//
|
||||
// record.setOrderIds(orderIdsList.stream().filter(e -> Objects.equals(e.getGoodsId(), record.getGoodsId())).collect(Collectors.toList()));
|
||||
//// record.setOrderList(orderRespVOCopies.stream().filter(e -> Objects.equals(e.getGoodsId(), record.getGoodsId())).collect(Collectors.toList()));
|
||||
// }
|
||||
|
||||
|
||||
return new PageResult<>(orderGoodsResps.getRecords(), orderGoodsResps.getTotal());
|
||||
@@ -466,9 +844,9 @@ public class PlanServiceImpl implements PlanService {
|
||||
if (planDO == null) {
|
||||
throw exception(PLAN_NOT_EXISTS);
|
||||
}
|
||||
if (planDO.getStatus().equals(PlanStatusEnum.NEWORDER.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.BOARDHASBEENAPPLIEDFOR.getStatus())) {
|
||||
throw exception(PLAN_NOT_ALLOW_CANCEL);
|
||||
}
|
||||
// if (planDO.getStatus().equals(PlanStatusEnum.NEWORDER.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.BOARDHASBEENAPPLIEDFOR.getStatus())) {
|
||||
// throw exception(PLAN_NOT_ALLOW_CANCEL);
|
||||
// }
|
||||
Set<Long> itemIds = planItemMapper.selectList(new LambdaQueryWrapperX<PlanItemDO>()
|
||||
.eq(PlanItemDO::getOrganId,getUserOrganId())
|
||||
.eq(PlanItemDO::getPlanId, id))
|
||||
@@ -484,7 +862,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
return null;
|
||||
}
|
||||
for (Long planId : vo.getPlanIds()) {
|
||||
validatePlanExists(planId);
|
||||
validatePlanExists(planId,null);
|
||||
}
|
||||
QueryWrapperX<PlateDO> queryWrapperX = new QueryWrapperX<>();
|
||||
|
||||
@@ -589,5 +967,74 @@ public class PlanServiceImpl implements PlanService {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<OrderRoomBodyList> getOrderRoomBody(List<Long> orderIds) {
|
||||
|
||||
|
||||
List<OrderRoomBodyList> orderRoomBodyLists = orderItemMapper.selectRoomBodyByOrderId(orderIds, getUserOrganId());
|
||||
|
||||
|
||||
return orderRoomBodyLists;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void deleteByPlanId(List<Long> planIds, String index) {
|
||||
List<FieldValue> fieldValues = planIds.stream().map(FieldValue::of).toList();
|
||||
|
||||
DeleteByQueryRequest.Builder builder = new DeleteByQueryRequest.Builder();
|
||||
builder.index(index);
|
||||
|
||||
builder.query(q -> q.terms(b -> b.field("planId").terms(e -> e.value(fieldValues))));
|
||||
|
||||
try {
|
||||
DeleteByQueryResponse response = elasticsearchClient.deleteByQuery(builder.build());
|
||||
log.info("Deleted {} documents with planId {}", response.deleted(), planIds);
|
||||
} catch (IOException e) {
|
||||
log.error("Error deleting documents with planId {}: {}", planIds, e.getMessage());
|
||||
throw new ServiceException(ES_ERROR_DELETE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public List<OptimizeBoardModelDO> buildBoardByPlanIds(Collection<Long> planIds, String index, Integer size) {
|
||||
List<FieldValue> fieldValues = planIds.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("planId").terms(e -> e.value(fieldValues))));
|
||||
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<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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+12
-24
@@ -1,6 +1,5 @@
|
||||
package com.cf.imes.module.executor.service.plate;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
||||
@@ -13,57 +12,44 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
import com.cf.imes.framework.common.exception.ServiceException;
|
||||
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||
import com.cf.imes.framework.security.core.LoginUser;
|
||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsSaveReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.*;
|
||||
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.ordermodel.OrderModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.processStepItem.OrderProcessStepItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||
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.planitem.PlanItemMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.processStepItem.ProcessStepItemMapper;
|
||||
import com.cf.imes.module.executor.enums.OrderItemType;
|
||||
import com.cf.imes.module.executor.util.RandomUtils;
|
||||
import com.cf.imes.module.executor.util.fileConversion.admin.SnowflakeIdWorker3rd;
|
||||
import com.cf.imes.module.system.enums.ErrorCodeConstants;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
|
||||
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
|
||||
|
||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR;
|
||||
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.module.executor.service.optimizeplan.OptimizePlanService.ORDER_PLATE_MODEL;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.PLATE_NOT_EXISTS;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.THE_CURRENT_BOARD_IS_NOT_SELECTED;
|
||||
|
||||
/**
|
||||
* 生产单板件 Service 实现类
|
||||
@@ -267,6 +253,8 @@ public class PlateServiceImpl implements PlateService {
|
||||
|
||||
}
|
||||
|
||||
Long goodsId = goodsMapper.selectGoodsId(reqVO.getOrderId(), reqVO.getGoodsId(), getUserOrganId()).getId();
|
||||
|
||||
List<PlateDO> plateDOS = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < reqVO.getMultiple(); i++) {
|
||||
@@ -279,7 +267,7 @@ public class PlateServiceImpl implements PlateService {
|
||||
|
||||
plateDO.setRemark(reqVO.getRemake1() +","+ reqVO.getRemake2());
|
||||
plateDO.setHoleArrange(reqVO.getPlaceHole());
|
||||
plateDO.setGoodsId(reqVO.getGoodsId());
|
||||
plateDO.setGoodsId(goodsId);
|
||||
|
||||
plateDO.setPlateNo((obtainingTime) + Long.toString(plateNo).substring(2));
|
||||
|
||||
|
||||
+35
-2
@@ -32,9 +32,9 @@
|
||||
orp.id as remainId
|
||||
from order_goods og
|
||||
left join order_remain_plate orp on og.id = orp.goods_id and og.organ_id = orp.organ_id
|
||||
where og.organ_id =#{organId} and og.deleted = false and og.order_id in
|
||||
where og.organ_id =#{organId} and og.deleted = false and og.id in
|
||||
|
||||
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
|
||||
<foreach item="id" collection="goodsIds" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
|
||||
@@ -90,15 +90,48 @@
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectGoodsPlateList"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsRespVO">
|
||||
|
||||
select distinct
|
||||
og.goods_id,
|
||||
og.height,
|
||||
og.width,
|
||||
og.color,
|
||||
og.goods_name,
|
||||
og.thickness,
|
||||
og.spec,
|
||||
count(distinct op.id) as plateNum
|
||||
from order_goods og
|
||||
left join order_plate op on og.id = op.goods_id and og.organ_id = op.organ_id
|
||||
|
||||
where og.organ_id = #{organId} and og.goods_id in
|
||||
|
||||
<foreach item="goodIds" collection="goodIds" open="(" separator="," close=")">
|
||||
#{goodIds}
|
||||
</foreach>
|
||||
|
||||
group by og.goods_id,og.height,og.width,og.color,og.goods_name,og.thickness,og.spec ;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="seleTestSQL" resultType="java.util.Map">
|
||||
|
||||
|
||||
select ${filed} from order_goods where organ_id = #{organId}
|
||||
and deleted = false
|
||||
and goods_id in
|
||||
|
||||
<foreach item="goodsIds" collection="goodsIds" open="(" separator="," close=")">
|
||||
#{goodsIds}
|
||||
</foreach>
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
+126
-10
@@ -3,29 +3,77 @@
|
||||
<mapper namespace="com.cf.imes.module.executor.dal.mysql.order.OrderMapper">
|
||||
|
||||
<select id="selectOrderPage" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
|
||||
select distinct a.id as orderId, a.order_date, a.delivery_date, a.customer, a.address, a.custom_order_no as defineId,
|
||||
select distinct a.id as orderId, a.order_date, a.delivery_date, a.customer, a.address, a.custom_order_no as defineId,a.status,
|
||||
count(op.id) as num, sum(op.area) as area,a.update_time
|
||||
from `orders` a
|
||||
left join order_item oi on a.id = oi.order_id and a.organ_id = oi.organ_id
|
||||
inner join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectOrderIds" resultType="java.lang.Long">
|
||||
|
||||
<!-- <where>
|
||||
a.deleted = false
|
||||
|
||||
and a.organ_id = #{organId}
|
||||
|
||||
and ( a.status = 3 or a.status = 2 or a.status = 1 )
|
||||
|
||||
and opi.item_id is null
|
||||
|
||||
<if test="pageReqVO.ids !=null">
|
||||
|
||||
and op.goods_id in
|
||||
<foreach collection="pageReqVO.ids" item="pageReqVO.ids" open="(" close=")" separator=",">
|
||||
#{pageReqVO.ids}
|
||||
</foreach>
|
||||
|
||||
</if>
|
||||
|
||||
<if test="pageReqVO.orderId !=null">
|
||||
and a.id like concat('%',#{pageReqVO.orderId},'%')
|
||||
</if>
|
||||
|
||||
<if test="pageReqVO.consignee !=null">
|
||||
and a.customer like concat('%',#{pageReqVO.consignee},'%')
|
||||
</if>
|
||||
|
||||
<if test="pageReqVO.defaultId !=null">
|
||||
and a.custom_order_no like concat('%',#{pageReqVO.defaultId},'%')
|
||||
</if>
|
||||
|
||||
<if test="pageReqVO.consigneeAddress !=null">
|
||||
and a.address like concat('%',#{pageReqVO.consigneeAddress},'%')
|
||||
</if>
|
||||
|
||||
<if test="pageReqVO.createTime !=null">
|
||||
between #{pageReqVO.createTime.[0]} and #{pageReqVO.createTime.[1]}
|
||||
</if>
|
||||
|
||||
</where>
|
||||
|
||||
group by a.id, a.order_date, a.delivery_date, a.customer, a.address, a.custom_order_no,a.create_time,a.update_time,a.status
|
||||
order by a.update_time desc ;-->
|
||||
|
||||
|
||||
select distinct a.id
|
||||
|
||||
from `orders` a
|
||||
left join order_item oi on a.id = oi.order_id and a.organ_id = oi.organ_id
|
||||
inner join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- select distinct a.id
|
||||
|
||||
from `orders` a
|
||||
left join order_item oi on a.id = oi.order_id and a.organ_id = oi.organ_id
|
||||
inner join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
|
||||
${ew.customSqlSegment}-->
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -65,7 +113,6 @@
|
||||
</foreach>
|
||||
and o.organ_id = #{organId}
|
||||
and op.deleted = false
|
||||
and op.is_cancel = 0
|
||||
and og.goods_id in
|
||||
|
||||
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
|
||||
@@ -166,4 +213,73 @@
|
||||
ORDER BY
|
||||
order_date;
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectTestSQL" resultType="java.util.Map">
|
||||
|
||||
|
||||
select ${filed} from orders
|
||||
where organ_id = #{organId}
|
||||
and deleted = false
|
||||
and id in
|
||||
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
|
||||
#{orderIds}
|
||||
</foreach>
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<resultMap id="OrderGoodsMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp">
|
||||
|
||||
<result property="width" column="width"/>
|
||||
<result property="height" column="height"/>
|
||||
<result property="thickness" column="thickness"/>
|
||||
<result property="goodsName" column="goods_name"/>
|
||||
<result property="material" column="material"/>
|
||||
<result property="color" column="color"/>
|
||||
<result property="texture" column="texture"/>
|
||||
<result property="brand" column="brand"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
<collection property="orderIds" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds" resultMap="OrderIdMap"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<resultMap id="OrderIdMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds">
|
||||
|
||||
<result property="orderId" column="orderId"/>
|
||||
<result property="id" column="id"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="selectOrderIds" resultMap="OrderGoodsMap">
|
||||
|
||||
select distinct
|
||||
|
||||
og.order_id as orderId,
|
||||
og.id as id,
|
||||
og.goods_id as goodsId,
|
||||
|
||||
og.goods_name,
|
||||
og.color,
|
||||
og.material,
|
||||
og.texture,
|
||||
og.thickness,
|
||||
og.width,
|
||||
og.height,
|
||||
og.brand
|
||||
from order_item oi
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
left join order_goods og on op.goods_id = og.id and op.organ_id = og.organ_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
+49
@@ -207,6 +207,55 @@
|
||||
|
||||
|
||||
|
||||
<resultMap id="RoomBodyListMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList">
|
||||
|
||||
<result property="orderId" column="orderId"/>
|
||||
|
||||
<collection property="orderRoomIds" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomIds" resultMap="OrderRoomIdsMap"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<resultMap id="OrderRoomIdsMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomIds">
|
||||
|
||||
<result property="roomId" column="roomId"/>
|
||||
<result property="roomName" column="roomName"/>
|
||||
|
||||
<collection property="orderBodyIds" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderBodyIds" resultMap="OrderBodyIdsMap"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<resultMap id="OrderBodyIdsMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderBodyIds">
|
||||
|
||||
<result property="bodyId" column="bodyId"/>
|
||||
<result property="bodyName" column="bodyName"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="selectRoomBodyByOrderId"
|
||||
resultMap="RoomBodyListMap"
|
||||
parameterType="java.lang.Long">
|
||||
|
||||
select distinct
|
||||
oi.order_id as orderId,
|
||||
ob.id as bodyId,
|
||||
ob.name as bodyName,
|
||||
ob.room_id as roomId,
|
||||
ob.room_name as roomName
|
||||
from order_item oi
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
left join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
|
||||
|
||||
where oi.organ_id = #{organId} and opi.item_id is null and oi.order_id in
|
||||
|
||||
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
|
||||
#{orderIds}
|
||||
</foreach>
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
+18
@@ -121,4 +121,22 @@
|
||||
WHERE order_id = #{orderId} AND organ_id = #{organId} AND deleted = #{deleted}
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="selectTestSql" resultType="com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO">
|
||||
|
||||
|
||||
select distinct ${filed} from order_parts where
|
||||
organ_id = #{organId}
|
||||
|
||||
and deleted = false
|
||||
|
||||
and id in
|
||||
<foreach item="partIds" collection="partIds" open="(" separator="," close=")">
|
||||
#{partIds}
|
||||
</foreach>
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
+44
@@ -170,4 +170,48 @@
|
||||
and p.deleted = 0
|
||||
group by date;
|
||||
</select>
|
||||
|
||||
<select id="seleTestSQL" resultType="java.util.Map">
|
||||
|
||||
|
||||
select ${filed} from order_plan where id = #{planId} and organ_id = #{organId} and deleted = false
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPlanIds" resultType="com.cf.imes.module.executor.dal.dataobject.plan.PlanDO">
|
||||
|
||||
|
||||
select * from order_plan where
|
||||
organ_id = #{organId}
|
||||
and deleted = false
|
||||
and update_time >= #{updateTime}
|
||||
and sort <= #{sort}
|
||||
and id != #{planId}
|
||||
|
||||
ORDER BY sort DESC, update_time
|
||||
limit 1;
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPlanIdsFalse" resultType="com.cf.imes.module.executor.dal.dataobject.plan.PlanDO">
|
||||
|
||||
select * from order_plan where
|
||||
organ_id = #{organId}
|
||||
and deleted = false
|
||||
and update_time <= #{updateTime}
|
||||
and sort >= #{sort}
|
||||
and id != #{planId}
|
||||
|
||||
ORDER BY sort , update_time desc
|
||||
limit 1;
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
+19
-4
@@ -13,8 +13,20 @@
|
||||
<result property="color" column="color"/>
|
||||
<result property="count" column="plateNum"/>
|
||||
<result property="area" column="area"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
<collection property="orderIdList" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds" resultMap="OrderIdMap"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="OrderIdMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds">
|
||||
|
||||
<result property="id" column="id"/>
|
||||
<result property="orderId" column="orderId"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
<select id="selectGoodsList" resultMap="GoodsListMap" parameterType="java.lang.Long">
|
||||
|
||||
|
||||
@@ -25,13 +37,16 @@
|
||||
og.height as height,
|
||||
og.thickness as thickness ,
|
||||
og.color as color,
|
||||
count(op.id) as plateNum,
|
||||
sum(op.area) as area
|
||||
og.goods_id as goodsId,
|
||||
og.order_id as orderId,
|
||||
og.id as id,
|
||||
count(distinct op.id) as plateNum
|
||||
-- sum(op.area) as area
|
||||
|
||||
from order_plan_item opi
|
||||
left join order_item oi on opi.item_id = oi.id and opi.organ_id = oi.organ_id
|
||||
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
left join order_goods og on oi.order_id = og.order_id and oi.organ_id = og.organ_id
|
||||
left join order_goods og on op.goods_id = og.id and op.organ_id = og.organ_id
|
||||
|
||||
where opi.organ_id = #{organId}
|
||||
and
|
||||
@@ -40,7 +55,7 @@
|
||||
#{ids}
|
||||
</foreach>
|
||||
|
||||
group by planId,material,width,height,thickness,color;
|
||||
group by planId,material,width,height,thickness,color,goodsId,orderId,id;
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
+206
-14
@@ -123,9 +123,10 @@
|
||||
|
||||
<resultMap id="PlateDetialMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.PlateDetialRespVO">
|
||||
|
||||
<result property="id" column="plateId"/>
|
||||
<result property="plateId" column="plateId"/>
|
||||
<result property="orderId" column="orderId"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
<result property="id" column="goodsId"/>
|
||||
<result property="goodsId" column="plateGoodsId"/>
|
||||
<result property="plateNo" column="plateNo"/>
|
||||
<result property="name" column="name"/>
|
||||
<result property="height" column="height"/>
|
||||
@@ -189,6 +190,7 @@
|
||||
op.plate_no as plateNo,
|
||||
op.type as type,
|
||||
op.goods_id as goodsId,
|
||||
ogs.goods_id as plateGoodsId,
|
||||
op.width as width,
|
||||
op.height as height,
|
||||
op.thickness as thickness,
|
||||
@@ -221,7 +223,6 @@
|
||||
op.remark as remark,
|
||||
op.filter_type as filterType,
|
||||
op.is_cancel as isCancel,
|
||||
|
||||
ogs.goods_name as goodsName,
|
||||
ob.id as bodyId,
|
||||
ob.room_id as roomId,
|
||||
@@ -252,6 +253,7 @@
|
||||
op.plate_no as plateNo,
|
||||
op.type as type,
|
||||
op.goods_id as goodsId,
|
||||
ogs.goods_id as plateGoodsId,
|
||||
op.width as width,
|
||||
op.height as height,
|
||||
op.thickness as thickness,
|
||||
@@ -284,7 +286,6 @@
|
||||
op.remark as remark,
|
||||
op.filter_type as filterType,
|
||||
op.is_cancel as isCancel,
|
||||
|
||||
ogs.goods_name as goodsName,
|
||||
ob.id as bodyId,
|
||||
ob.room_id as roomId,
|
||||
@@ -297,7 +298,7 @@
|
||||
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
|
||||
left join order_group og on oi.group_id = og.id and oi.organ_id = og.organ_id
|
||||
|
||||
where op.organ_id = #{organId} and op.deleted = false and op.order_id in
|
||||
where op.organ_id = #{organId} and op.deleted = false and op.id in
|
||||
|
||||
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
|
||||
|
||||
@@ -468,11 +469,11 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectGoodsPage" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage">
|
||||
<!-- <select id="selectGoodsPage" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.NotPlanOrderPlateRespVO">
|
||||
|
||||
|
||||
|
||||
select distinct b.id as orderId,
|
||||
select distinct c.order_id as orderId,
|
||||
c.id as goodsId,
|
||||
c.width,
|
||||
c.height,
|
||||
@@ -485,7 +486,7 @@
|
||||
|
||||
from order_plate a
|
||||
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id
|
||||
LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id
|
||||
-- LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id
|
||||
LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
where
|
||||
@@ -497,13 +498,65 @@
|
||||
#{orderIds}
|
||||
</foreach>
|
||||
|
||||
group by c.id,b.id ,c.goods_name,c.width,c.height,c.thickness, c.material, c.color;
|
||||
group by c.id,c.order_id ,c.goods_name,c.width,c.height,c.thickness, c.material, c.color;
|
||||
|
||||
</select>-->
|
||||
|
||||
<resultMap id="GoodsPageMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.NotPlanOrderPlateRespVO">
|
||||
|
||||
|
||||
<result property="width" column="width"/>
|
||||
<result property="height" column="height"/>
|
||||
<result property="thickness" column="thickness"/>
|
||||
<result property="goodsName" column="goods_name"/>
|
||||
<result property="material" column="material"/>
|
||||
<result property="color" column="color"/>
|
||||
<result property="texture" column="texture"/>
|
||||
<result property="brand" column="brand"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
<collection property="orderIdList" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds" resultMap="OrderIdMap"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="OrderIdMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds">
|
||||
|
||||
<result property="orderId" column="orderId"/>
|
||||
<result property="id" column="id"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="selectGoodsPage"
|
||||
resultMap="GoodsPageMap">
|
||||
|
||||
|
||||
select distinct
|
||||
c.texture,
|
||||
c.width,
|
||||
c.height,
|
||||
c.thickness,
|
||||
c.goods_name,
|
||||
c.material,
|
||||
c.color,
|
||||
c.brand,
|
||||
|
||||
c.order_id as orderId,
|
||||
c.id as id,
|
||||
c.goods_id as goodsId
|
||||
|
||||
from order_plate a
|
||||
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id
|
||||
LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<resultMap id="GoodsList" type="com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp">
|
||||
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
@@ -536,7 +589,7 @@
|
||||
|
||||
from order_plate a
|
||||
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id
|
||||
LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id
|
||||
-- LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id
|
||||
LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
where
|
||||
@@ -564,13 +617,10 @@
|
||||
c.goods_id as goodsId
|
||||
from order_plate a
|
||||
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id
|
||||
LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id
|
||||
LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
where
|
||||
c.organ_id = #{organId}
|
||||
and a.is_cancel = 0
|
||||
and b.status = 2
|
||||
c.organ_id = #{organId}
|
||||
and a.deleted = false
|
||||
and opi.item_id is null
|
||||
and c.order_id in
|
||||
@@ -581,6 +631,28 @@
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- select distinct
|
||||
a.order_id as orderId,
|
||||
c.id as id,
|
||||
c.goods_id as goodsId
|
||||
from order_plate a
|
||||
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id
|
||||
LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id
|
||||
LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
where
|
||||
c.organ_id = #{organId}
|
||||
and a.is_cancel = 0
|
||||
and b.status = 2
|
||||
and a.deleted = false
|
||||
and opi.item_id is null
|
||||
and c.order_id in
|
||||
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
|
||||
#{orderIds}
|
||||
</foreach>
|
||||
order by a.order_id-->
|
||||
|
||||
<select id="selectGoodsNum" resultType="com.cf.imes.module.executor.controller.admin.plan.bo.GoodsNum">
|
||||
|
||||
|
||||
@@ -624,6 +696,126 @@
|
||||
<if test="bodyId != null">
|
||||
AND i.body_id = #{bodyId}
|
||||
</if>
|
||||
GROUP BY
|
||||
g.goods_id
|
||||
HAVING
|
||||
SUM(a.area) > 0
|
||||
ORDER BY
|
||||
orderArea DESC;
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPlateListByGoodIds"
|
||||
resultMap="PlateDetialMap"
|
||||
resultType="java.lang.Long">
|
||||
|
||||
|
||||
select distinct
|
||||
oi.group_id as groupId,
|
||||
og.name as groupName,
|
||||
op.id as plateId,
|
||||
op.order_id as orderId,
|
||||
op.name as name,
|
||||
op.plate_no as plateNo,
|
||||
op.type as type,
|
||||
op.goods_id as goodsId,
|
||||
op.width as width,
|
||||
op.height as height,
|
||||
op.thickness as thickness,
|
||||
op.split_width as splitWidth,
|
||||
op.split_height as splitHeight,
|
||||
op.split_thickness as splitThickness,
|
||||
op.seal_left as sealLeft,
|
||||
op.seal_right as sealRight,
|
||||
op.seal_up as sealUp,
|
||||
op.seal_down as sealDown,
|
||||
op.area as area,
|
||||
op.texture as texture,
|
||||
op.hole_face as holeFace,
|
||||
op.hole_arrange as holeArrange,
|
||||
op.unregular_point_count as unregularPointCount,
|
||||
op.front_hole_count as frontHoleCount,
|
||||
op.back_hole_count as backHoleCount,
|
||||
op.side_hole_count as sideHoleCount,
|
||||
op.front_model_count as frontModelCount,
|
||||
op.back_model_count as backModelCount,
|
||||
op.is_door as isDoor,
|
||||
op.open_door_type as openDoorType,
|
||||
op.offset_x as offsetX,
|
||||
op.offset_y as offsetY,
|
||||
op.is_arc_across as isArcAcross,
|
||||
op.module_type_id as moduleTypeId,
|
||||
op.is_special_shaped as isSpecialShaped,
|
||||
op.is_sculpt as isSculpt,
|
||||
op.is_row_hole as hasHole,
|
||||
op.remark as remark,
|
||||
op.filter_type as filterType,
|
||||
op.is_cancel as isCancel,
|
||||
ob.id as bodyId,
|
||||
ob.room_id as roomId,
|
||||
ob.name as bodyName,
|
||||
ob.room_name as roomName,
|
||||
op.is_row_hole as hasHole
|
||||
|
||||
from order_plate op
|
||||
left join order_item oi on op.id = oi.plate_id and op.organ_id = oi.organ_id
|
||||
left join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
|
||||
left join order_group og on oi.group_id = og.id and oi.organ_id = og.organ_id
|
||||
|
||||
where op.organ_id = #{organId} and op.deleted = false and op.goods_id in
|
||||
|
||||
<foreach collection="goodIds" item="goodIds" open="(" close=")" separator=",">
|
||||
|
||||
#{goodIds}
|
||||
|
||||
</foreach>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectPlateArea"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO">
|
||||
|
||||
select
|
||||
og.goods_id as goodsId,
|
||||
count(distinct og.id) as optimizeGoodsCount,
|
||||
sum(op.area) as area
|
||||
|
||||
from order_plate op
|
||||
left join order_goods og on op.goods_id = og.id
|
||||
|
||||
where og.organ_id = #{organId} and og.goods_id in
|
||||
|
||||
<foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">
|
||||
(#{orderIdsList.goodsId})
|
||||
</foreach>
|
||||
|
||||
and og.order_id in
|
||||
|
||||
<foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">
|
||||
(#{orderIdsList.orderId})
|
||||
</foreach>
|
||||
|
||||
group by goodsId;
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectTestSQL" resultType="java.util.Map">
|
||||
|
||||
|
||||
select ${filed} from order_plate
|
||||
where organ_id = #{organId}
|
||||
and deleted = false
|
||||
and goods_id in
|
||||
<foreach collection="goodsIdList" item="goodsIdList" open="(" close=")" separator=",">
|
||||
#{goodsIdList}
|
||||
</foreach>
|
||||
|
||||
${field2}
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
<?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.remainplaten.RemainPlateMapper">
|
||||
|
||||
|
||||
<select id="selectTestSQL" resultType="java.util.Map">
|
||||
|
||||
|
||||
select ${filed} from order_remain_plate where organ_id = #{organId} and plan_id = #{planId} and deleted = false
|
||||
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
+12
-9
@@ -2,10 +2,7 @@ package com.cf.imes.module.manage.controller.admin.pack;
|
||||
|
||||
|
||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.excel.core.util.ExcelUtils;
|
||||
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.prePack.PrePackReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.*;
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO;
|
||||
@@ -20,14 +17,10 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
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 = "管理后台 - 生产打包 ")
|
||||
@RestController
|
||||
@@ -80,15 +73,25 @@ public class PackController {
|
||||
|
||||
|
||||
@GetMapping("/getOrderPack")
|
||||
@Operation(summary = "查看生产订单对应的包裹信息")
|
||||
@Operation(summary = "查看生产订单对应的包裹信息-未分页")
|
||||
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
|
||||
public CommonResult<PageResult<OrderPackageVO>> getOrderPack(@Valid PackageDetailsReqVO reqVO) {
|
||||
public CommonResult<List<OrderPackageVO>> getOrderPack(@Valid PackageDetailsReqVO reqVO) {
|
||||
|
||||
return success(packService.getOrderPack(reqVO));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/getPageOrderPack")
|
||||
@Operation(summary = "查看生产订单对应的包裹信息-分页")
|
||||
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
|
||||
public CommonResult<PageResult<OrderPackageVO>> getPageOrderPack(@Valid PackageDetailsReqVO reqVO) {
|
||||
|
||||
return success(packService.getPageOrderPack(reqVO));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GetMapping("/queryPackageDetails")
|
||||
@Operation(summary = "查询包裹的详细信息")
|
||||
|
||||
+9
-2
@@ -4,6 +4,7 @@ package com.cf.imes.module.manage.dal.mysql.pack;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
|
||||
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
|
||||
@@ -81,10 +82,16 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
|
||||
|
||||
|
||||
// 删除当前生产单下所有的包裹
|
||||
default void updateDelete(Long orderId) {
|
||||
default void updateDelete(Long orderId,Long organId) {
|
||||
LambdaUpdateWrapper<OrderPackageDO> wrapper = new LambdaUpdateWrapper<OrderPackageDO>()
|
||||
.set(OrderPackageDO::getDeleted, true)
|
||||
.eq(OrderPackageDO::getOrderId, orderId);
|
||||
.eq(OrderPackageDO::getOrganId,organId)
|
||||
.eq(OrderPackageDO::getOrderId, orderId)
|
||||
.eq(OrderPackageDO::getType, OrderPackageTypeEnum.PLATE.getType());
|
||||
update(wrapper);
|
||||
}
|
||||
|
||||
|
||||
List<OrderPackageVO> selectPackListByOrderId(@Param("orderId") Long orderId,@Param("organId") Long organId);
|
||||
|
||||
}
|
||||
|
||||
+9
-2
@@ -3,10 +3,8 @@ package com.cf.imes.module.manage.dal.mysql.plate;
|
||||
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingDetailReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingDetailRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlatePageReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.process.vo.OrderPlateReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.process.vo.PlateDetails;
|
||||
import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@@ -38,4 +36,13 @@ public interface OrderPlateMapper extends BaseMapperX<OrderPlateDO> {
|
||||
.in(OrderPlateDO::getPlateNo, plateNo));
|
||||
|
||||
}
|
||||
|
||||
|
||||
default OrderPlateDO selectplateByPlateNo(Long plateNo, Long orderId, Long organId) {
|
||||
return selectOne(new LambdaQueryWrapperX<OrderPlateDO>()
|
||||
.eq(OrderPlateDO::getOrganId, organId)
|
||||
.eq(OrderPlateDO::getOrderId, orderId)
|
||||
.eqIfPresent(OrderPlateDO::getPlateNo, plateNo)
|
||||
.select(OrderPlateDO::getId));
|
||||
}
|
||||
}
|
||||
|
||||
+13
-23
@@ -1,4 +1,4 @@
|
||||
package com.cf.imes.module.manage.dal.mysql.query;
|
||||
package com.cf.imes.module.manage.dal.mysql.process;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@@ -9,17 +9,15 @@ import com.cf.imes.module.manage.controller.admin.pack.vo.PackPageReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlatePageReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
|
||||
@Mapper
|
||||
public interface ProductionStatusMapper extends BaseMapperX<OrderDO> {
|
||||
public interface OrdersMapper extends BaseMapperX<OrderDO> {
|
||||
|
||||
|
||||
|
||||
default PageResult<OrderDO> selectProductionPage(OrderPlatePageReqVO pageReqVO) {
|
||||
@@ -38,32 +36,24 @@ public interface ProductionStatusMapper extends BaseMapperX<OrderDO> {
|
||||
|
||||
|
||||
|
||||
List<PackRespVO> selectOrderIds( @Param("createTime") String createTime, @Param("organId") Long organId, @Param("orderId") Long orderId);
|
||||
|
||||
|
||||
|
||||
PrintOrderRespVO selectPrintOrder(@Param("orderNo") Long orderNo,@Param("organId")Long organId);
|
||||
|
||||
|
||||
// default List<OrderDO> selectOrderIds(PackPageReqVO pageReqVO,Long organId) {
|
||||
// return selectList(new LambdaQueryWrapperX<OrderDO>()
|
||||
// .eq(OrderDO::getOrganId,organId)
|
||||
// .eqIfPresent(OrderDO::getId, pageReqVO.getOrderId())
|
||||
// .eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getCustomOrderNo())
|
||||
// .likeIfPresent(OrderDO::getCustomer, pageReqVO.getCustomer())
|
||||
// .likeIfPresent(OrderDO::getAddress, pageReqVO.getAddress())
|
||||
// .eqIfPresent(OrderDO::getStatus, pageReqVO.getStatus())
|
||||
// .orderByDesc(OrderDO::getCreateTime));
|
||||
// }
|
||||
|
||||
IPage<PackRespVO> selectOrderPlate( @Param("page") IPage page, @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||
List<PackRespVO> selectOrderIdsFalse( @Param("createTime") String createTime,@Param("organId") Long organId, @Param("orderId") Long orderId);
|
||||
|
||||
|
||||
|
||||
|
||||
PrintOrderPackRespVO selectOrderPack(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo, @Param("organId") Long organId);
|
||||
IPage<PackRespVO> selectOrderPlate(@Param("page") IPage page, @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
List<OrderDO> selectOrderIds(@Param("pageReqVO") PackPageReqVO pageReqVO,@Param("organId") Long organId);
|
||||
PrintOrderPackRespVO selectOrderPack(@Param("orderNo")Long orderNo, @Param("packageNo") Long packageNo, @Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
IPage<PackRespVO> selectOrderIdList(@Param("page") IPage page, @Param("pageReqVO") PackPageReqVO pageReqVO, @Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
}
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
package com.cf.imes.module.manage.dal.mysql.process;
|
||||
|
||||
|
||||
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlatePageReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlateRespVO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 生产单表 order_{N} Mapper
|
||||
*
|
||||
* @author 晨丰科技
|
||||
*/
|
||||
@Mapper
|
||||
public interface ProductionProcessMapper extends BaseMapperX<OrderDO> {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
List<PatchingPlateRespVO> selectPatchingPlate(PatchingPlatePageReqVO pageReqVO);
|
||||
|
||||
|
||||
OrderDO selectOrderIds(@Param("createTime") String createTime, @Param("organId") Long organId, @Param("orderId") Long orderId);
|
||||
|
||||
OrderDO selectOrderIdsFalse(@Param("createTime") String createTime,@Param("organId") Long organId, @Param("orderId") Long orderId);
|
||||
|
||||
|
||||
// OrderDO selectOrderIds(@Param("orderId") Long orderId,@Param("organId") Long organId);
|
||||
//
|
||||
// OrderDO selectOrderIdsFalse(@Param("orderId") Long orderId,@Param("organId") Long userOrganId);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
+15
-7
@@ -1,12 +1,11 @@
|
||||
package com.cf.imes.module.manage.dal.mysql.query;
|
||||
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.*;
|
||||
import com.cf.imes.module.manage.controller.admin.process.vo.OrderPlateReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.OrderPlateDetailsRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.process.vo.PlateDetails;
|
||||
import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPlateReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO;
|
||||
@@ -14,13 +13,10 @@ import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.Orde
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.PlatePageVO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.query.OrderItemDO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Mapper
|
||||
public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
||||
@@ -98,4 +94,16 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
||||
.eqIfPresent(OrderItemDO::getOrderId, orderId));
|
||||
}
|
||||
|
||||
|
||||
List<PackRespVO> selectPlateNum(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
default List<OrderItemDO> selectPartsList(Long orderId, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||
.eq(OrderItemDO::getOrganId, organId)
|
||||
.eqIfPresent(OrderItemDO::getOrderId, orderId)
|
||||
.eq(OrderItemDO::getPackageId,0)
|
||||
.select(OrderItemDO::getPartsId));
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -16,9 +16,11 @@ public interface PackService {
|
||||
|
||||
|
||||
// 查看生产订单对应的包裹信息
|
||||
PageResult<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO);
|
||||
List<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO);
|
||||
|
||||
|
||||
PageResult<OrderPackageVO> getPageOrderPack(PackageDetailsReqVO reqVO);
|
||||
|
||||
|
||||
// 查看生产订单对应的板材信息
|
||||
List<PlateDetailsRespVO> getOrderPlateList(Long orderId);
|
||||
|
||||
+81
-33
@@ -25,13 +25,10 @@ import com.cf.imes.module.manage.dal.mysql.pack.OrderBodyMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.pack.OrderPrepackagedMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.ProductionProcessMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.OrdersMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.query.OrderPartsMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.query.ProductionStatusMapper;
|
||||
import com.cf.imes.module.manage.service.process.ProductionProcessServiceImpl;
|
||||
import com.cf.imes.module.manage.util.SnowflakeIdWorker3rd;
|
||||
import com.cf.imes.module.system.api.setting.SettingApi;
|
||||
import com.cf.imes.module.system.api.setting.dto.PackageConfigDTO;
|
||||
@@ -64,8 +61,6 @@ public class PackServiceImpl implements PackService {
|
||||
@Resource
|
||||
private OrderPackageMapper orderPackageMapper;
|
||||
|
||||
@Resource
|
||||
private ProductionStatusMapper productionStatusMapper;
|
||||
|
||||
@Resource
|
||||
private OrderItemMapper orderItemMapper;
|
||||
@@ -80,16 +75,11 @@ public class PackServiceImpl implements PackService {
|
||||
private OrderPlateMapper orderPlateMapper;
|
||||
|
||||
@Resource
|
||||
private ProcessStepMapper processStepMapper;
|
||||
private OrdersMapper ordersMapper;
|
||||
|
||||
@Resource
|
||||
private ProductionProcessServiceImpl productionProcessService;
|
||||
private PlateMapper plateMapper;
|
||||
|
||||
@Resource
|
||||
private ProcessStepItemMapper processStepItemMapper;
|
||||
|
||||
@Resource
|
||||
private ProductionProcessMapper productionProcessMapper;
|
||||
|
||||
@Resource
|
||||
private SnowflakeIdWorker3rd idWorker;
|
||||
@@ -110,48 +100,62 @@ public class PackServiceImpl implements PackService {
|
||||
|
||||
List<Long> orderIds = new ArrayList<>();
|
||||
|
||||
|
||||
IPage<PackRespVO> packRespVOS = new PageDTO<>();
|
||||
|
||||
|
||||
if(pageReqVO.getIsUp() != null){
|
||||
|
||||
OrderDO order = productionProcessMapper.selectById(pageReqVO.getOrderId());
|
||||
OrderDO order = ordersMapper.selectById(pageReqVO.getOrderId());
|
||||
|
||||
|
||||
OrderDO orderDO = pageReqVO.getIsUp() ?
|
||||
productionProcessMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(),order.getId()) :
|
||||
List<PackRespVO> packRespVOList = pageReqVO.getIsUp() ?
|
||||
ordersMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(),order.getId()) :
|
||||
|
||||
productionProcessMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(),order.getId());
|
||||
ordersMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(),order.getId());
|
||||
|
||||
if(orderDO == null){
|
||||
if(packRespVOList.isEmpty()){
|
||||
throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ?"第" : "最后");
|
||||
}
|
||||
|
||||
orderIds.add(orderDO.getId());
|
||||
packRespVOS.setRecords(packRespVOList);
|
||||
|
||||
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
|
||||
|
||||
}else {
|
||||
|
||||
pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer()));
|
||||
pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo()));
|
||||
pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress()));
|
||||
|
||||
// 根据生产状态查询生产单号
|
||||
// List<Long> orderIds = productionStatusMapper.selectOrderIds(pageReqVO, getUserOrganId()).stream().map(OrderDO::getId).toList();
|
||||
|
||||
orderIds.addAll(productionStatusMapper.selectOrderIds(pageReqVO, getUserOrganId()).stream().map(OrderDO::getId).toList());
|
||||
// 查询查询分页
|
||||
packRespVOS = ordersMapper.selectOrderIdList(page,pageReqVO, getUserOrganId());
|
||||
|
||||
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
|
||||
|
||||
if (orderIds.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// 查询打包首页分页数据信息,总的板件数量信息
|
||||
IPage<PackRespVO> packRespVOS = productionStatusMapper.selectOrderPlate(page,orderIds,getUserOrganId());
|
||||
|
||||
// 查询板材的总量
|
||||
List<PackRespVO> packRespVOList = orderItemMapper.selectPlateNum(orderIds,getUserOrganId());
|
||||
|
||||
|
||||
// 查询当前生产的包裹数量
|
||||
List<PackRespVO> respVOS = orderPackageMapper.selectPackPage(orderIds,getUserOrganId());
|
||||
|
||||
|
||||
// 查询当前生产单已经打包的板材数量
|
||||
List<PackRespVO> plateNum = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId());
|
||||
|
||||
|
||||
for (PackRespVO record : packRespVOS.getRecords()) {
|
||||
|
||||
// 板材总数
|
||||
record.setTotalPieceCount(packRespVOList.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getTotalPieceCount).sum());
|
||||
// 已打包数
|
||||
record.setPackCount(respVOS.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getPackCount).sum());
|
||||
// 已打包片数
|
||||
@@ -238,12 +242,50 @@ public class PackServiceImpl implements PackService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 查看生产订单对应的包裹信息
|
||||
@Override
|
||||
public PageResult<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO) {
|
||||
public List<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO) {
|
||||
|
||||
|
||||
List<OrderPackageVO> orderPackageVOS = orderPackageMapper.selectPackListByOrderId(reqVO.getOrderId(), getUserOrganId());
|
||||
|
||||
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
|
||||
|
||||
// for (OrderPackageVO orderPackageVO : orderPackageVOS) {
|
||||
// orderPackageVO.setCustomOrderNo(orderDO.getCustomOrderNo());
|
||||
// orderPackageVO.setCustomer(orderDO.getCustomer());
|
||||
// orderPackageVO.setAddress(orderDO.getAddress());
|
||||
// orderPackageVO.setDealer(orderDO.getDealer());
|
||||
// orderPackageVO.setOrderRemark(orderDO.getRemark());
|
||||
// }
|
||||
|
||||
|
||||
return orderPackageVOS.stream().peek(m -> {
|
||||
m.setCustomOrderNo(orderDO.getCustomOrderNo());
|
||||
m.setCustomer(orderDO.getCustomer());
|
||||
m.setAddress(orderDO.getAddress());
|
||||
m.setDealer(orderDO.getDealer());
|
||||
m.setOrderRemark(orderDO.getRemark());
|
||||
}
|
||||
).toList();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public PageResult<OrderPackageVO> getPageOrderPack(PackageDetailsReqVO reqVO) {
|
||||
|
||||
PageDTO<OrderPackageVO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize());
|
||||
|
||||
|
||||
// if(reqVO.getPlateNo()!= null){
|
||||
//
|
||||
// orderPlateMapper.selectplateByPlateNo(reqVO.getPlateNo(),reqVO.getOrderId(),getUserOrganId());
|
||||
//
|
||||
// }
|
||||
|
||||
IPage<OrderPackageVO> orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,reqVO, getUserOrganId());
|
||||
|
||||
|
||||
@@ -261,9 +303,6 @@ public class PackServiceImpl implements PackService {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 查看配件列表分页
|
||||
@Override
|
||||
public List<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO) {
|
||||
@@ -497,7 +536,7 @@ public class PackServiceImpl implements PackService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateOrderStatus(Long orderId) {
|
||||
|
||||
OrderDO orderDO = productionProcessMapper.selectById(orderId);
|
||||
OrderDO orderDO = ordersMapper.selectById(orderId);
|
||||
|
||||
if(orderDO.getFinishTime() != null){
|
||||
return;
|
||||
@@ -525,7 +564,7 @@ public class PackServiceImpl implements PackService {
|
||||
// 修改生产单的打包状态未已打包
|
||||
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
|
||||
|
||||
productionProcessMapper.updateById(orderDO);
|
||||
ordersMapper.updateById(orderDO);
|
||||
|
||||
|
||||
}
|
||||
@@ -549,7 +588,7 @@ public class PackServiceImpl implements PackService {
|
||||
@Override
|
||||
public PrintOrderPackRespVO printOrderPack(PrintOrderPackReqVO reqVO) {
|
||||
|
||||
PrintOrderPackRespVO printOrderPackRespVO = productionStatusMapper.selectOrderPack(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId());
|
||||
PrintOrderPackRespVO printOrderPackRespVO = ordersMapper.selectOrderPack(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId());
|
||||
printOrderPackRespVO.setPlateList(orderItemMapper.selectPrintPlateList(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId()));
|
||||
return printOrderPackRespVO;
|
||||
|
||||
@@ -799,7 +838,8 @@ public class PackServiceImpl implements PackService {
|
||||
|
||||
if(!packageDOS.isEmpty()){
|
||||
|
||||
orderPackageMapper.updateDelete(reqVO.getOrderId());
|
||||
// 删除除配件和其他配件外的所有包裹
|
||||
orderPackageMapper.updateDelete(reqVO.getOrderId(),getUserOrganId());
|
||||
|
||||
}
|
||||
|
||||
@@ -828,6 +868,14 @@ public class PackServiceImpl implements PackService {
|
||||
|
||||
orderItemMapper.updateBatch(orderItemDOS);
|
||||
|
||||
List<OrderItemDO> orderItemDoPartsList = orderItemMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId());
|
||||
|
||||
if(orderItemDoPartsList.isEmpty()) {
|
||||
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
|
||||
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
|
||||
ordersMapper.updateById(orderDO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
+3
-19
@@ -1,22 +1,15 @@
|
||||
package com.cf.imes.module.manage.service.patching;
|
||||
|
||||
|
||||
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.patching.vo.*;
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.patching.MachineDO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.patching.PatchDetailDO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO;
|
||||
import com.cf.imes.module.manage.dal.mysql.patching.MachineMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.patching.PatchDetailMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.ProductionProcessMapper;
|
||||
import com.cf.imes.module.manage.util.page.PageHelperUtil;
|
||||
import com.cf.imes.module.manage.dal.dataobject.patching.MachineDO;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -30,8 +23,7 @@ import java.util.List;
|
||||
public class PatchingPlateServiceImpl implements PatchingPlateService{
|
||||
|
||||
|
||||
@Resource
|
||||
private ProductionProcessMapper productionProcessMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
private OrderPlateMapper orderPlateMapper;
|
||||
@@ -48,15 +40,7 @@ public class PatchingPlateServiceImpl implements PatchingPlateService{
|
||||
@Override
|
||||
public PageResult<PatchingPlateRespVO> patchingSearchPlate(PatchingPlatePageReqVO pageReqVO) {
|
||||
|
||||
|
||||
// 查询板件和订单的基础信息
|
||||
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||
List<PatchingPlateRespVO> patchingPlateRespVOS = productionProcessMapper.selectPatchingPlate(pageReqVO);
|
||||
|
||||
//
|
||||
PageInfo<PatchingPlateRespVO> pageInfo = new PageInfo<>(patchingPlateRespVOS);
|
||||
return PageHelperUtil.convertToPageResult(pageInfo);
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
+13
-16
@@ -2,8 +2,6 @@ package com.cf.imes.module.manage.service.process;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.log.Log;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
||||
@@ -15,15 +13,14 @@ import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.module.manage.controller.admin.process.vo.*;
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.pack.OrderBodyDO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepItemNDO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
|
||||
import com.cf.imes.module.manage.dal.mysql.pack.OrderBodyMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.*;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.OrdersMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper;
|
||||
import com.cf.imes.module.system.api.process.ProcessApi;
|
||||
import com.cf.imes.module.system.enums.ErrorCodeConstants;
|
||||
@@ -35,7 +32,7 @@ import org.springframework.validation.annotation.Validated;
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator;
|
||||
@@ -73,7 +70,7 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
|
||||
private OrderPlateMapper orderPlateMapper;
|
||||
|
||||
@Resource
|
||||
private ProductionProcessMapper productionProcessMapper;
|
||||
private OrdersMapper ordersMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
@@ -161,10 +158,10 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
|
||||
}
|
||||
// 当前工序已全部加工,修改生产单的状态为生产完成
|
||||
if(validateOrderStatus(processStepStatuses.getOrderId())){
|
||||
OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId());
|
||||
OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId());
|
||||
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
|
||||
orderDO.setFinishTime(LocalDateTime.now());
|
||||
productionProcessMapper.updateById(orderDO);
|
||||
ordersMapper.updateById(orderDO);
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -192,10 +189,10 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
|
||||
}
|
||||
// 当前工序已全部加工,修改生产单的状态为生产完成
|
||||
if(validateOrderStatus(processStepStatuses.getOrderId())){
|
||||
OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId());
|
||||
OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId());
|
||||
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
|
||||
orderDO.setFinishTime(LocalDateTime.now());
|
||||
productionProcessMapper.updateById(orderDO);
|
||||
ordersMapper.updateById(orderDO);
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -211,19 +208,19 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
|
||||
|
||||
// 判断当前工序的状态是否为打包类型,如果是,修改生产的状态为生产完成
|
||||
if(processStepStatuses.getType().equals(ProcessProcessingTypeEnum.PACK.getNumber())){
|
||||
OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId());
|
||||
OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId());
|
||||
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
|
||||
orderDO.setFinishTime(LocalDateTime.now());
|
||||
productionProcessMapper.updateById(orderDO);
|
||||
ordersMapper.updateById(orderDO);
|
||||
return;
|
||||
}
|
||||
|
||||
// 当前工序已全部加工,修改生产单的状态为生产完成
|
||||
if(validateOrderStatus(processStepStatuses.getOrderId())){
|
||||
OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId());
|
||||
OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId());
|
||||
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
|
||||
orderDO.setFinishTime(LocalDateTime.now());
|
||||
productionProcessMapper.updateById(orderDO);
|
||||
ordersMapper.updateById(orderDO);
|
||||
}
|
||||
|
||||
}catch (Exception e){
|
||||
|
||||
+11
-11
@@ -7,12 +7,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.GroupNameList;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.OrderPartsReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.PackDetailsReqVO;
|
||||
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO;
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO;
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO;
|
||||
@@ -21,11 +17,12 @@ import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRatePageR
|
||||
import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
|
||||
import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
|
||||
import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.OrdersMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.query.*;
|
||||
import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper;
|
||||
import com.cf.imes.module.manage.dal.mysql.query.OrderPartsMapper;
|
||||
import com.cf.imes.module.manage.util.page.PageHelperUtil;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
@@ -43,8 +40,7 @@ import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.ge
|
||||
@Validated
|
||||
public class ProductionStatusServiceImpl implements ProductionStatusService {
|
||||
|
||||
@Resource
|
||||
private ProductionStatusMapper productionStatusMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
private ProcessStepMapper processStepMapper;
|
||||
@@ -56,6 +52,8 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
|
||||
@Resource
|
||||
private OrderPackageMapper orderPackageMapper;
|
||||
|
||||
@Resource
|
||||
private OrdersMapper ordersMapper;
|
||||
|
||||
@Resource
|
||||
private OrderItemMapper orderItemMapper;
|
||||
@@ -69,7 +67,7 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
|
||||
@Override
|
||||
public PageResult<OrderDO> getProductionPage(OrderPlatePageReqVO pageReqVO) {
|
||||
|
||||
return productionStatusMapper.selectProductionPage(pageReqVO);
|
||||
return ordersMapper.selectProductionPage(pageReqVO);
|
||||
|
||||
}
|
||||
|
||||
@@ -156,7 +154,7 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
|
||||
@Override
|
||||
public PageResult<OrderDO> queryPackage(OrderPlatePageReqVO pageReqVO) {
|
||||
|
||||
return productionStatusMapper.selectProductionPage(pageReqVO);
|
||||
return ordersMapper.selectProductionPage(pageReqVO);
|
||||
|
||||
}
|
||||
|
||||
@@ -235,7 +233,9 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
|
||||
@Override
|
||||
public PrintOrderRespVO printOrder(Long orderNo) {
|
||||
|
||||
return productionStatusMapper.selectPrintOrder(orderNo,getUserOrganId());
|
||||
// return productionStatusMapper.selectPrintOrder(orderNo,getUserOrganId());
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
+68
-20
@@ -15,42 +15,67 @@
|
||||
resultMap="PackMap">
|
||||
|
||||
|
||||
select
|
||||
op.order_id as id,
|
||||
count(distinct op.id) as packCount
|
||||
|
||||
from order_package op
|
||||
join order_item oi on op.id = oi.package_id and op.organ_id = oi.organ_id
|
||||
select
|
||||
order_id as id,
|
||||
count(id) as packCount
|
||||
|
||||
from order_package
|
||||
|
||||
where
|
||||
oi.package_id != 0
|
||||
and op.organ_id = #{organId}
|
||||
and op.order_id in
|
||||
organ_id = #{organId}
|
||||
|
||||
and status !=0
|
||||
|
||||
and order_id in
|
||||
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
group by op.order_id;
|
||||
|
||||
group by order_id
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<!-- select-->
|
||||
<!-- op.order_id as id,-->
|
||||
<!-- count(distinct op.id) as packCount-->
|
||||
|
||||
<!-- from order_package op-->
|
||||
<!-- join order_item oi on op.id = oi.package_id and op.organ_id = oi.organ_id-->
|
||||
<!-- where-->
|
||||
<!-- oi.package_id != 0-->
|
||||
<!-- and op.organ_id = #{organId}-->
|
||||
<!-- and op.order_id in-->
|
||||
<!-- <foreach item="id" collection="orderIds" open="(" separator="," close=")">-->
|
||||
<!-- #{id}-->
|
||||
<!-- </foreach>-->
|
||||
<!-- group by op.order_id;-->
|
||||
|
||||
<select id="selectPackPieceCount"
|
||||
parameterType="java.util.List"
|
||||
resultMap="PackMap">
|
||||
|
||||
select
|
||||
op.order_id as id,
|
||||
count(distinct oi.plate_id ) as packPieceCount
|
||||
select distinct
|
||||
|
||||
from order_package op
|
||||
join order_item oi on op.id = oi.package_id and op.organ_id = oi.organ_id
|
||||
op.order_id as id,
|
||||
count(distinct oi.plate_id ) as packPieceCount
|
||||
|
||||
where oi.package_id !=0
|
||||
from order_item oi
|
||||
join order_package op on oi.package_id = op.id and oi.organ_id = op.organ_id
|
||||
|
||||
where
|
||||
oi.organ_id = #{organId}
|
||||
|
||||
and oi.order_id in
|
||||
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
|
||||
and op.status != 0
|
||||
and oi.package_id !=0
|
||||
and oi.plate_id != 0
|
||||
and op.organ_id =#{organId}
|
||||
and op.order_id in
|
||||
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
|
||||
|
||||
group by op.order_id;
|
||||
|
||||
@@ -197,5 +222,28 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPackListByOrderId"
|
||||
resultType="com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO">
|
||||
|
||||
|
||||
select distinct
|
||||
id,
|
||||
order_id,
|
||||
package_no,
|
||||
type,
|
||||
status,
|
||||
organ_id,
|
||||
creator,
|
||||
remark as packRemark,
|
||||
updater,
|
||||
update_time,
|
||||
create_time
|
||||
|
||||
from order_package
|
||||
|
||||
where organ_id = #{organId} and order_id = #{orderId} and deleted = false
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
+81
-40
@@ -1,40 +1,64 @@
|
||||
<?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.manage.dal.mysql.query.ProductionStatusMapper">
|
||||
<mapper namespace="com.cf.imes.module.manage.dal.mysql.process.OrdersMapper">
|
||||
|
||||
<resultMap id="printOrderMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO">
|
||||
|
||||
<result property="orderNo" column="orderNo"/>
|
||||
<result property="customOrderNo" column="customOrderNo"/>
|
||||
<result property="dealer" column="dealer"/>
|
||||
<result property="address" column="address"/>
|
||||
<result property="customer" column="customer"/>
|
||||
<result property="customerPhone" column="customerPhone"/>
|
||||
<result property="packageQuantity" column="packageQuantity"/>
|
||||
|
||||
</resultMap>
|
||||
<select id="selectPrintOrder"
|
||||
parameterType="java.lang.Long"
|
||||
resultMap="printOrderMap">
|
||||
<select id="selectOrderIds" resultMap="PackMap">
|
||||
|
||||
select
|
||||
o.id as orderNo ,
|
||||
o.custom_order_no as customOrderNo,
|
||||
o.dealer as dealer,
|
||||
o.address as address,
|
||||
o.customer as customer,
|
||||
o.phone_number as customerPhone,
|
||||
count(opn.order_id) as packageQuantity
|
||||
|
||||
from `orders` o
|
||||
join order_package opn on o.id = opn.order_id and o.organ_id = opn.organ_id
|
||||
SELECT
|
||||
id as orderNo,
|
||||
custom_order_no as customOrderNo,
|
||||
dealer as dealer,
|
||||
dealer_phone_number as dealerPhoneNumber,
|
||||
order_date as orderDate,
|
||||
create_time as createTime,
|
||||
delivery_date as deliveryDate,
|
||||
customer as customer,
|
||||
phone_number as phoneNumber,
|
||||
address as address,
|
||||
salesman as salesman,
|
||||
splitter as splitter,
|
||||
packaged as packaged
|
||||
FROM orders
|
||||
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time >= #{createTime} and id != #{orderId}
|
||||
ORDER BY create_time
|
||||
LIMIT 1 ;
|
||||
|
||||
where o.id = #{orderNo} and opn.status <> 0 and o.organ_id = #{organId} ;
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="selectOrderIdsFalse" resultMap="PackMap">
|
||||
|
||||
|
||||
SELECT
|
||||
id as orderNo,
|
||||
custom_order_no as customOrderNo,
|
||||
dealer as dealer,
|
||||
dealer_phone_number as dealerPhoneNumber,
|
||||
order_date as orderDate,
|
||||
create_time as createTime,
|
||||
delivery_date as deliveryDate,
|
||||
customer as customer,
|
||||
phone_number as phoneNumber,
|
||||
address as address,
|
||||
salesman as salesman,
|
||||
splitter as splitter,
|
||||
packaged as packaged
|
||||
FROM orders
|
||||
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time <= #{createTime} and id != #{orderId}
|
||||
ORDER BY create_time desc
|
||||
LIMIT 1 ;
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
<resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
|
||||
|
||||
<result property="id" column="orderNo"/>
|
||||
@@ -82,11 +106,11 @@
|
||||
join order_item oi on o.id = oi.order_id and o.organ_id = oi.organ_id
|
||||
|
||||
WHERE
|
||||
o.organ_id = #{organId} and
|
||||
o.id in
|
||||
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
o.organ_id = #{organId} and
|
||||
o.id in
|
||||
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
|
||||
group by orderNo,customOrderNo,dealer,deliveryDate,customer,phoneNumber,address,salesman,splitter,packaged,dealerPhoneNumber,orderDate,o.create_time
|
||||
|
||||
@@ -110,14 +134,14 @@
|
||||
resultMap="PrintMap">
|
||||
|
||||
select o.custom_order_no as customOrderNo,
|
||||
o.dealer as dealer,
|
||||
opn.id as packNo ,
|
||||
o.id as orderNo,
|
||||
o.address as address,
|
||||
((SELECT COUNT(t2.id) FROM order_package t2 WHERE t2.create_time <= opn.create_time and t2.order_id =#{orderNo})) as packNum
|
||||
o.dealer as dealer,
|
||||
opn.id as packNo ,
|
||||
o.id as orderNo,
|
||||
o.address as address,
|
||||
((SELECT COUNT(t2.id) FROM order_package t2 WHERE t2.create_time <= opn.create_time and t2.order_id =#{orderNo})) as packNum
|
||||
|
||||
from `orders` o
|
||||
join order_package opn on o.id = opn.order_id and o.organ_id = opn.organ_id
|
||||
join order_package opn on o.id = opn.order_id and o.organ_id = opn.organ_id
|
||||
|
||||
where opn.order_id =#{orderNo} and opn.id = #{packageNo} and opn.status <> 0 and opn.organ_id = #{organId}
|
||||
order by opn.create_time ;
|
||||
@@ -125,10 +149,25 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectOrderIds" resultType="com.cf.imes.module.manage.dal.dataobject.process.OrderDO" parameterType="map">
|
||||
<select id="selectOrderIdList" resultMap="PackMap" parameterType="map">
|
||||
|
||||
|
||||
select * from orders
|
||||
select
|
||||
id as orderNo,
|
||||
custom_order_no as customOrderNo,
|
||||
dealer as dealer,
|
||||
dealer_phone_number as dealerPhoneNumber,
|
||||
order_date as orderDate,
|
||||
create_time as createTime,
|
||||
delivery_date as deliveryDate,
|
||||
customer as customer,
|
||||
phone_number as phoneNumber,
|
||||
address as address,
|
||||
salesman as salesman,
|
||||
splitter as splitter,
|
||||
packaged as packaged
|
||||
|
||||
from orders
|
||||
<where>
|
||||
|
||||
organ_id =#{organId}
|
||||
@@ -165,7 +204,9 @@
|
||||
|
||||
</select>
|
||||
|
||||
<!-- <if test="pageReqVO.status == true">
|
||||
and status in (4)
|
||||
</if>-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
-194
@@ -1,194 +0,0 @@
|
||||
<?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.manage.dal.mysql.process.ProductionProcessMapper">
|
||||
|
||||
|
||||
|
||||
|
||||
<resultMap id="PatchingPlateMap" type="com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlateRespVO">
|
||||
|
||||
<result property="groupId" column="groupId"/>
|
||||
<result property="orderId" column="orderId"/>
|
||||
<result property="customOrderId" column="customOrderId"/>
|
||||
<result property="customer" column="customer"/>
|
||||
<result property="address" column="address"/>
|
||||
<result property="orderStatus" column="orderStatus"/>
|
||||
<result property="plateName" column="plateName"/>
|
||||
<result property="plateNum" column="plateNum"/>
|
||||
<result property="thickness" column="thickness"/>
|
||||
<result property="material" column="material"/>
|
||||
<result property="color" column="color"/>
|
||||
|
||||
</resultMap>
|
||||
<select id="selectPatchingPlate"
|
||||
resultMap="PatchingPlateMap"
|
||||
parameterType="com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlatePageReqVO">
|
||||
|
||||
select
|
||||
DISTINCT
|
||||
p.goods_id,
|
||||
o.id as orderId,
|
||||
o.custom_order_no as customOrderId,
|
||||
o.customer as customer,
|
||||
o.address as address,
|
||||
o.status as orderStatus,
|
||||
oi.num as plateNum,
|
||||
<![CDATA[
|
||||
CONCAT(
|
||||
TRIM(TRAILING '.' from TRIM(TRAILING '0' FROM p.thickness)),'mm-',p.material,'-',p.color) AS plateName,
|
||||
]]>
|
||||
p.thickness as thickness,
|
||||
p.material as material,
|
||||
p.color as color
|
||||
|
||||
from `orders` o
|
||||
|
||||
join order_item oi on o.id = oi.order_id
|
||||
join order_plate op on oi.plate_id = op.id
|
||||
join plate p on op.goods_id = p.goods_id
|
||||
|
||||
<where>
|
||||
<choose>
|
||||
<!-- 挖穿,挖孔,二维刀路判断 -->
|
||||
<when test="isDigThrough == true">
|
||||
(op.filter_type = 1
|
||||
<if test="isDiggingHoles == true ">
|
||||
or op.filter_type = 2
|
||||
</if>
|
||||
<if test="is2DCuttingPath == true ">
|
||||
or op.filter_type = 4
|
||||
</if>)
|
||||
|
||||
<!-- 其他的判断 -->
|
||||
<if test="orderNo != null">
|
||||
and o.id = #{orderNo}
|
||||
</if>
|
||||
<if test="customOrderNo != null">
|
||||
and o.custom_order_no = #{customOrderNo}
|
||||
</if>
|
||||
<if test="customer != null">
|
||||
and o.customer = #{customer}
|
||||
</if>
|
||||
<if test="address != null">
|
||||
and o.address = #{address}
|
||||
</if>
|
||||
<if test="statusList != null">
|
||||
and o.status in
|
||||
<foreach item="id" collection="statusList" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="startTime != null and endTime != null">
|
||||
and o.update_time between #{startTime} and #{endTime}
|
||||
</if>
|
||||
|
||||
<if test="isRectangle == true ">
|
||||
and op.unregular_point_count = 0
|
||||
</if>
|
||||
|
||||
<if test="isSpecialShaped == true ">
|
||||
and op.unregular_point_count > 0
|
||||
</if>
|
||||
|
||||
<if test="isProfiling == true ">
|
||||
and front_model_count > 0 or op.back_hole_count > 0 or op.side_hole_count > 0
|
||||
</if>
|
||||
|
||||
<if test="isDoor == true ">
|
||||
and op.is_door = 1
|
||||
</if>
|
||||
|
||||
<!-- <if test="longRangeList != null and !longRangeList.isEmpty()">
|
||||
AND (
|
||||
<!– 根据 DataRangeList 中的属性进行条件判断 –>
|
||||
<foreach collection="longRangeList" item="range" separator=" OR ">
|
||||
(#{op.width} <= #{range.maxaa} AND #{op.width} >= #{range.minbb})
|
||||
</foreach>
|
||||
)
|
||||
</if>-->
|
||||
|
||||
|
||||
</when>
|
||||
<!-- 不传入挖穿等判断,走另一个判断逻辑 -->
|
||||
<otherwise>
|
||||
|
||||
<if test="orderNo != null">
|
||||
and o.id = #{orderNo}
|
||||
</if>
|
||||
<if test="customOrderNo != null">
|
||||
and o.custom_order_no = #{customOrderNo}
|
||||
</if>
|
||||
<if test="customer != null">
|
||||
and o.customer = #{customer}
|
||||
</if>
|
||||
<if test="address != null">
|
||||
and o.address = #{address}
|
||||
</if>
|
||||
<if test="statusList != null">
|
||||
and o.status in
|
||||
<foreach item="id" collection="statusList" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="startTime != null and endTime != null">
|
||||
and o.update_time between #{startTime} and #{endTime}
|
||||
</if>
|
||||
|
||||
<if test="isRectangle == true ">
|
||||
and op.unregular_point_count = 0
|
||||
</if>
|
||||
|
||||
<if test="isSpecialShaped == true ">
|
||||
and op.unregular_point_count > 0
|
||||
</if>
|
||||
|
||||
<if test="isProfiling == true ">
|
||||
and front_model_count > 0 or op.back_hole_count > 0 or op.side_hole_count > 0
|
||||
</if>
|
||||
|
||||
<if test="isDoor == true ">
|
||||
and op.is_door = 1
|
||||
</if>
|
||||
<!--
|
||||
<if test="longRangeList != null and !longRangeList.isEmpty()">
|
||||
AND
|
||||
<!– 根据 DataRangeList 中的属性进行条件判断 –>
|
||||
<foreach collection="longRangeList" item="range" open="(" separator="," close=")">
|
||||
op.width between #{range.minbb} AND #{range.maxaa}
|
||||
</foreach>
|
||||
|
||||
</if>-->
|
||||
|
||||
</otherwise>
|
||||
|
||||
</choose>
|
||||
|
||||
</where>
|
||||
|
||||
group by p.goods_id,orderId,customOrderId,customer,address,orderStatus,plateNum,plateName,thickness,material,color
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectOrderIds" resultType="com.cf.imes.module.manage.dal.dataobject.process.OrderDO">
|
||||
|
||||
SELECT * FROM orders
|
||||
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time > #{createTime} and id != #{orderId}
|
||||
ORDER BY create_time
|
||||
LIMIT 1 ;
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<select id="selectOrderIdsFalse" resultType="com.cf.imes.module.manage.dal.dataobject.process.OrderDO">
|
||||
|
||||
SELECT * FROM orders
|
||||
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time < #{createTime} and id != #{orderId}
|
||||
ORDER BY create_time desc
|
||||
LIMIT 1 ;
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
+23
@@ -468,4 +468,27 @@
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="selectPlateNum" resultType="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
|
||||
|
||||
|
||||
select order_id as id,
|
||||
count(distinct plate_id ) as totalPieceCount
|
||||
from order_item
|
||||
where organ_id = #{organId}
|
||||
|
||||
and order_id in
|
||||
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
|
||||
#{orderIds}
|
||||
</foreach>
|
||||
|
||||
and plate_id !=0
|
||||
|
||||
group by order_id
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
+1
-1
@@ -76,7 +76,7 @@
|
||||
from order_parts op
|
||||
join order_item oi on op.id = oi.parts_id and op.organ_id = oi.organ_id
|
||||
|
||||
where op.organ_id = #{organId} and op.order_id = #{orderId} and oi.package_id = 0
|
||||
where op.organ_id = #{organId} and op.order_id = #{orderId}
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
+3
-1
@@ -53,6 +53,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode THE_PASSWORD_MUST_CONTAIN_AT_LEAST_ONE_NUMBER = new ErrorCode(1_002_003_012, "密码必须包含至少一个数字");
|
||||
|
||||
ErrorCode PASSWORDS_CAN_ONLY_CONTAIN_LETTERS_AND_NUMBERS = new ErrorCode(1_002_003_013, "密码只能包含字母和数字");
|
||||
ErrorCode INSUFFICIENT_PERMISSIONS = new ErrorCode(1_002_003_014, "当前用户权限不足,无法修改开料状态");
|
||||
|
||||
// ========== 部门模块 1-002-004-000 ==========
|
||||
ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门");
|
||||
@@ -213,7 +214,8 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode MACHINE_ERROR = new ErrorCode(1_002_029_007, "当前机台错误,请重新选择机台");
|
||||
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_CURRENT_BRAND = new ErrorCode(1_002_029_666, "品牌ID错误,或品牌不存在");
|
||||
ErrorCode THE_CURRENT_BRAND = new ErrorCode(1_002_029_010, "品牌ID错误,或品牌不存在");
|
||||
ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前模板创建的机台数量已达到最大轴,无法继续创建");
|
||||
|
||||
// ========== 标签模板 1-002-300-000 ==========
|
||||
ErrorCode LABEL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_300_000, "标签模板不存在");
|
||||
|
||||
Reference in New Issue
Block a user