Showing
24 changed files
with
2017 additions
and
2 deletions
| ... | ... | @@ -249,4 +249,51 @@ create table `tbl_holidays` |
| 249 | 249 | `update_by` varchar(20) not null comment '更新人', |
| 250 | 250 | `create_time` datetime default now() comment '创建时间', |
| 251 | 251 | `update_time` datetime default now() comment '更新时间' |
| 252 | -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '节假日' ROW_FORMAT = DYNAMIC; | |
| \ No newline at end of file | ||
| 252 | +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '节假日' ROW_FORMAT = DYNAMIC; | |
| 253 | + | |
| 254 | +-- 补货单 | |
| 255 | +DROP TABLE IF EXISTS `tbl_replenishment_order`; | |
| 256 | +create table `tbl_replenishment_order` | |
| 257 | +( | |
| 258 | + `id` varchar(32) primary key comment 'ID', | |
| 259 | + `code` varchar(50) NOT NULL COMMENT '编号', | |
| 260 | + `workshop_id` varchar(32) comment '分厂', | |
| 261 | + `dept_id` varchar(32) comment '办事处', | |
| 262 | + `customer_id` varchar(32) comment '购货单位', | |
| 263 | + `origin_plan_ship_date` DATE COMMENT '原计划发货日期', | |
| 264 | + `purchase_order_id` varchar(32) COMMENT '订货单', | |
| 265 | + `status` varchar(20) comment '状态', | |
| 266 | + `create_by_id` varchar(32) not null comment '创建人ID', | |
| 267 | + `create_by` varchar(20) not null comment '创建人', | |
| 268 | + `update_by_id` varchar(32) not null comment '更新人ID', | |
| 269 | + `update_by` varchar(20) not null comment '更新人', | |
| 270 | + `create_time` datetime default now() comment '创建时间', | |
| 271 | + `update_time` datetime default now() comment '更新时间' | |
| 272 | +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '补货单' ROW_FORMAT = DYNAMIC; | |
| 273 | + | |
| 274 | +-- 补货单物料行 | |
| 275 | +DROP TABLE IF EXISTS `tbl_replenishment_order_line`; | |
| 276 | +create table `tbl_replenishment_order_line` | |
| 277 | +( | |
| 278 | + `id` varchar(32) primary key comment 'ID', | |
| 279 | + `replenishment_order_id` varchar(32) NOT NULL COMMENT '补货单', | |
| 280 | + `purchase_order_line_id` varchar(32) NOT NULL COMMENT '订货单表物料行ID', | |
| 281 | + `brand` varchar(100) COMMENT '牌号', | |
| 282 | + `thickness` decimal(10, 4) COMMENT '厚度', | |
| 283 | + `width` decimal(10, 4) COMMENT '宽度', | |
| 284 | + `length` decimal(10, 4) COMMENT '长度', | |
| 285 | + `status` varchar(50) COMMENT '状态', | |
| 286 | + `quantity` decimal(15, 4) COMMENT '需发(t)', | |
| 287 | + `shipped_quantity` decimal(15, 4) COMMENT '实发(t)', | |
| 288 | + `supplementary_quantity` decimal(15, 4) COMMENT '需求补发(t/件)', | |
| 289 | + `confirmed_delivery_date` DATE COMMENT '生产科确认交付日期', | |
| 290 | + `remarks` TEXT COMMENT '备注', | |
| 291 | + `show_order` INT DEFAULT 0 COMMENT '排序', | |
| 292 | + `item_id` varchar(50) COMMENT '前端用ID', | |
| 293 | + `create_by_id` varchar(32) not null comment '创建人ID', | |
| 294 | + `create_by` varchar(20) not null comment '创建人', | |
| 295 | + `update_by_id` varchar(32) not null comment '更新人ID', | |
| 296 | + `update_by` varchar(20) not null comment '更新人', | |
| 297 | + `create_time` datetime default now() comment '创建时间', | |
| 298 | + `update_time` datetime default now() comment '更新时间' | |
| 299 | +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '补货单物料行' ROW_FORMAT = DYNAMIC; | |
| \ No newline at end of file | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/bo/purchase/GetReplenishmentOrderBo.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.bo.purchase; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | |
| 4 | +import com.lframework.starter.common.constants.StringPool; | |
| 5 | +import com.lframework.starter.web.core.bo.BaseBo; | |
| 6 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrder; | |
| 7 | +import io.swagger.annotations.ApiModelProperty; | |
| 8 | +import lombok.Data; | |
| 9 | + | |
| 10 | +import java.time.LocalDate; | |
| 11 | +import java.util.List; | |
| 12 | + | |
| 13 | +/** | |
| 14 | + * <p> | |
| 15 | + * 补货单 GetBo | |
| 16 | + * </p> | |
| 17 | + */ | |
| 18 | +@Data | |
| 19 | +public class GetReplenishmentOrderBo extends BaseBo<ReplenishmentOrder> { | |
| 20 | + | |
| 21 | + /** | |
| 22 | + * ID | |
| 23 | + */ | |
| 24 | + @ApiModelProperty("ID") | |
| 25 | + private String id; | |
| 26 | + | |
| 27 | + /** | |
| 28 | + * 编号 | |
| 29 | + */ | |
| 30 | + @ApiModelProperty("编号") | |
| 31 | + private String code; | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * 分厂 | |
| 35 | + */ | |
| 36 | + @ApiModelProperty("分厂") | |
| 37 | + private String workshopId; | |
| 38 | + | |
| 39 | + /** | |
| 40 | + * 办事处 | |
| 41 | + */ | |
| 42 | + @ApiModelProperty("办事处") | |
| 43 | + private String deptId; | |
| 44 | + | |
| 45 | + /** | |
| 46 | + * 购货单位 | |
| 47 | + */ | |
| 48 | + @ApiModelProperty("购货单位") | |
| 49 | + private String customerId; | |
| 50 | + | |
| 51 | + /** | |
| 52 | + * 原计划发货日期 | |
| 53 | + */ | |
| 54 | + @ApiModelProperty("原计划发货日期") | |
| 55 | + @JsonFormat(pattern = StringPool.DATE_PATTERN) | |
| 56 | + private LocalDate originPlanShipDate; | |
| 57 | + | |
| 58 | + /** | |
| 59 | + * 订货单 | |
| 60 | + */ | |
| 61 | + @ApiModelProperty("订货单") | |
| 62 | + private String purchaseOrderId; | |
| 63 | + | |
| 64 | + /** | |
| 65 | + * 补货单物料行 | |
| 66 | + */ | |
| 67 | + @ApiModelProperty("补货单物料行") | |
| 68 | + private List<GetReplenishmentOrderLineBo> replenishmentOrderLineList; | |
| 69 | + | |
| 70 | + public GetReplenishmentOrderBo() { | |
| 71 | + | |
| 72 | + } | |
| 73 | + | |
| 74 | + public GetReplenishmentOrderBo(ReplenishmentOrder dto) { | |
| 75 | + | |
| 76 | + super(dto); | |
| 77 | + } | |
| 78 | + | |
| 79 | + @Override | |
| 80 | + public BaseBo<ReplenishmentOrder> convert(ReplenishmentOrder dto) { | |
| 81 | + return super.convert(dto); | |
| 82 | + } | |
| 83 | + | |
| 84 | + @Override | |
| 85 | + protected void afterInit(ReplenishmentOrder dto) { | |
| 86 | + | |
| 87 | + } | |
| 88 | +} | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/bo/purchase/GetReplenishmentOrderLineBo.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.bo.purchase; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | |
| 4 | +import com.lframework.starter.common.constants.StringPool; | |
| 5 | +import com.lframework.starter.web.core.bo.BaseBo; | |
| 6 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrderLine; | |
| 7 | +import io.swagger.annotations.ApiModelProperty; | |
| 8 | +import lombok.Data; | |
| 9 | + | |
| 10 | +import java.math.BigDecimal; | |
| 11 | +import java.time.LocalDate; | |
| 12 | + | |
| 13 | +/** | |
| 14 | + * <p> | |
| 15 | + * 补货单物料行 GetBo | |
| 16 | + * </p> | |
| 17 | + */ | |
| 18 | +@Data | |
| 19 | +public class GetReplenishmentOrderLineBo extends BaseBo<ReplenishmentOrderLine> { | |
| 20 | + | |
| 21 | + /** | |
| 22 | + * ID | |
| 23 | + */ | |
| 24 | + @ApiModelProperty("ID") | |
| 25 | + private String id; | |
| 26 | + | |
| 27 | + /** | |
| 28 | + * 补货单 | |
| 29 | + */ | |
| 30 | + @ApiModelProperty("补货单") | |
| 31 | + private String replenishmentOrderId; | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * 订货单表物料行ID | |
| 35 | + */ | |
| 36 | + @ApiModelProperty("订货单表物料行ID") | |
| 37 | + private String purchaseOrderLineId; | |
| 38 | + | |
| 39 | + /** | |
| 40 | + * 牌号 | |
| 41 | + */ | |
| 42 | + @ApiModelProperty("牌号") | |
| 43 | + private String brand; | |
| 44 | + | |
| 45 | + /** | |
| 46 | + * 厚度 | |
| 47 | + */ | |
| 48 | + @ApiModelProperty("厚度") | |
| 49 | + private BigDecimal thickness; | |
| 50 | + | |
| 51 | + /** | |
| 52 | + * 宽度 | |
| 53 | + */ | |
| 54 | + @ApiModelProperty("宽度") | |
| 55 | + private BigDecimal width; | |
| 56 | + | |
| 57 | + /** | |
| 58 | + * 长度 | |
| 59 | + */ | |
| 60 | + @ApiModelProperty("长度") | |
| 61 | + private BigDecimal length; | |
| 62 | + | |
| 63 | + /** | |
| 64 | + * 状态 | |
| 65 | + */ | |
| 66 | + @ApiModelProperty("状态") | |
| 67 | + private String status; | |
| 68 | + | |
| 69 | + /** | |
| 70 | + * 需发(t) | |
| 71 | + */ | |
| 72 | + @ApiModelProperty("需发(t)") | |
| 73 | + private BigDecimal quantity; | |
| 74 | + | |
| 75 | + /** | |
| 76 | + * 实发(t) | |
| 77 | + */ | |
| 78 | + @ApiModelProperty("实发(t)") | |
| 79 | + private BigDecimal shippedQuantity; | |
| 80 | + | |
| 81 | + /** | |
| 82 | + * 需求补发(t/件) | |
| 83 | + */ | |
| 84 | + @ApiModelProperty("需求补发(t/件)") | |
| 85 | + private BigDecimal supplementaryQuantity; | |
| 86 | + | |
| 87 | + /** | |
| 88 | + * 生产科确认交付日期 | |
| 89 | + */ | |
| 90 | + @ApiModelProperty("生产科确认交付日期") | |
| 91 | + @JsonFormat(pattern = StringPool.DATE_PATTERN) | |
| 92 | + private LocalDate confirmedDeliveryDate; | |
| 93 | + | |
| 94 | + /** | |
| 95 | + * 备注 | |
| 96 | + */ | |
| 97 | + @ApiModelProperty("备注") | |
| 98 | + private String remarks; | |
| 99 | + | |
| 100 | + /** | |
| 101 | + * 排序 | |
| 102 | + */ | |
| 103 | + @ApiModelProperty("排序") | |
| 104 | + private Integer showOrder; | |
| 105 | + | |
| 106 | + public GetReplenishmentOrderLineBo() { | |
| 107 | + | |
| 108 | + } | |
| 109 | + | |
| 110 | + public GetReplenishmentOrderLineBo(ReplenishmentOrderLine dto) { | |
| 111 | + | |
| 112 | + super(dto); | |
| 113 | + } | |
| 114 | + | |
| 115 | + @Override | |
| 116 | + public BaseBo<ReplenishmentOrderLine> convert(ReplenishmentOrderLine dto) { | |
| 117 | + return super.convert(dto); | |
| 118 | + } | |
| 119 | + | |
| 120 | + @Override | |
| 121 | + protected void afterInit(ReplenishmentOrderLine dto) { | |
| 122 | + | |
| 123 | + } | |
| 124 | +} | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/bo/purchase/QueryReplenishmentOrderBo.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.bo.purchase; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.JsonFormat; | |
| 4 | +import com.lframework.starter.common.constants.StringPool; | |
| 5 | +import com.lframework.starter.web.core.bo.BaseBo; | |
| 6 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrder; | |
| 7 | +import io.swagger.annotations.ApiModelProperty; | |
| 8 | +import lombok.Data; | |
| 9 | + | |
| 10 | +import java.time.LocalDate; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | + | |
| 13 | +/** | |
| 14 | + * <p> | |
| 15 | + * 补货单 QueryBo | |
| 16 | + * </p> | |
| 17 | + */ | |
| 18 | +@Data | |
| 19 | +public class QueryReplenishmentOrderBo extends BaseBo<ReplenishmentOrder> { | |
| 20 | + | |
| 21 | + /** | |
| 22 | + * ID | |
| 23 | + */ | |
| 24 | + @ApiModelProperty("ID") | |
| 25 | + private String id; | |
| 26 | + | |
| 27 | + /** | |
| 28 | + * 编号 | |
| 29 | + */ | |
| 30 | + @ApiModelProperty("编号") | |
| 31 | + private String code; | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * 分厂 | |
| 35 | + */ | |
| 36 | + @ApiModelProperty("分厂") | |
| 37 | + private String workshopId; | |
| 38 | + | |
| 39 | + /** | |
| 40 | + * 办事处 | |
| 41 | + */ | |
| 42 | + @ApiModelProperty("办事处") | |
| 43 | + private String deptId; | |
| 44 | + | |
| 45 | + /** | |
| 46 | + * 购货单位 | |
| 47 | + */ | |
| 48 | + @ApiModelProperty("购货单位") | |
| 49 | + private String customerId; | |
| 50 | + | |
| 51 | + /** | |
| 52 | + * 原计划发货日期 | |
| 53 | + */ | |
| 54 | + @ApiModelProperty("原计划发货日期") | |
| 55 | + @JsonFormat(pattern = StringPool.DATE_PATTERN) | |
| 56 | + private LocalDate originPlanShipDate; | |
| 57 | + | |
| 58 | + /** | |
| 59 | + * 状态 | |
| 60 | + */ | |
| 61 | + @ApiModelProperty("状态") | |
| 62 | + private String status; | |
| 63 | + | |
| 64 | + /** | |
| 65 | + * 创建时间 | |
| 66 | + */ | |
| 67 | + @ApiModelProperty("创建时间") | |
| 68 | + @JsonFormat(pattern = StringPool.DATE_TIME_PATTERN) | |
| 69 | + private LocalDateTime createTime; | |
| 70 | + | |
| 71 | + public QueryReplenishmentOrderBo() { | |
| 72 | + | |
| 73 | + } | |
| 74 | + | |
| 75 | + public QueryReplenishmentOrderBo(ReplenishmentOrder dto) { | |
| 76 | + | |
| 77 | + super(dto); | |
| 78 | + } | |
| 79 | + | |
| 80 | + @Override | |
| 81 | + public BaseBo<ReplenishmentOrder> convert(ReplenishmentOrder dto) { | |
| 82 | + return super.convert(dto); | |
| 83 | + } | |
| 84 | + | |
| 85 | + @Override | |
| 86 | + protected void afterInit(ReplenishmentOrder dto) { | |
| 87 | + | |
| 88 | + } | |
| 89 | +} | |
| 90 | + | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/bo/purchase/QueryReplenishmentOrderLineBo.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.bo.purchase; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.bo.BaseBo; | |
| 4 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrderLine; | |
| 5 | +import io.swagger.annotations.ApiModelProperty; | |
| 6 | +import lombok.Data; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * <p> | |
| 10 | + * 补货单物料行 QueryBo | |
| 11 | + * </p> | |
| 12 | + */ | |
| 13 | +@Data | |
| 14 | +public class QueryReplenishmentOrderLineBo extends BaseBo<ReplenishmentOrderLine> { | |
| 15 | + | |
| 16 | + /** | |
| 17 | + * ID | |
| 18 | + */ | |
| 19 | + @ApiModelProperty("ID") | |
| 20 | + private String id; | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * 补货单 | |
| 24 | + */ | |
| 25 | + @ApiModelProperty("补货单") | |
| 26 | + private String replenishmentOrderId; | |
| 27 | + | |
| 28 | + public QueryReplenishmentOrderLineBo() { | |
| 29 | + | |
| 30 | + } | |
| 31 | + | |
| 32 | + public QueryReplenishmentOrderLineBo(ReplenishmentOrderLine dto) { | |
| 33 | + | |
| 34 | + super(dto); | |
| 35 | + } | |
| 36 | + | |
| 37 | + @Override | |
| 38 | + public BaseBo<ReplenishmentOrderLine> convert(ReplenishmentOrderLine dto) { | |
| 39 | + return super.convert(dto); | |
| 40 | + } | |
| 41 | + | |
| 42 | + @Override | |
| 43 | + protected void afterInit(ReplenishmentOrderLine dto) { | |
| 44 | + | |
| 45 | + } | |
| 46 | +} | |
| 47 | + | ... | ... |
| 1 | +package com.lframework.xingyun.sc.controller.purchase; | |
| 2 | + | |
| 3 | +import com.lframework.starter.common.exceptions.impl.DefaultClientException; | |
| 4 | +import com.lframework.starter.common.utils.CollectionUtil; | |
| 5 | +import com.lframework.starter.web.core.annotations.security.HasPermission; | |
| 6 | +import com.lframework.starter.web.core.components.resp.InvokeResult; | |
| 7 | +import com.lframework.starter.web.core.components.resp.InvokeResultBuilder; | |
| 8 | +import com.lframework.starter.web.core.components.resp.PageResult; | |
| 9 | +import com.lframework.starter.web.core.controller.DefaultBaseController; | |
| 10 | +import com.lframework.starter.web.core.utils.PageResultUtil; | |
| 11 | +import com.lframework.xingyun.sc.bo.purchase.GetReplenishmentOrderBo; | |
| 12 | +import com.lframework.xingyun.sc.bo.purchase.QueryReplenishmentOrderBo; | |
| 13 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrder; | |
| 14 | +import com.lframework.xingyun.sc.service.purchase.ReplenishmentOrderService; | |
| 15 | +import com.lframework.xingyun.sc.vo.purchase.CreateReplenishmentOrderVo; | |
| 16 | +import com.lframework.xingyun.sc.vo.purchase.QueryReplenishmentOrderVo; | |
| 17 | +import com.lframework.xingyun.sc.vo.purchase.UpdateReplenishmentOrderVo; | |
| 18 | +import io.swagger.annotations.Api; | |
| 19 | +import io.swagger.annotations.ApiImplicitParam; | |
| 20 | +import io.swagger.annotations.ApiOperation; | |
| 21 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 22 | +import org.springframework.validation.annotation.Validated; | |
| 23 | +import org.springframework.web.bind.annotation.*; | |
| 24 | + | |
| 25 | +import javax.validation.Valid; | |
| 26 | +import javax.validation.constraints.NotBlank; | |
| 27 | +import java.util.List; | |
| 28 | +import java.util.stream.Collectors; | |
| 29 | + | |
| 30 | +/** | |
| 31 | + * 补货单 Controller | |
| 32 | + */ | |
| 33 | +@Api(tags = "补货单") | |
| 34 | +@Validated | |
| 35 | +@RestController | |
| 36 | +@RequestMapping("/purchase/replenishmentorder") | |
| 37 | +public class ReplenishmentOrderController extends DefaultBaseController { | |
| 38 | + | |
| 39 | + @Autowired | |
| 40 | + private ReplenishmentOrderService replenishmentOrderService; | |
| 41 | + | |
| 42 | + /** | |
| 43 | + * 查询列表 | |
| 44 | + */ | |
| 45 | + @ApiOperation("查询列表") | |
| 46 | + @HasPermission({"entity:replenishmentorder:query"}) | |
| 47 | + @GetMapping("/query") | |
| 48 | + public InvokeResult<PageResult<QueryReplenishmentOrderBo>> query(@Valid QueryReplenishmentOrderVo vo) { | |
| 49 | + | |
| 50 | + PageResult<ReplenishmentOrder> pageResult = replenishmentOrderService.query(getPageIndex(vo), getPageSize(vo), vo); | |
| 51 | + | |
| 52 | + List<ReplenishmentOrder> datas = pageResult.getDatas(); | |
| 53 | + List<QueryReplenishmentOrderBo> results = null; | |
| 54 | + | |
| 55 | + if (!CollectionUtil.isEmpty(datas)) { | |
| 56 | + results = datas.stream().map(QueryReplenishmentOrderBo::new).collect(Collectors.toList()); | |
| 57 | + } | |
| 58 | + | |
| 59 | + return InvokeResultBuilder.success(PageResultUtil.rebuild(pageResult, results)); | |
| 60 | + } | |
| 61 | + | |
| 62 | + /** | |
| 63 | + * 根据ID查询 | |
| 64 | + */ | |
| 65 | + @ApiOperation("根据ID查询") | |
| 66 | + @ApiImplicitParam(value = "id", name = "id", paramType = "query", required = true) | |
| 67 | + @HasPermission({"entity:replenishmentorder:query"}) | |
| 68 | + @GetMapping | |
| 69 | + public InvokeResult<GetReplenishmentOrderBo> get(@NotBlank(message = "id不能为空!") String id) { | |
| 70 | + | |
| 71 | + ReplenishmentOrder data = replenishmentOrderService.findById(id); | |
| 72 | + if (data == null) { | |
| 73 | + throw new DefaultClientException("补货单不存在!"); | |
| 74 | + } | |
| 75 | + | |
| 76 | + GetReplenishmentOrderBo result = new GetReplenishmentOrderBo(data); | |
| 77 | + | |
| 78 | + return InvokeResultBuilder.success(result); | |
| 79 | + } | |
| 80 | + | |
| 81 | + /** | |
| 82 | + * 新增 | |
| 83 | + */ | |
| 84 | + @ApiOperation("新增") | |
| 85 | + @HasPermission({"entity:replenishmentorder:add"}) | |
| 86 | + @PostMapping | |
| 87 | + public InvokeResult<Void> create(@Valid @RequestBody CreateReplenishmentOrderVo vo) { | |
| 88 | + | |
| 89 | + replenishmentOrderService.create(vo); | |
| 90 | + | |
| 91 | + return InvokeResultBuilder.success(); | |
| 92 | + } | |
| 93 | + | |
| 94 | + /** | |
| 95 | + * 修改 | |
| 96 | + */ | |
| 97 | + @ApiOperation("修改") | |
| 98 | + @HasPermission({"entity:replenishmentorder:modify"}) | |
| 99 | + @PutMapping | |
| 100 | + public InvokeResult<Void> update(@Valid @RequestBody UpdateReplenishmentOrderVo vo) { | |
| 101 | + | |
| 102 | + replenishmentOrderService.update(vo); | |
| 103 | + | |
| 104 | + replenishmentOrderService.cleanCacheByKey(vo.getId()); | |
| 105 | + | |
| 106 | + return InvokeResultBuilder.success(); | |
| 107 | + } | |
| 108 | + | |
| 109 | + /** | |
| 110 | + * 取消 | |
| 111 | + */ | |
| 112 | + @ApiOperation("取消") | |
| 113 | + @GetMapping("/cancel") | |
| 114 | + public InvokeResult<Void> cancel(@NotBlank(message = "id不能为空!") String id) { | |
| 115 | + | |
| 116 | + replenishmentOrderService.cancel(id); | |
| 117 | + | |
| 118 | + replenishmentOrderService.cleanCacheByKey(id); | |
| 119 | + | |
| 120 | + return InvokeResultBuilder.success(); | |
| 121 | + } | |
| 122 | + | |
| 123 | + /** | |
| 124 | + * 填写补货时间 | |
| 125 | + */ | |
| 126 | + @ApiOperation("填写补货时间") | |
| 127 | + @PostMapping("/fillRestockTime") | |
| 128 | + public InvokeResult<Void> fillRestockTime(@RequestBody UpdateReplenishmentOrderVo vo) { | |
| 129 | + | |
| 130 | + replenishmentOrderService.fillRestockTime(vo); | |
| 131 | + | |
| 132 | + replenishmentOrderService.cleanCacheByKey(vo.getId()); | |
| 133 | + | |
| 134 | + return InvokeResultBuilder.success(); | |
| 135 | + } | |
| 136 | +} | ... | ... |
| 1 | +package com.lframework.xingyun.sc.entity; | |
| 2 | + | |
| 3 | +import com.baomidou.mybatisplus.annotation.FieldFill; | |
| 4 | +import com.baomidou.mybatisplus.annotation.TableField; | |
| 5 | +import com.baomidou.mybatisplus.annotation.TableName; | |
| 6 | +import com.lframework.starter.web.core.dto.BaseDto; | |
| 7 | +import com.lframework.starter.web.core.entity.BaseEntity; | |
| 8 | +import lombok.Data; | |
| 9 | + | |
| 10 | +import java.time.LocalDate; | |
| 11 | +import java.time.LocalDateTime; | |
| 12 | + | |
| 13 | +/** | |
| 14 | + * <p> | |
| 15 | + * 补货单 | |
| 16 | + * </p> | |
| 17 | + */ | |
| 18 | +@Data | |
| 19 | +@TableName("tbl_replenishment_order") | |
| 20 | +public class ReplenishmentOrder extends BaseEntity implements BaseDto { | |
| 21 | + | |
| 22 | + private static final long serialVersionUID = 1L; | |
| 23 | + | |
| 24 | + public static final String CACHE_NAME = "ReplenishmentOrder"; | |
| 25 | + | |
| 26 | + /** | |
| 27 | + * ID | |
| 28 | + */ | |
| 29 | + private String id; | |
| 30 | + | |
| 31 | + /** | |
| 32 | + * 编号 | |
| 33 | + */ | |
| 34 | + private String code; | |
| 35 | + | |
| 36 | + /** | |
| 37 | + * 分厂 | |
| 38 | + */ | |
| 39 | + private String workshopId; | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * 办事处 | |
| 43 | + */ | |
| 44 | + private String deptId; | |
| 45 | + | |
| 46 | + /** | |
| 47 | + * 购货单位 | |
| 48 | + */ | |
| 49 | + private String customerId; | |
| 50 | + | |
| 51 | + /** | |
| 52 | + * 原计划发货日期 | |
| 53 | + */ | |
| 54 | + private LocalDate originPlanShipDate; | |
| 55 | + | |
| 56 | + /** | |
| 57 | + * 订货单 | |
| 58 | + */ | |
| 59 | + private String purchaseOrderId; | |
| 60 | + | |
| 61 | + /** | |
| 62 | + * 状态 | |
| 63 | + */ | |
| 64 | + private String status; | |
| 65 | + | |
| 66 | + /** | |
| 67 | + * 创建人ID | |
| 68 | + */ | |
| 69 | + @TableField(fill = FieldFill.INSERT) | |
| 70 | + private String createById; | |
| 71 | + | |
| 72 | + /** | |
| 73 | + * 创建人 | |
| 74 | + */ | |
| 75 | + @TableField(fill = FieldFill.INSERT) | |
| 76 | + private String createBy; | |
| 77 | + | |
| 78 | + /** | |
| 79 | + * 更新人ID | |
| 80 | + */ | |
| 81 | + @TableField(fill = FieldFill.INSERT_UPDATE) | |
| 82 | + private String updateById; | |
| 83 | + | |
| 84 | + /** | |
| 85 | + * 更新人 | |
| 86 | + */ | |
| 87 | + @TableField(fill = FieldFill.INSERT_UPDATE) | |
| 88 | + private String updateBy; | |
| 89 | + | |
| 90 | + /** | |
| 91 | + * 创建时间 | |
| 92 | + */ | |
| 93 | + @TableField(fill = FieldFill.INSERT) | |
| 94 | + private LocalDateTime createTime; | |
| 95 | + | |
| 96 | + /** | |
| 97 | + * 更新时间 | |
| 98 | + */ | |
| 99 | + @TableField(fill = FieldFill.INSERT_UPDATE) | |
| 100 | + private LocalDateTime updateTime; | |
| 101 | + | |
| 102 | + /** | |
| 103 | + * 是否展示正式合同审核按钮(非持久化字段) | |
| 104 | + */ | |
| 105 | + @TableField(exist = false) | |
| 106 | + private Boolean showExamine; | |
| 107 | +} | |
| \ No newline at end of file | ... | ... |
| 1 | +package com.lframework.xingyun.sc.entity; | |
| 2 | + | |
| 3 | +import com.baomidou.mybatisplus.annotation.FieldFill; | |
| 4 | +import com.baomidou.mybatisplus.annotation.TableField; | |
| 5 | +import com.baomidou.mybatisplus.annotation.TableName; | |
| 6 | +import com.lframework.starter.web.core.dto.BaseDto; | |
| 7 | +import com.lframework.starter.web.core.entity.BaseEntity; | |
| 8 | +import lombok.Data; | |
| 9 | + | |
| 10 | +import java.math.BigDecimal; | |
| 11 | +import java.time.LocalDate; | |
| 12 | +import java.time.LocalDateTime; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * <p> | |
| 16 | + * 补货单物料行 | |
| 17 | + * </p> | |
| 18 | + */ | |
| 19 | +@Data | |
| 20 | +@TableName("tbl_replenishment_order_line") | |
| 21 | +public class ReplenishmentOrderLine extends BaseEntity implements BaseDto { | |
| 22 | + | |
| 23 | + private static final long serialVersionUID = 1L; | |
| 24 | + | |
| 25 | + public static final String CACHE_NAME = "ReplenishmentOrderLine"; | |
| 26 | + | |
| 27 | + /** | |
| 28 | + * ID | |
| 29 | + */ | |
| 30 | + private String id; | |
| 31 | + | |
| 32 | + /** | |
| 33 | + * 补货单 | |
| 34 | + */ | |
| 35 | + private String replenishmentOrderId; | |
| 36 | + | |
| 37 | + /** | |
| 38 | + * 订货单表物料行ID | |
| 39 | + */ | |
| 40 | + private String purchaseOrderLineId; | |
| 41 | + | |
| 42 | + /** | |
| 43 | + * 牌号 | |
| 44 | + */ | |
| 45 | + private String brand; | |
| 46 | + | |
| 47 | + /** | |
| 48 | + * 厚度 | |
| 49 | + */ | |
| 50 | + private BigDecimal thickness; | |
| 51 | + | |
| 52 | + /** | |
| 53 | + * 宽度 | |
| 54 | + */ | |
| 55 | + private BigDecimal width; | |
| 56 | + | |
| 57 | + /** | |
| 58 | + * 长度 | |
| 59 | + */ | |
| 60 | + private BigDecimal length; | |
| 61 | + | |
| 62 | + /** | |
| 63 | + * 状态 | |
| 64 | + */ | |
| 65 | + private String status; | |
| 66 | + | |
| 67 | + /** | |
| 68 | + * 需发(t) | |
| 69 | + */ | |
| 70 | + private BigDecimal quantity; | |
| 71 | + | |
| 72 | + /** | |
| 73 | + * 实发(t) | |
| 74 | + */ | |
| 75 | + private BigDecimal shippedQuantity; | |
| 76 | + | |
| 77 | + /** | |
| 78 | + * 需求补发(t/件) | |
| 79 | + */ | |
| 80 | + private BigDecimal supplementaryQuantity; | |
| 81 | + | |
| 82 | + /** | |
| 83 | + * 生产科确认交付日期 | |
| 84 | + */ | |
| 85 | + private LocalDate confirmedDeliveryDate; | |
| 86 | + | |
| 87 | + /** | |
| 88 | + * 备注 | |
| 89 | + */ | |
| 90 | + private String remarks; | |
| 91 | + | |
| 92 | + /** | |
| 93 | + * 排序 | |
| 94 | + */ | |
| 95 | + private Integer showOrder; | |
| 96 | + | |
| 97 | + /** | |
| 98 | + * 前端用ID | |
| 99 | + */ | |
| 100 | + private String itemId; | |
| 101 | + | |
| 102 | + /** | |
| 103 | + * 创建人ID | |
| 104 | + */ | |
| 105 | + @TableField(fill = FieldFill.INSERT) | |
| 106 | + private String createById; | |
| 107 | + | |
| 108 | + /** | |
| 109 | + * 创建人 | |
| 110 | + */ | |
| 111 | + @TableField(fill = FieldFill.INSERT) | |
| 112 | + private String createBy; | |
| 113 | + | |
| 114 | + /** | |
| 115 | + * 更新人ID | |
| 116 | + */ | |
| 117 | + @TableField(fill = FieldFill.INSERT_UPDATE) | |
| 118 | + private String updateById; | |
| 119 | + | |
| 120 | + /** | |
| 121 | + * 更新人 | |
| 122 | + */ | |
| 123 | + @TableField(fill = FieldFill.INSERT_UPDATE) | |
| 124 | + private String updateBy; | |
| 125 | + | |
| 126 | + /** | |
| 127 | + * 创建时间 | |
| 128 | + */ | |
| 129 | + @TableField(fill = FieldFill.INSERT) | |
| 130 | + private LocalDateTime createTime; | |
| 131 | + | |
| 132 | + /** | |
| 133 | + * 更新时间 | |
| 134 | + */ | |
| 135 | + @TableField(fill = FieldFill.INSERT_UPDATE) | |
| 136 | + private LocalDateTime updateTime; | |
| 137 | + | |
| 138 | +} | ... | ... |
| ... | ... | @@ -18,6 +18,8 @@ import com.lframework.xingyun.sc.service.customer.CustomerCreditHistoryService; |
| 18 | 18 | import com.lframework.xingyun.sc.service.customer.CustomerCreditService; |
| 19 | 19 | import com.lframework.xingyun.sc.service.customer.CustomerDevelopPlanService; |
| 20 | 20 | import com.lframework.xingyun.sc.service.order.*; |
| 21 | +import com.lframework.xingyun.sc.service.purchase.ReplenishmentOrderService; | |
| 22 | +import com.lframework.xingyun.sc.service.shipments.car.RequestCarTicketService; | |
| 21 | 23 | import com.lframework.xingyun.sc.service.shipments.car.DraftRequestCarTicketService; |
| 22 | 24 | import com.lframework.xingyun.sc.vo.customer.credit.QueryCorePersonnelHistoryVo; |
| 23 | 25 | import com.lframework.xingyun.sc.vo.customer.credit.UpdateCustomerCreditVo; |
| ... | ... | @@ -73,6 +75,10 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic |
| 73 | 75 | private SpecLockDelayApplicationService specLockDelayApplicationService; |
| 74 | 76 | @Resource |
| 75 | 77 | private DraftRequestCarTicketService draftRequestCarTicketService; |
| 78 | + @Resource | |
| 79 | + private RequestCarTicketService requestCarTicketService; | |
| 80 | + @Resource | |
| 81 | + private ReplenishmentOrderService replenishmentOrderService; | |
| 76 | 82 | |
| 77 | 83 | |
| 78 | 84 | /** |
| ... | ... | @@ -131,6 +137,9 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic |
| 131 | 137 | case "DRAFT_REQUEST_CAR": |
| 132 | 138 | handleDraftRequestCarTicketData(flowStatus, businessId); |
| 133 | 139 | break; |
| 140 | + case "RESTOCK_APPROVAL": | |
| 141 | + handleReplenishmentOrderStatus(flowStatus, businessId); | |
| 142 | + break; | |
| 134 | 143 | default: |
| 135 | 144 | break; |
| 136 | 145 | } |
| ... | ... | @@ -163,7 +172,7 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic |
| 163 | 172 | } |
| 164 | 173 | } |
| 165 | 174 | |
| 166 | - private void handleSpecLockDelayAuditData(String flowStatus, String businessId) { | |
| 175 | + private void handleReplenishmentOrderStatus(String flowStatus, String businessId) { | |
| 167 | 176 | if (FlowInstanceStatus.APPROVE_PASS.getCode().equals(flowStatus) |
| 168 | 177 | || FlowInstanceStatus.FINISH.getCode().equals(flowStatus)) { |
| 169 | 178 | specLockDelayApplicationService.updateAuditStatus(businessId, "PASS"); |
| ... | ... | @@ -176,6 +185,19 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic |
| 176 | 185 | } |
| 177 | 186 | } |
| 178 | 187 | |
| 188 | + private void handleSpecLockDelayAuditData(String flowStatus, String businessId) { | |
| 189 | + if (FlowInstanceStatus.APPROVE_PASS.getCode().equals(flowStatus) | |
| 190 | + || FlowInstanceStatus.FINISH.getCode().equals(flowStatus)) { | |
| 191 | + replenishmentOrderService.updateStatus(businessId, "PASS"); | |
| 192 | + } else if (FlowInstanceStatus.REVOKE.getCode().equals(flowStatus) | |
| 193 | + || FlowInstanceStatus.REFUSE.getCode().equals(flowStatus) | |
| 194 | + || FlowInstanceStatus.TERMINATION.getCode().equals(flowStatus)) { | |
| 195 | + replenishmentOrderService.updateStatus(businessId, "REFUSE"); | |
| 196 | + } else if (FlowInstanceStatus.UNDO.getCode().equals(flowStatus)) { | |
| 197 | + replenishmentOrderService.updateStatus(businessId, "REFUSE"); | |
| 198 | + } | |
| 199 | + } | |
| 200 | + | |
| 179 | 201 | /** |
| 180 | 202 | * 客户开发业务数据处理 |
| 181 | 203 | * | ... | ... |
| ... | ... | @@ -8,8 +8,10 @@ import com.lframework.starter.web.core.utils.JsonUtil; |
| 8 | 8 | import com.lframework.starter.web.inner.components.oplog.OtherOpLogType; |
| 9 | 9 | import com.lframework.xingyun.sc.service.customer.CustomerCreditService; |
| 10 | 10 | import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService; |
| 11 | +import com.lframework.xingyun.sc.service.purchase.ReplenishmentOrderService; | |
| 11 | 12 | import com.lframework.xingyun.sc.vo.customer.credit.*; |
| 12 | 13 | import com.lframework.xingyun.sc.vo.order.UpdatePurchaseOrderInfoVo; |
| 14 | +import com.lframework.xingyun.sc.vo.purchase.UpdateReplenishmentOrderVo; | |
| 13 | 15 | import org.springframework.stereotype.Service; |
| 14 | 16 | import org.springframework.transaction.annotation.Transactional; |
| 15 | 17 | |
| ... | ... | @@ -23,6 +25,8 @@ public class FlowTaskServiceImpl implements FlowTaskService { |
| 23 | 25 | private CustomerCreditService customerCreditService; |
| 24 | 26 | @Resource |
| 25 | 27 | private PurchaseOrderInfoService purchaseOrderInfoService; |
| 28 | + @Resource | |
| 29 | + private ReplenishmentOrderService replenishmentOrderService; | |
| 26 | 30 | |
| 27 | 31 | |
| 28 | 32 | @OpLog(type = OtherOpLogType.class, name = "修改客户资信,ID:{}", params = {"#id"}) |
| ... | ... | @@ -59,4 +63,20 @@ public class FlowTaskServiceImpl implements FlowTaskService { |
| 59 | 63 | e.printStackTrace(); |
| 60 | 64 | } |
| 61 | 65 | } |
| 66 | + | |
| 67 | + @OpLog(type = OtherOpLogType.class, name = "修改补货单,ID:{}", params = {"#id"}) | |
| 68 | + @Transactional(rollbackFor = Exception.class) | |
| 69 | + @Override | |
| 70 | + public void updateReplenishmentOrderByMap(Map<String, Object> map) { | |
| 71 | + try { | |
| 72 | + // 创建 ObjectMapper 实例 | |
| 73 | + ObjectMapper objectMapper = new ObjectMapper(); | |
| 74 | + //先将 Map 序列化为 JSON 字符串,再反序列化为目标对象 | |
| 75 | + String json = objectMapper.writeValueAsString(map); | |
| 76 | + UpdateReplenishmentOrderVo updateReplenishmentOrderVo = JsonUtil.parseObject(json, UpdateReplenishmentOrderVo.class); | |
| 77 | + replenishmentOrderService.updateFlowInstance(updateReplenishmentOrderVo); | |
| 78 | + } catch (JsonProcessingException e) { | |
| 79 | + e.printStackTrace(); | |
| 80 | + } | |
| 81 | + } | |
| 62 | 82 | } | ... | ... |
| 1 | +package com.lframework.xingyun.sc.impl.purchase; | |
| 2 | + | |
| 3 | +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | |
| 4 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |
| 5 | +import com.github.pagehelper.PageInfo; | |
| 6 | +import com.lframework.starter.common.exceptions.impl.DefaultClientException; | |
| 7 | +import com.lframework.starter.common.utils.Assert; | |
| 8 | +import com.lframework.starter.common.utils.ObjectUtil; | |
| 9 | +import com.lframework.starter.web.core.annotations.oplog.OpLog; | |
| 10 | +import com.lframework.starter.web.core.components.resp.PageResult; | |
| 11 | +import com.lframework.starter.web.core.impl.BaseMpServiceImpl; | |
| 12 | +import com.lframework.starter.web.core.utils.IdUtil; | |
| 13 | +import com.lframework.starter.web.core.utils.OpLogUtil; | |
| 14 | +import com.lframework.starter.web.core.utils.PageHelperUtil; | |
| 15 | +import com.lframework.starter.web.core.utils.PageResultUtil; | |
| 16 | +import com.lframework.starter.web.inner.components.oplog.OtherOpLogType; | |
| 17 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrderLine; | |
| 18 | +import com.lframework.xingyun.sc.mappers.ReplenishmentOrderLineMapper; | |
| 19 | +import com.lframework.xingyun.sc.service.purchase.ReplenishmentOrderLineService; | |
| 20 | +import com.lframework.xingyun.sc.vo.purchase.CreateReplenishmentOrderLineVo; | |
| 21 | +import com.lframework.xingyun.sc.vo.purchase.QueryReplenishmentOrderLineVo; | |
| 22 | +import com.lframework.xingyun.sc.vo.purchase.UpdateReplenishmentOrderLineVo; | |
| 23 | +import org.springframework.cache.annotation.CacheEvict; | |
| 24 | +import org.springframework.cache.annotation.Cacheable; | |
| 25 | +import org.springframework.stereotype.Service; | |
| 26 | +import org.springframework.transaction.annotation.Transactional; | |
| 27 | + | |
| 28 | +import java.io.Serializable; | |
| 29 | +import java.util.List; | |
| 30 | + | |
| 31 | +@Service | |
| 32 | +public class ReplenishmentOrderLineServiceImpl extends BaseMpServiceImpl<ReplenishmentOrderLineMapper, ReplenishmentOrderLine> implements ReplenishmentOrderLineService { | |
| 33 | + | |
| 34 | + @Override | |
| 35 | + public PageResult<ReplenishmentOrderLine> query(Integer pageIndex, Integer pageSize, QueryReplenishmentOrderLineVo vo) { | |
| 36 | + | |
| 37 | + Assert.greaterThanZero(pageIndex); | |
| 38 | + Assert.greaterThanZero(pageSize); | |
| 39 | + | |
| 40 | + PageHelperUtil.startPage(pageIndex, pageSize); | |
| 41 | + List<ReplenishmentOrderLine> datas = this.query(vo); | |
| 42 | + | |
| 43 | + return PageResultUtil.convert(new PageInfo<>(datas)); | |
| 44 | + } | |
| 45 | + | |
| 46 | + @Override | |
| 47 | + public List<ReplenishmentOrderLine> query(QueryReplenishmentOrderLineVo vo) { | |
| 48 | + | |
| 49 | + return getBaseMapper().query(vo); | |
| 50 | + } | |
| 51 | + | |
| 52 | + @Cacheable(value = ReplenishmentOrderLine.CACHE_NAME, key = "@cacheVariables.tenantId() + #id", unless = "#result == null") | |
| 53 | + @Override | |
| 54 | + public ReplenishmentOrderLine findById(String id) { | |
| 55 | + | |
| 56 | + return getBaseMapper().selectById(id); | |
| 57 | + } | |
| 58 | + | |
| 59 | + @OpLog(type = OtherOpLogType.class, name = "新增补货单物料行,ID:{}", params = {"#id"}) | |
| 60 | + @Transactional(rollbackFor = Exception.class) | |
| 61 | + @Override | |
| 62 | + public String create(CreateReplenishmentOrderLineVo vo) { | |
| 63 | + | |
| 64 | + ReplenishmentOrderLine data = new ReplenishmentOrderLine(); | |
| 65 | + data.setId(IdUtil.getUUID()); | |
| 66 | + data.setReplenishmentOrderId(vo.getReplenishmentOrderId()); | |
| 67 | + data.setPurchaseOrderLineId(vo.getPurchaseOrderLineId()); | |
| 68 | + data.setBrand(vo.getBrand()); | |
| 69 | + data.setThickness(vo.getThickness()); | |
| 70 | + data.setWidth(vo.getWidth()); | |
| 71 | + data.setLength(vo.getLength()); | |
| 72 | + data.setStatus(vo.getStatus()); | |
| 73 | + data.setQuantity(vo.getQuantity()); | |
| 74 | + data.setShippedQuantity(vo.getShippedQuantity()); | |
| 75 | + data.setSupplementaryQuantity(vo.getSupplementaryQuantity()); | |
| 76 | + data.setConfirmedDeliveryDate(vo.getConfirmedDeliveryDate()); | |
| 77 | + data.setRemarks(vo.getRemarks()); | |
| 78 | + data.setShowOrder(vo.getShowOrder()); | |
| 79 | + data.setItemId(vo.getItemId()); | |
| 80 | + | |
| 81 | + getBaseMapper().insert(data); | |
| 82 | + | |
| 83 | + OpLogUtil.setVariable("id", data.getId()); | |
| 84 | + OpLogUtil.setExtra(vo); | |
| 85 | + | |
| 86 | + return data.getId(); | |
| 87 | + } | |
| 88 | + | |
| 89 | + @OpLog(type = OtherOpLogType.class, name = "修改补货单物料行,ID:{}", params = {"#id"}) | |
| 90 | + @Transactional(rollbackFor = Exception.class) | |
| 91 | + @Override | |
| 92 | + public void update(UpdateReplenishmentOrderLineVo vo) { | |
| 93 | + | |
| 94 | + ReplenishmentOrderLine data = getBaseMapper().selectById(vo.getId()); | |
| 95 | + if (ObjectUtil.isNull(data)) { | |
| 96 | + throw new DefaultClientException("补货单物料行不存在!"); | |
| 97 | + } | |
| 98 | + | |
| 99 | + LambdaUpdateWrapper<ReplenishmentOrderLine> updateWrapper = Wrappers.lambdaUpdate(ReplenishmentOrderLine.class) | |
| 100 | + .set(ReplenishmentOrderLine::getReplenishmentOrderId, vo.getReplenishmentOrderId()) | |
| 101 | + .set(ReplenishmentOrderLine::getPurchaseOrderLineId, vo.getPurchaseOrderLineId()) | |
| 102 | + .set(ReplenishmentOrderLine::getBrand, vo.getBrand()) | |
| 103 | + .set(ReplenishmentOrderLine::getThickness, vo.getThickness()) | |
| 104 | + .set(ReplenishmentOrderLine::getWidth, vo.getWidth()) | |
| 105 | + .set(ReplenishmentOrderLine::getLength, vo.getLength()) | |
| 106 | + .set(ReplenishmentOrderLine::getStatus, vo.getStatus()) | |
| 107 | + .set(ReplenishmentOrderLine::getQuantity, vo.getQuantity()) | |
| 108 | + .set(ReplenishmentOrderLine::getShippedQuantity, vo.getShippedQuantity()) | |
| 109 | + .set(ReplenishmentOrderLine::getSupplementaryQuantity, vo.getSupplementaryQuantity()) | |
| 110 | + .set(ReplenishmentOrderLine::getConfirmedDeliveryDate, vo.getConfirmedDeliveryDate()) | |
| 111 | + .set(ReplenishmentOrderLine::getRemarks, vo.getRemarks()) | |
| 112 | + .set(ReplenishmentOrderLine::getShowOrder, vo.getShowOrder()) | |
| 113 | + .set(ReplenishmentOrderLine::getItemId, vo.getItemId()) | |
| 114 | + .eq(ReplenishmentOrderLine::getId, vo.getId()); | |
| 115 | + | |
| 116 | + getBaseMapper().update(updateWrapper); | |
| 117 | + | |
| 118 | + OpLogUtil.setVariable("id", data.getId()); | |
| 119 | + OpLogUtil.setExtra(vo); | |
| 120 | + } | |
| 121 | + | |
| 122 | + @CacheEvict(value = ReplenishmentOrderLine.CACHE_NAME, key = "@cacheVariables.tenantId() + #key") | |
| 123 | + @Override | |
| 124 | + public void cleanCacheByKey(Serializable key) { | |
| 125 | + | |
| 126 | + } | |
| 127 | +} | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/impl/purchase/ReplenishmentOrderServiceImpl.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.impl.purchase; | |
| 2 | + | |
| 3 | +import com.baomidou.mybatisplus.core.conditions.Wrapper; | |
| 4 | +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | |
| 5 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |
| 6 | +import com.github.pagehelper.PageInfo; | |
| 7 | +import com.lframework.starter.bpm.dto.FlowTaskDto; | |
| 8 | +import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper; | |
| 9 | +import com.lframework.starter.bpm.service.FlowInstanceWrapperService; | |
| 10 | +import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo; | |
| 11 | +import com.lframework.starter.common.exceptions.impl.DefaultClientException; | |
| 12 | +import com.lframework.starter.common.utils.Assert; | |
| 13 | +import com.lframework.starter.common.utils.ObjectUtil; | |
| 14 | +import com.lframework.starter.web.core.annotations.oplog.OpLog; | |
| 15 | +import com.lframework.starter.web.core.components.resp.PageResult; | |
| 16 | +import com.lframework.starter.web.core.components.security.SecurityUtil; | |
| 17 | +import com.lframework.starter.web.core.impl.BaseMpServiceImpl; | |
| 18 | +import com.lframework.starter.web.core.utils.IdUtil; | |
| 19 | +import com.lframework.starter.web.core.utils.OpLogUtil; | |
| 20 | +import com.lframework.starter.web.core.utils.PageHelperUtil; | |
| 21 | +import com.lframework.starter.web.core.utils.PageResultUtil; | |
| 22 | +import com.lframework.starter.web.inner.components.oplog.OtherOpLogType; | |
| 23 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrder; | |
| 24 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrderLine; | |
| 25 | +import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; | |
| 26 | +import com.lframework.xingyun.sc.mappers.ReplenishmentOrderMapper; | |
| 27 | +import com.lframework.xingyun.sc.service.purchase.ReplenishmentOrderLineService; | |
| 28 | +import com.lframework.xingyun.sc.service.purchase.ReplenishmentOrderService; | |
| 29 | +import com.lframework.xingyun.sc.vo.purchase.*; | |
| 30 | +import org.apache.commons.collections4.CollectionUtils; | |
| 31 | +import org.apache.commons.lang3.StringUtils; | |
| 32 | +import org.springframework.cache.annotation.CacheEvict; | |
| 33 | +import org.springframework.cache.annotation.Cacheable; | |
| 34 | +import org.springframework.stereotype.Service; | |
| 35 | +import org.springframework.transaction.annotation.Transactional; | |
| 36 | + | |
| 37 | +import javax.annotation.Resource; | |
| 38 | +import java.io.Serializable; | |
| 39 | +import java.util.ArrayList; | |
| 40 | +import java.util.List; | |
| 41 | +import java.util.stream.Collectors; | |
| 42 | + | |
| 43 | +@Service | |
| 44 | +public class ReplenishmentOrderServiceImpl extends BaseMpServiceImpl<ReplenishmentOrderMapper, ReplenishmentOrder> implements ReplenishmentOrderService { | |
| 45 | + | |
| 46 | + private static final String RESTOCK_APPROVAL_FLAG = "RESTOCK_APPROVAL"; // 补货单审批 | |
| 47 | + | |
| 48 | + @Resource | |
| 49 | + private ReplenishmentOrderLineService replenishmentOrderLineService; | |
| 50 | + @Resource | |
| 51 | + private FlowInstanceWrapperService flowInstanceWrapperService; | |
| 52 | + @Resource | |
| 53 | + private FlowTaskWrapperMapper flowTaskWrapperMapper; | |
| 54 | + | |
| 55 | + @Override | |
| 56 | + public PageResult<ReplenishmentOrder> query(Integer pageIndex, Integer pageSize, QueryReplenishmentOrderVo vo) { | |
| 57 | + | |
| 58 | + Assert.greaterThanZero(pageIndex); | |
| 59 | + Assert.greaterThanZero(pageSize); | |
| 60 | + | |
| 61 | + PageHelperUtil.startPage(pageIndex, pageSize); | |
| 62 | + List<ReplenishmentOrder> datas = this.query(vo); | |
| 63 | + if (CollectionUtils.isNotEmpty(datas)) { | |
| 64 | + // 获取当前人员的待办任务数据 | |
| 65 | + List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId()); | |
| 66 | + if (CollectionUtils.isNotEmpty(flowTaskList)) { | |
| 67 | + List<String> businessIds = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList()); | |
| 68 | + datas.forEach(replenishmentOrder -> { | |
| 69 | + replenishmentOrder.setShowExamine(businessIds.contains(replenishmentOrder.getId())); | |
| 70 | + }); | |
| 71 | + } | |
| 72 | + } | |
| 73 | + | |
| 74 | + return PageResultUtil.convert(new PageInfo<>(datas)); | |
| 75 | + } | |
| 76 | + | |
| 77 | + @Override | |
| 78 | + public List<ReplenishmentOrder> query(QueryReplenishmentOrderVo vo) { | |
| 79 | + | |
| 80 | + return getBaseMapper().query(vo); | |
| 81 | + } | |
| 82 | + | |
| 83 | + @Cacheable(value = ReplenishmentOrder.CACHE_NAME, key = "@cacheVariables.tenantId() + #id", unless = "#result == null") | |
| 84 | + @Override | |
| 85 | + public ReplenishmentOrder findById(String id) { | |
| 86 | + | |
| 87 | + return getBaseMapper().selectById(id); | |
| 88 | + } | |
| 89 | + | |
| 90 | + @OpLog(type = OtherOpLogType.class, name = "新增补货单,ID:{}", params = {"#id"}) | |
| 91 | + @Transactional(rollbackFor = Exception.class) | |
| 92 | + @Override | |
| 93 | + public String create(CreateReplenishmentOrderVo vo) { | |
| 94 | + | |
| 95 | + if (vo == null || CollectionUtils.isEmpty(vo.getReplenishmentOrderLineList())) { | |
| 96 | + throw new DefaultClientException("参数错误!"); | |
| 97 | + } | |
| 98 | + | |
| 99 | + | |
| 100 | + ReplenishmentOrder data = new ReplenishmentOrder(); | |
| 101 | + data.setId(IdUtil.getUUID()); | |
| 102 | + data.setCode(vo.getCode()); | |
| 103 | + data.setWorkshopId(vo.getWorkshopId()); | |
| 104 | + data.setDeptId(vo.getDeptId()); | |
| 105 | + data.setCustomerId(vo.getCustomerId()); | |
| 106 | + data.setOriginPlanShipDate(vo.getOriginPlanShipDate()); | |
| 107 | + data.setPurchaseOrderId(vo.getPurchaseOrderId()); | |
| 108 | + data.setStatus("AUDIT"); | |
| 109 | + | |
| 110 | + getBaseMapper().insert(data); | |
| 111 | + | |
| 112 | + for (int index = 0; index < vo.getReplenishmentOrderLineList().size(); index++) { | |
| 113 | + CreateReplenishmentOrderLineVo lineVo = vo.getReplenishmentOrderLineList().get(index); | |
| 114 | + lineVo.setShowOrder(index); | |
| 115 | + lineVo.setReplenishmentOrderId(data.getId()); | |
| 116 | + replenishmentOrderLineService.create(lineVo); | |
| 117 | + } | |
| 118 | + | |
| 119 | + OpLogUtil.setVariable("id", data.getId()); | |
| 120 | + OpLogUtil.setExtra(vo); | |
| 121 | + | |
| 122 | + // 开启审核 | |
| 123 | + flowInstanceWrapperService.startInstance(RESTOCK_APPROVAL_FLAG, data.getId(), RESTOCK_APPROVAL_FLAG, data); | |
| 124 | + | |
| 125 | + return data.getId(); | |
| 126 | + } | |
| 127 | + | |
| 128 | + @OpLog(type = OtherOpLogType.class, name = "修改补货单,ID:{}", params = {"#id"}) | |
| 129 | + @Transactional(rollbackFor = Exception.class) | |
| 130 | + @Override | |
| 131 | + public void update(UpdateReplenishmentOrderVo vo) { | |
| 132 | + | |
| 133 | + ReplenishmentOrder data = getBaseMapper().selectById(vo.getId()); | |
| 134 | + if (ObjectUtil.isNull(data)) { | |
| 135 | + throw new DefaultClientException("补货单不存在!"); | |
| 136 | + } | |
| 137 | + | |
| 138 | + if (!CustomerDevelopStatus.REFUSE.name().equals(data.getStatus())) { | |
| 139 | + throw new DefaultClientException(CustomerDevelopStatus.getDescByNameSafe(data.getStatus()) + "的补货单不允许修改!"); | |
| 140 | + } | |
| 141 | + | |
| 142 | + LambdaUpdateWrapper<ReplenishmentOrder> updateWrapper = Wrappers.lambdaUpdate(ReplenishmentOrder.class) | |
| 143 | + .set(ReplenishmentOrder::getCode, vo.getCode()) | |
| 144 | + .set(ReplenishmentOrder::getWorkshopId, vo.getWorkshopId()) | |
| 145 | + .set(ReplenishmentOrder::getDeptId, vo.getDeptId()) | |
| 146 | + .set(ReplenishmentOrder::getCustomerId, vo.getCustomerId()) | |
| 147 | + .set(ReplenishmentOrder::getOriginPlanShipDate, vo.getOriginPlanShipDate()) | |
| 148 | + .set(ReplenishmentOrder::getPurchaseOrderId, vo.getPurchaseOrderId()) | |
| 149 | + .eq(ReplenishmentOrder::getId, vo.getId()); | |
| 150 | + | |
| 151 | + getBaseMapper().update(updateWrapper); | |
| 152 | + | |
| 153 | + Wrapper<ReplenishmentOrderLine> lineWrapper = Wrappers.lambdaQuery(ReplenishmentOrderLine.class) | |
| 154 | + .eq(ReplenishmentOrderLine::getReplenishmentOrderId, data.getId()); | |
| 155 | + List<ReplenishmentOrderLine> oldReplenishmentOrderLineList = replenishmentOrderLineService.list(lineWrapper); | |
| 156 | + List<String> oldLineIdList = CollectionUtils.emptyIfNull(oldReplenishmentOrderLineList) | |
| 157 | + .stream() | |
| 158 | + .map(ReplenishmentOrderLine::getId).collect(Collectors.toList()); | |
| 159 | + List<String> existIdList = new ArrayList<>(oldLineIdList.size()); | |
| 160 | + for (int index = 0; index < vo.getReplenishmentOrderLineList().size(); index++) { | |
| 161 | + UpdateReplenishmentOrderLineVo updateReplenishmentOrderLineVo = vo.getReplenishmentOrderLineList().get(index); | |
| 162 | + updateReplenishmentOrderLineVo.setShowOrder(index); | |
| 163 | + if (StringUtils.isNotBlank(updateReplenishmentOrderLineVo.getId())) { | |
| 164 | + existIdList.add(updateReplenishmentOrderLineVo.getId()); | |
| 165 | + replenishmentOrderLineService.update(updateReplenishmentOrderLineVo); | |
| 166 | + } else { | |
| 167 | + updateReplenishmentOrderLineVo.setReplenishmentOrderId(data.getId()); | |
| 168 | + CreateReplenishmentOrderLineVo createReplenishmentOrderLineVo = new CreateReplenishmentOrderLineVo(); | |
| 169 | + createReplenishmentOrderLineVo.setReplenishmentOrderId(updateReplenishmentOrderLineVo.getReplenishmentOrderId()); | |
| 170 | + createReplenishmentOrderLineVo.setPurchaseOrderLineId(updateReplenishmentOrderLineVo.getPurchaseOrderLineId()); | |
| 171 | + createReplenishmentOrderLineVo.setBrand(updateReplenishmentOrderLineVo.getBrand()); | |
| 172 | + createReplenishmentOrderLineVo.setThickness(updateReplenishmentOrderLineVo.getThickness()); | |
| 173 | + createReplenishmentOrderLineVo.setWidth(updateReplenishmentOrderLineVo.getWidth()); | |
| 174 | + createReplenishmentOrderLineVo.setLength(updateReplenishmentOrderLineVo.getLength()); | |
| 175 | + createReplenishmentOrderLineVo.setStatus(updateReplenishmentOrderLineVo.getStatus()); | |
| 176 | + createReplenishmentOrderLineVo.setQuantity(updateReplenishmentOrderLineVo.getQuantity()); | |
| 177 | + createReplenishmentOrderLineVo.setShippedQuantity(updateReplenishmentOrderLineVo.getShippedQuantity()); | |
| 178 | + createReplenishmentOrderLineVo.setSupplementaryQuantity(updateReplenishmentOrderLineVo.getSupplementaryQuantity()); | |
| 179 | + createReplenishmentOrderLineVo.setRemarks(updateReplenishmentOrderLineVo.getRemarks()); | |
| 180 | + createReplenishmentOrderLineVo.setItemId(updateReplenishmentOrderLineVo.getItemId()); | |
| 181 | + createReplenishmentOrderLineVo.setShowOrder(updateReplenishmentOrderLineVo.getShowOrder()); | |
| 182 | + replenishmentOrderLineService.create(createReplenishmentOrderLineVo); | |
| 183 | + } | |
| 184 | + } | |
| 185 | + | |
| 186 | + List<String> needDeleteLineIdList = oldLineIdList.stream() | |
| 187 | + .filter(oldLineId -> !existIdList.contains(oldLineId)) | |
| 188 | + .collect(Collectors.toList()); | |
| 189 | + if (CollectionUtils.isNotEmpty(needDeleteLineIdList)) { | |
| 190 | + replenishmentOrderLineService.removeByIds(needDeleteLineIdList); | |
| 191 | + } | |
| 192 | + | |
| 193 | + OpLogUtil.setVariable("id", data.getId()); | |
| 194 | + OpLogUtil.setExtra(vo); | |
| 195 | + | |
| 196 | + // 开启审核 | |
| 197 | + flowInstanceWrapperService.startInstance(RESTOCK_APPROVAL_FLAG, data.getId(), RESTOCK_APPROVAL_FLAG, data); | |
| 198 | + } | |
| 199 | + | |
| 200 | + @OpLog(type = OtherOpLogType.class, name = "取消补货单,ID:{}", params = {"#id"}) | |
| 201 | + @Transactional(rollbackFor = Exception.class) | |
| 202 | + @Override | |
| 203 | + public void cancel(String id) { | |
| 204 | + ReplenishmentOrder data = getBaseMapper().selectById(id); | |
| 205 | + if (ObjectUtil.isNull(data)) { | |
| 206 | + throw new DefaultClientException("补货单不存在!"); | |
| 207 | + } | |
| 208 | + | |
| 209 | + if (CustomerDevelopStatus.CANCEL.name().equals(data.getStatus())) { | |
| 210 | + throw new DefaultClientException("补货单已取消!"); | |
| 211 | + } | |
| 212 | + | |
| 213 | + if (!CustomerDevelopStatus.REFUSE.name().equals(data.getStatus())) { | |
| 214 | + throw new DefaultClientException(CustomerDevelopStatus.getDescByNameSafe(data.getStatus()) + "的补货单不允许取消!"); | |
| 215 | + } | |
| 216 | + | |
| 217 | + Wrapper<ReplenishmentOrder> wrapper = Wrappers.lambdaUpdate(ReplenishmentOrder.class) | |
| 218 | + .set(ReplenishmentOrder::getStatus, CustomerDevelopStatus.CANCEL.name()) | |
| 219 | + .eq(ReplenishmentOrder::getId, id); | |
| 220 | + | |
| 221 | + getBaseMapper().update(wrapper); | |
| 222 | + | |
| 223 | + OpLogUtil.setVariable("id", id); | |
| 224 | + OpLogUtil.setExtra(data); | |
| 225 | + } | |
| 226 | + | |
| 227 | + @OpLog(type = OtherOpLogType.class, name = "补货单填写补货时间,ID:{}", params = {"#id"}) | |
| 228 | + @Transactional(rollbackFor = Exception.class) | |
| 229 | + @Override | |
| 230 | + public void fillRestockTime(UpdateReplenishmentOrderVo vo) { | |
| 231 | + | |
| 232 | + ReplenishmentOrder data = getBaseMapper().selectById(vo.getId()); | |
| 233 | + if (ObjectUtil.isNull(data)) { | |
| 234 | + throw new DefaultClientException("补货单不存在!"); | |
| 235 | + } | |
| 236 | + | |
| 237 | + if (!CustomerDevelopStatus.PASS.name().equals(data.getStatus())) { | |
| 238 | + throw new DefaultClientException("只有审核通过的补货单才能填写补货时间"); | |
| 239 | + } | |
| 240 | + | |
| 241 | + vo.getReplenishmentOrderLineList().forEach(updateReplenishmentOrderLineVo -> { | |
| 242 | + Wrapper<ReplenishmentOrderLine> updateWrapper = Wrappers.lambdaUpdate(ReplenishmentOrderLine.class) | |
| 243 | + .set(ReplenishmentOrderLine::getConfirmedDeliveryDate, updateReplenishmentOrderLineVo.getConfirmedDeliveryDate()) | |
| 244 | + .eq(ReplenishmentOrderLine::getId, updateReplenishmentOrderLineVo.getId()); | |
| 245 | + | |
| 246 | + replenishmentOrderLineService.update(updateWrapper); | |
| 247 | + }); | |
| 248 | + | |
| 249 | + OpLogUtil.setVariable("id", vo.getId()); | |
| 250 | + OpLogUtil.setExtra(data); | |
| 251 | + } | |
| 252 | + | |
| 253 | + @Override | |
| 254 | + @OpLog(type = OtherOpLogType.class, name = "补货单审批完成,ID:{}, 审批状态:{}", params = {"#id", "#status"}) | |
| 255 | + @Transactional(rollbackFor = Exception.class) | |
| 256 | + public void updateStatus(String id, String status) { | |
| 257 | + if (StringUtils.isBlank(id) || StringUtils.isBlank(status)) { | |
| 258 | + return; | |
| 259 | + } | |
| 260 | + | |
| 261 | + Wrapper<ReplenishmentOrder> wrapper = Wrappers.lambdaUpdate(ReplenishmentOrder.class) | |
| 262 | + .set(ReplenishmentOrder::getStatus, status) | |
| 263 | + .eq(ReplenishmentOrder::getId, id); | |
| 264 | + | |
| 265 | + getBaseMapper().update(wrapper); | |
| 266 | + | |
| 267 | + UpdateReplenishmentOrderVo vo = new UpdateReplenishmentOrderVo(); | |
| 268 | + vo.setId(id); | |
| 269 | + vo.setStatus(status); | |
| 270 | + | |
| 271 | + OpLogUtil.setVariable("id", vo.getId()); | |
| 272 | + OpLogUtil.setExtra(vo); | |
| 273 | + | |
| 274 | + cleanCacheByKey(id); | |
| 275 | + } | |
| 276 | + | |
| 277 | + @Override | |
| 278 | + @Transactional(rollbackFor = Exception.class) | |
| 279 | + public void updateFlowInstance(UpdateReplenishmentOrderVo vo) { | |
| 280 | + ReplenishmentOrder data = getBaseMapper().selectById(vo.getId()); | |
| 281 | + if (ObjectUtil.isNull(data)) { | |
| 282 | + throw new DefaultClientException("补货单不存在!"); | |
| 283 | + } | |
| 284 | + | |
| 285 | + vo.getReplenishmentOrderLineList().forEach(updateReplenishmentOrderLineVo -> { | |
| 286 | + Wrapper<ReplenishmentOrderLine> lineWrapper = Wrappers.lambdaUpdate(ReplenishmentOrderLine.class) | |
| 287 | + .set(ReplenishmentOrderLine::getQuantity, updateReplenishmentOrderLineVo.getQuantity()) | |
| 288 | + .set(ReplenishmentOrderLine::getShippedQuantity, updateReplenishmentOrderLineVo.getShippedQuantity()) | |
| 289 | + .set(ReplenishmentOrderLine::getSupplementaryQuantity, updateReplenishmentOrderLineVo.getSupplementaryQuantity()) | |
| 290 | + .eq(ReplenishmentOrderLine::getId, updateReplenishmentOrderLineVo.getId()); | |
| 291 | + | |
| 292 | + replenishmentOrderLineService.update(lineWrapper); | |
| 293 | + }); | |
| 294 | + | |
| 295 | + OpLogUtil.setVariable("id", vo.getId()); | |
| 296 | + OpLogUtil.setExtra(vo); | |
| 297 | + | |
| 298 | + cleanCacheByKey(vo.getId()); | |
| 299 | + } | |
| 300 | + | |
| 301 | + @CacheEvict(value = ReplenishmentOrder.CACHE_NAME, key = "@cacheVariables.tenantId() + #key") | |
| 302 | + @Override | |
| 303 | + public void cleanCacheByKey(Serializable key) { | |
| 304 | + | |
| 305 | + } | |
| 306 | +} | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/mappers/ReplenishmentOrderLineMapper.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.mappers; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.mapper.BaseMapper; | |
| 4 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrderLine; | |
| 5 | +import com.lframework.xingyun.sc.vo.purchase.QueryReplenishmentOrderLineVo; | |
| 6 | +import org.apache.ibatis.annotations.Param; | |
| 7 | + | |
| 8 | +import java.util.List; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * <p> | |
| 12 | + * 补货单物料行 Mapper 接口 | |
| 13 | + * </p> | |
| 14 | + */ | |
| 15 | +public interface ReplenishmentOrderLineMapper extends BaseMapper<ReplenishmentOrderLine> { | |
| 16 | + | |
| 17 | + /** | |
| 18 | + * 查询列表 | |
| 19 | + * | |
| 20 | + * @param vo | |
| 21 | + * @return | |
| 22 | + */ | |
| 23 | + List<ReplenishmentOrderLine> query(@Param("vo") QueryReplenishmentOrderLineVo vo); | |
| 24 | +} | ... | ... |
| 1 | +package com.lframework.xingyun.sc.mappers; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.mapper.BaseMapper; | |
| 4 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrder; | |
| 5 | +import com.lframework.xingyun.sc.vo.purchase.QueryReplenishmentOrderVo; | |
| 6 | +import org.apache.ibatis.annotations.Param; | |
| 7 | + | |
| 8 | +import java.util.List; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * <p> | |
| 12 | + * 补货单 Mapper 接口 | |
| 13 | + * </p> | |
| 14 | + */ | |
| 15 | +public interface ReplenishmentOrderMapper extends BaseMapper<ReplenishmentOrder> { | |
| 16 | + | |
| 17 | + /** | |
| 18 | + * 查询列表 | |
| 19 | + * | |
| 20 | + * @param vo | |
| 21 | + * @return | |
| 22 | + */ | |
| 23 | + List<ReplenishmentOrder> query(@Param("vo") QueryReplenishmentOrderVo vo); | |
| 24 | +} | ... | ... |
| 1 | +package com.lframework.xingyun.sc.service.purchase; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.components.resp.PageResult; | |
| 4 | +import com.lframework.starter.web.core.service.BaseMpService; | |
| 5 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrderLine; | |
| 6 | +import com.lframework.xingyun.sc.vo.purchase.CreateReplenishmentOrderLineVo; | |
| 7 | +import com.lframework.xingyun.sc.vo.purchase.QueryReplenishmentOrderLineVo; | |
| 8 | +import com.lframework.xingyun.sc.vo.purchase.UpdateReplenishmentOrderLineVo; | |
| 9 | + | |
| 10 | +import java.util.List; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * 补货单物料行 Service | |
| 14 | + */ | |
| 15 | +public interface ReplenishmentOrderLineService extends BaseMpService<ReplenishmentOrderLine> { | |
| 16 | + | |
| 17 | + /** | |
| 18 | + * 查询列表 | |
| 19 | + * | |
| 20 | + * @return | |
| 21 | + */ | |
| 22 | + PageResult<ReplenishmentOrderLine> query(Integer pageIndex, Integer pageSize, QueryReplenishmentOrderLineVo vo); | |
| 23 | + | |
| 24 | + /** | |
| 25 | + * 查询列表 | |
| 26 | + * | |
| 27 | + * @param vo | |
| 28 | + * @return | |
| 29 | + */ | |
| 30 | + List<ReplenishmentOrderLine> query(QueryReplenishmentOrderLineVo vo); | |
| 31 | + | |
| 32 | + /** | |
| 33 | + * 根据ID查询 | |
| 34 | + * | |
| 35 | + * @param id | |
| 36 | + * @return | |
| 37 | + */ | |
| 38 | + ReplenishmentOrderLine findById(String id); | |
| 39 | + | |
| 40 | + /** | |
| 41 | + * 创建 | |
| 42 | + * | |
| 43 | + * @param vo | |
| 44 | + * @return | |
| 45 | + */ | |
| 46 | + String create(CreateReplenishmentOrderLineVo vo); | |
| 47 | + | |
| 48 | + /** | |
| 49 | + * 修改 | |
| 50 | + * | |
| 51 | + * @param vo | |
| 52 | + */ | |
| 53 | + void update(UpdateReplenishmentOrderLineVo vo); | |
| 54 | + | |
| 55 | +} | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/service/purchase/ReplenishmentOrderService.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.service.purchase; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.components.resp.PageResult; | |
| 4 | +import com.lframework.starter.web.core.service.BaseMpService; | |
| 5 | +import com.lframework.xingyun.sc.entity.ReplenishmentOrder; | |
| 6 | +import com.lframework.xingyun.sc.vo.order.UpdatePurchaseOrderInfoVo; | |
| 7 | +import com.lframework.xingyun.sc.vo.purchase.CreateReplenishmentOrderVo; | |
| 8 | +import com.lframework.xingyun.sc.vo.purchase.QueryReplenishmentOrderVo; | |
| 9 | +import com.lframework.xingyun.sc.vo.purchase.UpdateReplenishmentOrderVo; | |
| 10 | + | |
| 11 | +import java.util.List; | |
| 12 | + | |
| 13 | +/** | |
| 14 | + * 补货单 Service | |
| 15 | + */ | |
| 16 | +public interface ReplenishmentOrderService extends BaseMpService<ReplenishmentOrder> { | |
| 17 | + | |
| 18 | + /** | |
| 19 | + * 查询列表 | |
| 20 | + * | |
| 21 | + * @return | |
| 22 | + */ | |
| 23 | + PageResult<ReplenishmentOrder> query(Integer pageIndex, Integer pageSize, QueryReplenishmentOrderVo vo); | |
| 24 | + | |
| 25 | + /** | |
| 26 | + * 查询列表 | |
| 27 | + * | |
| 28 | + * @param vo | |
| 29 | + * @return | |
| 30 | + */ | |
| 31 | + List<ReplenishmentOrder> query(QueryReplenishmentOrderVo vo); | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * 根据ID查询 | |
| 35 | + * | |
| 36 | + * @param id | |
| 37 | + * @return | |
| 38 | + */ | |
| 39 | + ReplenishmentOrder findById(String id); | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * 创建 | |
| 43 | + * | |
| 44 | + * @param vo | |
| 45 | + * @return | |
| 46 | + */ | |
| 47 | + String create(CreateReplenishmentOrderVo vo); | |
| 48 | + | |
| 49 | + /** | |
| 50 | + * 修改 | |
| 51 | + * | |
| 52 | + * @param vo | |
| 53 | + */ | |
| 54 | + void update(UpdateReplenishmentOrderVo vo); | |
| 55 | + | |
| 56 | + /** | |
| 57 | + * 取消补货单 | |
| 58 | + * | |
| 59 | + * @param id | |
| 60 | + */ | |
| 61 | + void cancel(String id); | |
| 62 | + | |
| 63 | + /** | |
| 64 | + * 填写补货时间 | |
| 65 | + * | |
| 66 | + * @param vo | |
| 67 | + */ | |
| 68 | + void fillRestockTime(UpdateReplenishmentOrderVo vo); | |
| 69 | + | |
| 70 | + /** | |
| 71 | + * 更新审核状态 | |
| 72 | + * | |
| 73 | + * @param id | |
| 74 | + * @param status | |
| 75 | + */ | |
| 76 | + void updateStatus(String id, String status); | |
| 77 | + | |
| 78 | + /** | |
| 79 | + * 更新审核数据 | |
| 80 | + * | |
| 81 | + * @param vo 更新数据 | |
| 82 | + */ | |
| 83 | + void updateFlowInstance(UpdateReplenishmentOrderVo vo); | |
| 84 | +} | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/purchase/CreateReplenishmentOrderLineVo.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.vo.purchase; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.components.validation.IsNumberPrecision; | |
| 4 | +import com.lframework.starter.web.core.components.validation.TypeMismatch; | |
| 5 | +import com.lframework.starter.web.core.vo.BaseVo; | |
| 6 | +import io.swagger.annotations.ApiModelProperty; | |
| 7 | +import lombok.Data; | |
| 8 | +import org.hibernate.validator.constraints.Length; | |
| 9 | + | |
| 10 | + | |
| 11 | +import java.io.Serializable; | |
| 12 | +import java.math.BigDecimal; | |
| 13 | +import java.time.LocalDate; | |
| 14 | + | |
| 15 | +@Data | |
| 16 | +public class CreateReplenishmentOrderLineVo implements BaseVo, Serializable { | |
| 17 | + | |
| 18 | + private static final long serialVersionUID = 1L; | |
| 19 | + | |
| 20 | + /** | |
| 21 | + * 补货单 | |
| 22 | + */ | |
| 23 | + @ApiModelProperty(value = "补货单") | |
| 24 | + @Length(message = "补货单最多允许32个字符!") | |
| 25 | + private String replenishmentOrderId; | |
| 26 | + | |
| 27 | + /** | |
| 28 | + * 订货单表物料行ID | |
| 29 | + */ | |
| 30 | + @ApiModelProperty(value = "订货单表物料行ID") | |
| 31 | + @Length(message = "订货单表物料行ID最多允许32个字符!") | |
| 32 | + private String purchaseOrderLineId; | |
| 33 | + | |
| 34 | + /** | |
| 35 | + * 牌号 | |
| 36 | + */ | |
| 37 | + @ApiModelProperty(value = "牌号") | |
| 38 | + @Length(message = "牌号最多允许100个字符!") | |
| 39 | + private String brand; | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * 厚度 | |
| 43 | + */ | |
| 44 | + @ApiModelProperty(value = "厚度") | |
| 45 | + @TypeMismatch(message = "厚度格式有误!") | |
| 46 | + @IsNumberPrecision(message = "厚度最多允许4位小数!", value = 4) | |
| 47 | + private BigDecimal thickness; | |
| 48 | + | |
| 49 | + /** | |
| 50 | + * 宽度 | |
| 51 | + */ | |
| 52 | + @ApiModelProperty(value = "宽度") | |
| 53 | + @TypeMismatch(message = "宽度格式有误!") | |
| 54 | + @IsNumberPrecision(message = "宽度最多允许4位小数!", value = 4) | |
| 55 | + private BigDecimal width; | |
| 56 | + | |
| 57 | + /** | |
| 58 | + * 长度 | |
| 59 | + */ | |
| 60 | + @ApiModelProperty(value = "长度") | |
| 61 | + @TypeMismatch(message = "长度格式有误!") | |
| 62 | + @IsNumberPrecision(message = "长度最多允许4位小数!", value = 4) | |
| 63 | + private BigDecimal length; | |
| 64 | + | |
| 65 | + /** | |
| 66 | + * 状态 | |
| 67 | + */ | |
| 68 | + @ApiModelProperty(value = "状态") | |
| 69 | + @Length(message = "状态最多允许50个字符!") | |
| 70 | + private String status; | |
| 71 | + | |
| 72 | + /** | |
| 73 | + * 需发(t) | |
| 74 | + */ | |
| 75 | + @ApiModelProperty(value = "需发(t)") | |
| 76 | + @TypeMismatch(message = "需发(t)格式有误!") | |
| 77 | + @IsNumberPrecision(message = "需发(t)最多允许4位小数!", value = 4) | |
| 78 | + private BigDecimal quantity; | |
| 79 | + | |
| 80 | + /** | |
| 81 | + * 实发(t) | |
| 82 | + */ | |
| 83 | + @ApiModelProperty(value = "实发(t)") | |
| 84 | + @TypeMismatch(message = "实发(t)格式有误!") | |
| 85 | + @IsNumberPrecision(message = "实发(t)最多允许4位小数!", value = 4) | |
| 86 | + private BigDecimal shippedQuantity; | |
| 87 | + | |
| 88 | + /** | |
| 89 | + * 需求补发(t/件) | |
| 90 | + */ | |
| 91 | + @ApiModelProperty(value = "需求补发(t/件)") | |
| 92 | + @TypeMismatch(message = "需求补发(t/件)格式有误!") | |
| 93 | + @IsNumberPrecision(message = "需求补发(t/件)最多允许4位小数!", value = 4) | |
| 94 | + private BigDecimal supplementaryQuantity; | |
| 95 | + | |
| 96 | + /** | |
| 97 | + * 生产科确认交付日期 | |
| 98 | + */ | |
| 99 | + @ApiModelProperty(value = "生产科确认交付日期") | |
| 100 | + @TypeMismatch(message = "生产科确认交付日期格式有误!") | |
| 101 | + private LocalDate confirmedDeliveryDate; | |
| 102 | + | |
| 103 | + /** | |
| 104 | + * 备注 | |
| 105 | + */ | |
| 106 | + @ApiModelProperty(value = "备注") | |
| 107 | + @Length(message = "备注最多允许65,535个字符!") | |
| 108 | + private String remarks; | |
| 109 | + | |
| 110 | + /** | |
| 111 | + * 排序 | |
| 112 | + */ | |
| 113 | + @ApiModelProperty(value = "排序") | |
| 114 | + @TypeMismatch(message = "排序格式有误!") | |
| 115 | + private Integer showOrder; | |
| 116 | + | |
| 117 | + /** | |
| 118 | + * 前端用ID | |
| 119 | + */ | |
| 120 | + @ApiModelProperty(value = "前端用ID") | |
| 121 | + private String itemId; | |
| 122 | +} | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/purchase/CreateReplenishmentOrderVo.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.vo.purchase; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.components.validation.TypeMismatch; | |
| 4 | +import com.lframework.starter.web.core.vo.BaseVo; | |
| 5 | +import io.swagger.annotations.ApiModelProperty; | |
| 6 | +import lombok.Data; | |
| 7 | +import org.hibernate.validator.constraints.Length; | |
| 8 | + | |
| 9 | +import javax.validation.constraints.NotBlank; | |
| 10 | +import javax.validation.constraints.NotNull; | |
| 11 | +import java.io.Serializable; | |
| 12 | +import java.time.LocalDate; | |
| 13 | +import java.util.List; | |
| 14 | + | |
| 15 | +@Data | |
| 16 | +public class CreateReplenishmentOrderVo implements BaseVo, Serializable { | |
| 17 | + | |
| 18 | + private static final long serialVersionUID = 1L; | |
| 19 | + | |
| 20 | + /** | |
| 21 | + * 编号 | |
| 22 | + */ | |
| 23 | + @ApiModelProperty(value = "编号", required = true) | |
| 24 | + @NotBlank(message = "请输入编号!") | |
| 25 | + @Length(message = "编号最多允许50个字符!") | |
| 26 | + private String code; | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * 分厂 | |
| 30 | + */ | |
| 31 | + @ApiModelProperty(value = "分厂", required = true) | |
| 32 | + @NotBlank(message = "请输入分厂!") | |
| 33 | + @Length(message = "分厂最多允许32个字符!") | |
| 34 | + private String workshopId; | |
| 35 | + | |
| 36 | + /** | |
| 37 | + * 办事处 | |
| 38 | + */ | |
| 39 | + @ApiModelProperty(value = "办事处", required = true) | |
| 40 | + @NotBlank(message = "请输入办事处!") | |
| 41 | + @Length(message = "办事处最多允许32个字符!") | |
| 42 | + private String deptId; | |
| 43 | + | |
| 44 | + /** | |
| 45 | + * 购货单位 | |
| 46 | + */ | |
| 47 | + @ApiModelProperty(value = "购货单位", required = true) | |
| 48 | + @NotBlank(message = "请输入购货单位!") | |
| 49 | + @Length(message = "购货单位最多允许32个字符!") | |
| 50 | + private String customerId; | |
| 51 | + | |
| 52 | + /** | |
| 53 | + * 原计划发货日期 | |
| 54 | + */ | |
| 55 | + @ApiModelProperty(value = "原计划发货日期", required = true) | |
| 56 | + @NotNull(message = "请输入原计划发货日期!") | |
| 57 | + @TypeMismatch(message = "原计划发货日期格式有误!") | |
| 58 | + private LocalDate originPlanShipDate; | |
| 59 | + | |
| 60 | + /** | |
| 61 | + * 订货单 | |
| 62 | + */ | |
| 63 | + @ApiModelProperty(value = "订货单", required = true) | |
| 64 | + @NotBlank(message = "请输入订货单!") | |
| 65 | + @Length(message = "订货单最多允许32个字符!") | |
| 66 | + private String purchaseOrderId; | |
| 67 | + | |
| 68 | + /** | |
| 69 | + * 状态 | |
| 70 | + */ | |
| 71 | + @ApiModelProperty(value = "状态", required = true) | |
| 72 | + @NotBlank(message = "请输入状态!") | |
| 73 | + @Length(message = "状态最多允许20个字符!") | |
| 74 | + private String status; | |
| 75 | + | |
| 76 | + /** | |
| 77 | + * 补货单物料行 | |
| 78 | + */ | |
| 79 | + @ApiModelProperty(value = "补货单物料行") | |
| 80 | + private List<CreateReplenishmentOrderLineVo> replenishmentOrderLineList; | |
| 81 | + | |
| 82 | +} | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/purchase/QueryReplenishmentOrderLineVo.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.vo.purchase; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.vo.BaseVo; | |
| 4 | +import com.lframework.starter.web.core.vo.PageVo; | |
| 5 | +import io.swagger.annotations.ApiModelProperty; | |
| 6 | +import lombok.Data; | |
| 7 | + | |
| 8 | +import java.io.Serializable; | |
| 9 | + | |
| 10 | +@Data | |
| 11 | +public class QueryReplenishmentOrderLineVo extends PageVo implements BaseVo, Serializable { | |
| 12 | + | |
| 13 | + private static final long serialVersionUID = 1L; | |
| 14 | + | |
| 15 | + /** | |
| 16 | + * 补货单 | |
| 17 | + */ | |
| 18 | + @ApiModelProperty("补货单") | |
| 19 | + private String replenishmentOrderId; | |
| 20 | + | |
| 21 | +} | |
| \ No newline at end of file | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/purchase/QueryReplenishmentOrderVo.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.vo.purchase; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.components.validation.TypeMismatch; | |
| 4 | +import com.lframework.starter.web.core.vo.BaseVo; | |
| 5 | +import com.lframework.starter.web.core.vo.PageVo; | |
| 6 | +import io.swagger.annotations.ApiModelProperty; | |
| 7 | +import lombok.Data; | |
| 8 | + | |
| 9 | +import java.io.Serializable; | |
| 10 | +import java.time.LocalDateTime; | |
| 11 | + | |
| 12 | +@Data | |
| 13 | +public class QueryReplenishmentOrderVo extends PageVo implements BaseVo, Serializable { | |
| 14 | + | |
| 15 | + private static final long serialVersionUID = 1L; | |
| 16 | + | |
| 17 | + /** | |
| 18 | + * 编号 | |
| 19 | + */ | |
| 20 | + @ApiModelProperty("编号") | |
| 21 | + private String code; | |
| 22 | + | |
| 23 | + /** | |
| 24 | + * 分厂 | |
| 25 | + */ | |
| 26 | + @ApiModelProperty("分厂") | |
| 27 | + private String workshopId; | |
| 28 | + | |
| 29 | + /** | |
| 30 | + * 购货单位 | |
| 31 | + */ | |
| 32 | + @ApiModelProperty("购货单位") | |
| 33 | + private String customerId; | |
| 34 | + | |
| 35 | + /** | |
| 36 | + * 创建时间 | |
| 37 | + */ | |
| 38 | + @ApiModelProperty("创建时间") | |
| 39 | + @TypeMismatch(message = "创建时间格式有误!") | |
| 40 | + private LocalDateTime createTime; | |
| 41 | + | |
| 42 | +} | |
| \ No newline at end of file | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/purchase/UpdateReplenishmentOrderLineVo.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.vo.purchase; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.vo.BaseVo; | |
| 4 | +import io.swagger.annotations.ApiModelProperty; | |
| 5 | +import lombok.Data; | |
| 6 | + | |
| 7 | +import java.io.Serializable; | |
| 8 | +import java.math.BigDecimal; | |
| 9 | +import java.time.LocalDate; | |
| 10 | + | |
| 11 | +@Data | |
| 12 | +public class UpdateReplenishmentOrderLineVo implements BaseVo, Serializable { | |
| 13 | + | |
| 14 | + private static final long serialVersionUID = 1L; | |
| 15 | + | |
| 16 | + /** | |
| 17 | + * ID | |
| 18 | + */ | |
| 19 | + @ApiModelProperty(value = "ID") | |
| 20 | + private String id; | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * 补货单 | |
| 24 | + */ | |
| 25 | + @ApiModelProperty(value = "补货单") | |
| 26 | + private String replenishmentOrderId; | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * 订货单表物料行ID | |
| 30 | + */ | |
| 31 | + @ApiModelProperty(value = "订货单表物料行ID") | |
| 32 | + private String purchaseOrderLineId; | |
| 33 | + | |
| 34 | + /** | |
| 35 | + * 牌号 | |
| 36 | + */ | |
| 37 | + @ApiModelProperty(value = "牌号") | |
| 38 | + private String brand; | |
| 39 | + | |
| 40 | + /** | |
| 41 | + * 厚度 | |
| 42 | + */ | |
| 43 | + @ApiModelProperty(value = "厚度") | |
| 44 | + private BigDecimal thickness; | |
| 45 | + | |
| 46 | + /** | |
| 47 | + * 宽度 | |
| 48 | + */ | |
| 49 | + @ApiModelProperty(value = "宽度") | |
| 50 | + private BigDecimal width; | |
| 51 | + | |
| 52 | + /** | |
| 53 | + * 长度 | |
| 54 | + */ | |
| 55 | + @ApiModelProperty(value = "长度") | |
| 56 | + private BigDecimal length; | |
| 57 | + | |
| 58 | + /** | |
| 59 | + * 状态 | |
| 60 | + */ | |
| 61 | + @ApiModelProperty(value = "状态") | |
| 62 | + private String status; | |
| 63 | + | |
| 64 | + /** | |
| 65 | + * 需发(t) | |
| 66 | + */ | |
| 67 | + @ApiModelProperty(value = "需发(t)") | |
| 68 | + private BigDecimal quantity; | |
| 69 | + | |
| 70 | + /** | |
| 71 | + * 实发(t) | |
| 72 | + */ | |
| 73 | + @ApiModelProperty(value = "实发(t)") | |
| 74 | + private BigDecimal shippedQuantity; | |
| 75 | + | |
| 76 | + /** | |
| 77 | + * 需求补发(t/件) | |
| 78 | + */ | |
| 79 | + @ApiModelProperty(value = "需求补发(t/件)") | |
| 80 | + private BigDecimal supplementaryQuantity; | |
| 81 | + | |
| 82 | + /** | |
| 83 | + * 生产科确认交付日期 | |
| 84 | + */ | |
| 85 | + @ApiModelProperty(value = "生产科确认交付日期") | |
| 86 | + private LocalDate confirmedDeliveryDate; | |
| 87 | + | |
| 88 | + /** | |
| 89 | + * 备注 | |
| 90 | + */ | |
| 91 | + @ApiModelProperty(value = "备注") | |
| 92 | + private String remarks; | |
| 93 | + | |
| 94 | + /** | |
| 95 | + * 排序 | |
| 96 | + */ | |
| 97 | + @ApiModelProperty(value = "排序") | |
| 98 | + private Integer showOrder; | |
| 99 | + | |
| 100 | + /** | |
| 101 | + * 前端用ID | |
| 102 | + */ | |
| 103 | + @ApiModelProperty(value = "前端用ID") | |
| 104 | + private String itemId; | |
| 105 | + | |
| 106 | +} | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/vo/purchase/UpdateReplenishmentOrderVo.java
0 → 100644
| 1 | +package com.lframework.xingyun.sc.vo.purchase; | |
| 2 | + | |
| 3 | +import com.lframework.starter.web.core.components.validation.TypeMismatch; | |
| 4 | +import com.lframework.starter.web.core.vo.BaseVo; | |
| 5 | +import io.swagger.annotations.ApiModelProperty; | |
| 6 | +import lombok.Data; | |
| 7 | +import org.hibernate.validator.constraints.Length; | |
| 8 | + | |
| 9 | +import javax.validation.constraints.NotBlank; | |
| 10 | +import javax.validation.constraints.NotNull; | |
| 11 | +import java.io.Serializable; | |
| 12 | +import java.time.LocalDate; | |
| 13 | +import java.util.List; | |
| 14 | + | |
| 15 | +@Data | |
| 16 | +public class UpdateReplenishmentOrderVo implements BaseVo, Serializable { | |
| 17 | + | |
| 18 | + private static final long serialVersionUID = 1L; | |
| 19 | + | |
| 20 | + /** | |
| 21 | + * ID | |
| 22 | + */ | |
| 23 | + @ApiModelProperty(value = "ID", required = true) | |
| 24 | + @NotBlank(message = "id不能为空!") | |
| 25 | + private String id; | |
| 26 | + | |
| 27 | + /** | |
| 28 | + * 编号 | |
| 29 | + */ | |
| 30 | + @ApiModelProperty(value = "编号", required = true) | |
| 31 | + @NotBlank(message = "请输入编号!") | |
| 32 | + @Length(message = "编号最多允许50个字符!") | |
| 33 | + private String code; | |
| 34 | + | |
| 35 | + /** | |
| 36 | + * 分厂 | |
| 37 | + */ | |
| 38 | + @ApiModelProperty(value = "分厂", required = true) | |
| 39 | + @NotBlank(message = "请输入分厂!") | |
| 40 | + @Length(message = "分厂最多允许32个字符!") | |
| 41 | + private String workshopId; | |
| 42 | + | |
| 43 | + /** | |
| 44 | + * 办事处 | |
| 45 | + */ | |
| 46 | + @ApiModelProperty(value = "办事处", required = true) | |
| 47 | + @NotBlank(message = "请输入办事处!") | |
| 48 | + @Length(message = "办事处最多允许32个字符!") | |
| 49 | + private String deptId; | |
| 50 | + | |
| 51 | + /** | |
| 52 | + * 购货单位 | |
| 53 | + */ | |
| 54 | + @ApiModelProperty(value = "购货单位", required = true) | |
| 55 | + @NotBlank(message = "请输入购货单位!") | |
| 56 | + @Length(message = "购货单位最多允许32个字符!") | |
| 57 | + private String customerId; | |
| 58 | + | |
| 59 | + /** | |
| 60 | + * 原计划发货日期 | |
| 61 | + */ | |
| 62 | + @ApiModelProperty(value = "原计划发货日期", required = true) | |
| 63 | + @TypeMismatch(message = "原计划发货日期格式有误!") | |
| 64 | + @NotNull(message = "请输入原计划发货日期!") | |
| 65 | + private LocalDate originPlanShipDate; | |
| 66 | + | |
| 67 | + /** | |
| 68 | + * 订货单 | |
| 69 | + */ | |
| 70 | + @ApiModelProperty(value = "订货单", required = true) | |
| 71 | + @NotBlank(message = "请输入订货单!") | |
| 72 | + @Length(message = "订货单最多允许32个字符!") | |
| 73 | + private String purchaseOrderId; | |
| 74 | + | |
| 75 | + /** | |
| 76 | + * 补货单物料行 | |
| 77 | + */ | |
| 78 | + @ApiModelProperty("补货单物料行") | |
| 79 | + private List<UpdateReplenishmentOrderLineVo> replenishmentOrderLineList; | |
| 80 | + | |
| 81 | + /** | |
| 82 | + * 审批状态 | |
| 83 | + */ | |
| 84 | + @ApiModelProperty("审批状态") | |
| 85 | + private String status; | |
| 86 | +} | ... | ... |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
| 3 | +<mapper namespace="com.lframework.xingyun.sc.mappers.ReplenishmentOrderLineMapper"> | |
| 4 | + | |
| 5 | + <resultMap id="ReplenishmentOrderLine" type="com.lframework.xingyun.sc.entity.ReplenishmentOrderLine"> | |
| 6 | + <id column="id" property="id"/> | |
| 7 | + <result column="replenishment_order_id" property="replenishmentOrderId"/> | |
| 8 | + <result column="purchase_order_line_id" property="purchaseOrderLineId"/> | |
| 9 | + <result column="brand" property="brand"/> | |
| 10 | + <result column="thickness" property="thickness"/> | |
| 11 | + <result column="width" property="width"/> | |
| 12 | + <result column="length" property="length"/> | |
| 13 | + <result column="status" property="status"/> | |
| 14 | + <result column="quantity" property="quantity"/> | |
| 15 | + <result column="shipped_quantity" property="shippedQuantity"/> | |
| 16 | + <result column="supplementary_quantity" property="supplementaryQuantity"/> | |
| 17 | + <result column="confirmed_delivery_date" property="confirmedDeliveryDate"/> | |
| 18 | + <result column="remarks" property="remarks"/> | |
| 19 | + <result column="show_order" property="showOrder"/> | |
| 20 | + <result column="create_by_id" property="createById"/> | |
| 21 | + <result column="create_by" property="createBy"/> | |
| 22 | + <result column="update_by_id" property="updateById"/> | |
| 23 | + <result column="update_by" property="updateBy"/> | |
| 24 | + <result column="create_time" property="createTime"/> | |
| 25 | + <result column="update_time" property="updateTime"/> | |
| 26 | + </resultMap> | |
| 27 | + | |
| 28 | + <sql id="ReplenishmentOrderLine_sql"> | |
| 29 | + SELECT tb.id, | |
| 30 | + tb.replenishment_order_id, | |
| 31 | + tb.purchase_order_line_id, | |
| 32 | + tb.brand, | |
| 33 | + tb.thickness, | |
| 34 | + tb.width, | |
| 35 | + tb.length, | |
| 36 | + tb.status, | |
| 37 | + tb.quantity, | |
| 38 | + tb.shipped_quantity, | |
| 39 | + tb.supplementary_quantity, | |
| 40 | + tb.confirmed_delivery_date, | |
| 41 | + tb.remarks, | |
| 42 | + tb.show_order, | |
| 43 | + tb.create_by_id, | |
| 44 | + tb.create_by, | |
| 45 | + tb.update_by_id, | |
| 46 | + tb.update_by, | |
| 47 | + tb.create_time, | |
| 48 | + tb.update_time | |
| 49 | + FROM tbl_replenishment_order_line AS tb | |
| 50 | + </sql> | |
| 51 | + | |
| 52 | + <select id="query" resultMap="ReplenishmentOrderLine"> | |
| 53 | + <include refid="ReplenishmentOrderLine_sql"/> | |
| 54 | + <where> | |
| 55 | + <if test="vo.replenishmentOrderId != null and vo.replenishmentOrderId != ''"> | |
| 56 | + AND tb.replenishment_order_id = #{vo.replenishmentOrderId} | |
| 57 | + </if> | |
| 58 | + </where> | |
| 59 | + </select> | |
| 60 | +</mapper> | ... | ... |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
| 3 | +<mapper namespace="com.lframework.xingyun.sc.mappers.ReplenishmentOrderMapper"> | |
| 4 | + | |
| 5 | + <resultMap id="ReplenishmentOrder" type="com.lframework.xingyun.sc.entity.ReplenishmentOrder"> | |
| 6 | + <id column="id" property="id"/> | |
| 7 | + <result column="code" property="code"/> | |
| 8 | + <result column="workshop_id" property="workshopId"/> | |
| 9 | + <result column="dept_id" property="deptId"/> | |
| 10 | + <result column="customer_id" property="customerId"/> | |
| 11 | + <result column="origin_plan_ship_date" property="originPlanShipDate"/> | |
| 12 | + <result column="purchase_order_id" property="purchaseOrderId"/> | |
| 13 | + <result column="status" property="status"/> | |
| 14 | + <result column="create_by_id" property="createById"/> | |
| 15 | + <result column="create_by" property="createBy"/> | |
| 16 | + <result column="update_by_id" property="updateById"/> | |
| 17 | + <result column="update_by" property="updateBy"/> | |
| 18 | + <result column="create_time" property="createTime"/> | |
| 19 | + <result column="update_time" property="updateTime"/> | |
| 20 | + </resultMap> | |
| 21 | + | |
| 22 | + <sql id="ReplenishmentOrder_sql"> | |
| 23 | + SELECT tb.id, | |
| 24 | + tb.code, | |
| 25 | + tb.workshop_id, | |
| 26 | + tb.dept_id, | |
| 27 | + tb.customer_id, | |
| 28 | + tb.origin_plan_ship_date, | |
| 29 | + tb.purchase_order_id, | |
| 30 | + tb.status, | |
| 31 | + tb.create_by_id, | |
| 32 | + tb.create_by, | |
| 33 | + tb.update_by_id, | |
| 34 | + tb.update_by, | |
| 35 | + tb.create_time, | |
| 36 | + tb.update_time | |
| 37 | + FROM tbl_replenishment_order AS tb | |
| 38 | + </sql> | |
| 39 | + | |
| 40 | + <select id="query" resultMap="ReplenishmentOrder"> | |
| 41 | + <include refid="ReplenishmentOrder_sql"/> | |
| 42 | + <where> | |
| 43 | + <if test="vo.code != null and vo.code != ''"> | |
| 44 | + AND tb.code LIKE CONCAT('%', #{vo.code}, '%') | |
| 45 | + </if> | |
| 46 | + <if test="vo.workshopId != null and vo.workshopId != ''"> | |
| 47 | + AND tb.workshop_id = #{vo.workshopId} | |
| 48 | + </if> | |
| 49 | + <if test="vo.customerId != null and vo.customerId != ''"> | |
| 50 | + AND tb.customer_id = #{vo.customerId} | |
| 51 | + </if> | |
| 52 | + <if test="vo.createTime != null"> | |
| 53 | + AND tb.create_time = #{vo.createTime} | |
| 54 | + </if> | |
| 55 | + </where> | |
| 56 | + </select> | |
| 57 | +</mapper> | ... | ... |