Browse Source

update

piece
Yen 3 years ago
parent
commit
45069d8ab1
  1. 14
      src/main/java/com/qs/serve/modules/pms/controller/PmsCounterSubmitController.java
  2. 67
      src/main/java/com/qs/serve/modules/pms/controller/PmsOrderController.java
  3. 11
      src/main/java/com/qs/serve/modules/pms/controller/PmsProductProcessController.java
  4. 2
      src/main/java/com/qs/serve/modules/pms/entity/PmsOrderProcess.java
  5. 13
      src/main/java/com/qs/serve/modules/pms/entity/PmsOrderProduct.java
  6. 62
      src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderBo.java
  7. 42
      src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderProcessBo.java
  8. 74
      src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderProductBo.java
  9. 2
      src/main/java/com/qs/serve/modules/pms/entity/dto/PmsProcessReaBatchBo.java
  10. 2
      src/main/java/com/qs/serve/modules/pms/entity/dto/PmsProductReaBatchBo.java
  11. 4
      src/main/java/com/qs/serve/modules/pms/service/PmsOrderProductService.java
  12. 10
      src/main/java/com/qs/serve/modules/pms/service/impl/PmsOrderProductServiceImpl.java

14
src/main/java/com/qs/serve/modules/pms/controller/PmsCounterSubmitController.java

@ -11,6 +11,8 @@ import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.pms.entity.PmsCounterSubmit; import com.qs.serve.modules.pms.entity.PmsCounterSubmit;
import com.qs.serve.modules.pms.service.PmsCounterSubmitService; import com.qs.serve.modules.pms.service.PmsCounterSubmitService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@ -32,6 +34,7 @@ import java.util.List;
public class PmsCounterSubmitController { public class PmsCounterSubmitController {
private PmsCounterSubmitService pmsCounterSubmitService; private PmsCounterSubmitService pmsCounterSubmitService;
private SysUserService sysUserService;
/** /**
* 翻页查询 * 翻页查询
@ -103,14 +106,19 @@ public class PmsCounterSubmitController {
/** /**
* 新增计时报工单 * 新增计时报工单
* @param param * @param pmsCounterSubmit
* @return * @return
*/ */
@PostMapping("/save") @PostMapping("/save")
@SysLog(module = SystemModule.PIECE, title = "计时报工单", biz = BizType.INSERT) @SysLog(module = SystemModule.PIECE, title = "计时报工单", biz = BizType.INSERT)
@PreAuthorize("hasRole('pms:counterSubmit:insert')") @PreAuthorize("hasRole('pms:counterSubmit:insert')")
public R<?> save(@RequestBody @Valid PmsCounterSubmit param){ public R<?> save(@RequestBody @Valid PmsCounterSubmit pmsCounterSubmit){
boolean result = pmsCounterSubmitService.save(param); SysUser sysUser = sysUserService.getById(pmsCounterSubmit.getPersonId());
pmsCounterSubmit.setCreateTime(LocalDateTime.now());
pmsCounterSubmit.setPersonId(sysUser.getId());
pmsCounterSubmit.setPersonCode(sysUser.getAccount());
pmsCounterSubmit.setPersonName(sysUser.getName());
boolean result = pmsCounterSubmitService.save(pmsCounterSubmit);
return R.isTrue(result); return R.isTrue(result);
} }

67
src/main/java/com/qs/serve/modules/pms/controller/PmsOrderController.java

@ -6,15 +6,18 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.*;
import com.qs.serve.modules.pms.entity.*;
import com.qs.serve.modules.pms.entity.dto.PmsOrderBo;
import com.qs.serve.modules.pms.entity.dto.PmsOrderProcessBo;
import com.qs.serve.modules.pms.entity.dto.PmsOrderProductBo;
import com.qs.serve.modules.pms.service.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.pms.entity.PmsOrder;
import com.qs.serve.modules.pms.service.PmsOrderService;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List; import java.util.List;
@ -30,6 +33,11 @@ import java.util.List;
public class PmsOrderController { public class PmsOrderController {
private PmsOrderService pmsOrderService; private PmsOrderService pmsOrderService;
private PmsProcessService pmsProcessService;
private PmsProductService pmsProductService;
private PmsProductProcessService pmsProductProcessService;
private PmsOrderProductService pmsOrderProductService;
private PmsOrderProcessService pmsOrderProcessService;
/** /**
* 翻页查询 * 翻页查询
@ -78,7 +86,7 @@ public class PmsOrderController {
* @param param * @param param
* @return * @return
*/ */
@PostMapping("/save") //@PostMapping("/save")
@SysLog(module = SystemModule.PIECE, title = "生产订单", biz = BizType.INSERT) @SysLog(module = SystemModule.PIECE, title = "生产订单", biz = BizType.INSERT)
@PreAuthorize("hasRole('pms:order:insert')") @PreAuthorize("hasRole('pms:order:insert')")
public R<?> save(@RequestBody @Valid PmsOrder param){ public R<?> save(@RequestBody @Valid PmsOrder param){
@ -86,6 +94,55 @@ public class PmsOrderController {
return R.isTrue(result); return R.isTrue(result);
} }
/**
* 新增生产订单批量编辑
* @apiNote 移除产品和移除工序调用独立接口接口不进行差集保存
* @param param
* @return
*/
@PostMapping("/edit")
@SysLog(module = SystemModule.PIECE, title = "生产订单",desc = "包含订单、产品、工序编辑", biz = BizType.INSERT)
@PreAuthorize("hasRole('pms:order:insert')")
@Transactional(rollbackFor = Exception.class)
public R<?> edit(@RequestBody @Valid PmsOrderBo param){
PmsOrder order = param.getId()==null?new PmsOrder():pmsOrderService.getById(param.getId());
CopierUtil.copy(param, order);
if(order.getId()==null){
if(!StringUtils.hasText(order.getCode())){
order.setCode(""+IdUtil.getSnowFlakeId());
}
pmsOrderService.save(order);
}else {
pmsOrderService.updateById(order);
}
for (PmsOrderProductBo productBo : param.getProductList()) {
PmsProduct pmsProduct = pmsProductService.getById(productBo.getProductId());
PmsOrderProduct orderProduct = productBo.getOrderProductSn()==null?new PmsOrderProduct():pmsOrderProductService.getById(productBo.getOrderProductSn());
CopierUtil.copy(productBo, orderProduct);
boolean isUpdateProduct = StringUtils.hasText(orderProduct.getOrderProductSn());
orderProduct.setOrderId(order.getId());
orderProduct.setOrderCode(order.getCode());
if(isUpdateProduct){
orderProduct.setOrderProductSn(""+IdUtil.getSnowFlakeId());
pmsOrderProductService.save(orderProduct);
}else {
pmsOrderProductService.updateById(orderProduct);
}
if(CollectionUtil.isEmpty(productBo.getProcessList())){
for (PmsOrderProcessBo processBo : productBo.getProcessList()) {
PmsProcess pmsProcess = pmsProcessService.getById(processBo.getProcessId());
PmsOrderProcess orderProcess = CopierUtil.copy(processBo,new PmsOrderProcess());
orderProcess.setOrderId(order.getId());
orderProcess.setProductId(pmsProduct.getId());
orderProcess.setProcessName(pmsProcess.getName());
orderProcess.setProcessCode(pmsProcess.getCode());
//orderProcess.setProcessPrice();
}
}
}
return R.ok();
}
/** /**
* 删除生产订单 * 删除生产订单
* @param id * @param id

11
src/main/java/com/qs/serve/modules/pms/controller/PmsProductProcessController.java

@ -8,10 +8,8 @@ import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.pms.entity.PmsProcess; import com.qs.serve.modules.pms.entity.dto.PmsProcessReaBatchBo;
import com.qs.serve.modules.pms.entity.PmsProduct; import com.qs.serve.modules.pms.entity.dto.PmsProductReaBatchBo;
import com.qs.serve.modules.pms.entity.dto.PmsProcessReaBatch;
import com.qs.serve.modules.pms.entity.dto.PmsProductReaBatch;
import com.qs.serve.modules.pms.service.PmsProcessService; import com.qs.serve.modules.pms.service.PmsProcessService;
import com.qs.serve.modules.pms.service.PmsProductService; import com.qs.serve.modules.pms.service.PmsProductService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -24,7 +22,6 @@ import com.qs.serve.modules.pms.entity.PmsProductProcess;
import com.qs.serve.modules.pms.service.PmsProductProcessService; import com.qs.serve.modules.pms.service.PmsProductProcessService;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -81,7 +78,7 @@ public class PmsProductProcessController {
@SysLog(module = SystemModule.PIECE, title = "产品工序关联",desc = "产品批量关联工序", biz = BizType.UPDATE) @SysLog(module = SystemModule.PIECE, title = "产品工序关联",desc = "产品批量关联工序", biz = BizType.UPDATE)
@PreAuthorize("hasRole('pms:productProcess:edit')") @PreAuthorize("hasRole('pms:productProcess:edit')")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R<?> editBatchProductRea(@RequestBody @Valid PmsProductReaBatch param){ public R<?> editBatchProductRea(@RequestBody @Valid PmsProductReaBatchBo param){
String productId = param.getProductId(); String productId = param.getProductId();
List<String> paramProcessIdList = param.getProcessIdList(); List<String> paramProcessIdList = param.getProcessIdList();
LambdaQueryWrapper<PmsProductProcess> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PmsProductProcess> lqw = new LambdaQueryWrapper<>();
@ -117,7 +114,7 @@ public class PmsProductProcessController {
@SysLog(module = SystemModule.PIECE, title = "产品工序关联",desc = "产品批量关联工序", biz = BizType.UPDATE) @SysLog(module = SystemModule.PIECE, title = "产品工序关联",desc = "产品批量关联工序", biz = BizType.UPDATE)
@PreAuthorize("hasRole('pms:productProcess:edit')") @PreAuthorize("hasRole('pms:productProcess:edit')")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R<?> editBatchProcessRea(@RequestBody @Valid PmsProcessReaBatch param){ public R<?> editBatchProcessRea(@RequestBody @Valid PmsProcessReaBatchBo param){
String processId = param.getProcessId(); String processId = param.getProcessId();
List<String> paramProductIdList = param.getProductIdList(); List<String> paramProductIdList = param.getProductIdList();
LambdaQueryWrapper<PmsProductProcess> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PmsProductProcess> lqw = new LambdaQueryWrapper<>();

2
src/main/java/com/qs/serve/modules/pms/entity/PmsOrderProcess.java

@ -28,7 +28,7 @@ public class PmsOrderProcess implements Serializable {
/** 订单工序编码 */ /** 订单工序编码 */
@Length(max = 32,message = "订单工序编码长度不能超过32字") @Length(max = 32,message = "订单工序编码长度不能超过32字")
@TableId(type = IdType.ASSIGN_UUID) @TableId(type = IdType.INPUT)
private String orderProcessSn; private String orderProcessSn;
/** 订单id */ /** 订单id */

13
src/main/java/com/qs/serve/modules/pms/entity/PmsOrderProduct.java

@ -27,18 +27,19 @@ public class PmsOrderProduct implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** id */ /** id,产线编码 */
@TableId(type = IdType.ASSIGN_UUID) @TableId(type = IdType.INPUT)
private String id;
/** 产线编码 */
@NotBlank(message = "产线编码不能为空") @NotBlank(message = "产线编码不能为空")
@Length(max = 32,message = "产线编码长度不能超过32字") @Length(max = 32,message = "产线编码长度不能超过32字")
private String orderProductSn; private String orderProductSn;
/** 产品ID */
@NotNull(message = "订单id不能为空")
private String productId;
/** 订单id */ /** 订单id */
@NotNull(message = "订单id不能为空") @NotNull(message = "订单id不能为空")
private Long orderId; private String orderId;
/** 订单编码 */ /** 订单编码 */
@NotBlank(message = "订单编码不能为空") @NotBlank(message = "订单编码不能为空")

62
src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderBo.java

@ -0,0 +1,62 @@
package com.qs.serve.modules.pms.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
* 生产订单 实体类
* @author YenHex
* @since 2022-08-05
*/
@Data
public class PmsOrderBo implements Serializable {
/** id,新增时不需提交 */
private String id;
/** 产品名称 */
@NotBlank(message = "订单抬头不能为空")
@Length(max = 30,message = "产品名称长度不能超过30字")
private String name;
/** 产品编码,为空系统自动生产 */
private String code;
/** 计量单位 */
@NotBlank(message = "计量单位不能为空")
@Length(max = 20,message = "计量单位长度不能超过20字")
private String unit;
/** 规格型号 */
@NotBlank(message = "规格型号不能为空")
@Length(max = 255,message = "规格型号长度不能超过255字")
private String spec;
/** 完工日期 */
@Length(max = 0,message = "完工日期长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime finishedDate;
/** 入库日期 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDate enterWhDate;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 产品列表 */
private List<PmsOrderProductBo> productList;
}

42
src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderProcessBo.java

@ -0,0 +1,42 @@
package com.qs.serve.modules.pms.entity.dto;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 订单工序 实体类
* @author YenHex
* @since 2022-08-05
*/
@Data
public class PmsOrderProcessBo implements Serializable {
private static final long serialVersionUID = 1L;
/** id,更新时需传参,否则进行新增 */
@Length(max = 32,message = "订单工序编码长度不能超过32字")
@TableId(type = IdType.ASSIGN_UUID)
private String orderProcessSn;
/** 工序id */
@NotBlank(message = "工序id不能为空")
@Length(max = 32,message = "工序id长度不能超过32字")
private String processId;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
}

74
src/main/java/com/qs/serve/modules/pms/entity/dto/PmsOrderProductBo.java

@ -0,0 +1,74 @@
package com.qs.serve.modules.pms.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* 订单产品 实体类
* @author YenHex
* @since 2022-08-05
*/
@Data
public class PmsOrderProductBo implements Serializable {
private static final long serialVersionUID = 1L;
/** id,更新时需传参,否则进行新增 */
private String orderProductSn;
/** 产品ID */
private String productId;
/** 产品名称 */
@NotBlank(message = "产品名称不能为空")
@Length(max = 30,message = "产品名称长度不能超过30字")
private String name;
/** 产品编码 */
@NotBlank(message = "产品编码不能为空")
@Length(max = 30,message = "产品编码长度不能超过30字")
private String code;
/** 计量单位 */
@Length(max = 20,message = "计量单位长度不能超过20字")
private String unit;
/** 规格型号 */
@Length(max = 255,message = "规格型号长度不能超过255字")
private String spec;
/** 计划产量 */
@NotNull(message = "计划产量不能为空")
private BigDecimal planQty;
/** 计划完工日期 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDate planFinishedDate;
/** 实际产量/当前产量 */
@NotNull(message = "实际产量/当前产量不能为空")
private BigDecimal qty;
/** 完工日期 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDate finishedDate;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 工序列表 */
private List<PmsOrderProcessBo> processList;
}

2
src/main/java/com/qs/serve/modules/pms/entity/dto/PmsProcessReaBatch.java → src/main/java/com/qs/serve/modules/pms/entity/dto/PmsProcessReaBatchBo.java

@ -9,7 +9,7 @@ import java.util.List;
* @since 2022/8/8 * @since 2022/8/8
*/ */
@Data @Data
public class PmsProcessReaBatch { public class PmsProcessReaBatchBo {
/** /**
* 工序ID * 工序ID

2
src/main/java/com/qs/serve/modules/pms/entity/dto/PmsProductReaBatch.java → src/main/java/com/qs/serve/modules/pms/entity/dto/PmsProductReaBatchBo.java

@ -10,7 +10,7 @@ import java.util.List;
* @since 2022/8/8 * @since 2022/8/8
*/ */
@Data @Data
public class PmsProductReaBatch { public class PmsProductReaBatchBo {
/** /**
* 产品ID * 产品ID

4
src/main/java/com/qs/serve/modules/pms/service/PmsOrderProductService.java

@ -3,12 +3,14 @@ package com.qs.serve.modules.pms.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.pms.entity.PmsOrderProduct; import com.qs.serve.modules.pms.entity.PmsOrderProduct;
import java.util.List;
/** /**
* 订单产品 服务接口 * 订单产品 服务接口
* @author YenHex * @author YenHex
* @date 2022-08-05 * @date 2022-08-05
*/ */
public interface PmsOrderProductService extends IService<PmsOrderProduct> { public interface PmsOrderProductService extends IService<PmsOrderProduct> {
List<PmsOrderProduct> getByOrderId(String orderId);
} }

10
src/main/java/com/qs/serve/modules/pms/service/impl/PmsOrderProductServiceImpl.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.pms.service.impl; package com.qs.serve.modules.pms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -8,6 +9,8 @@ import com.qs.serve.modules.pms.entity.PmsOrderProduct;
import com.qs.serve.modules.pms.service.PmsOrderProductService; import com.qs.serve.modules.pms.service.PmsOrderProductService;
import com.qs.serve.modules.pms.mapper.PmsOrderProductMapper; import com.qs.serve.modules.pms.mapper.PmsOrderProductMapper;
import java.util.List;
/** /**
* 订单产品 服务实现类 * 订单产品 服务实现类
* @author YenHex * @author YenHex
@ -18,5 +21,12 @@ import com.qs.serve.modules.pms.mapper.PmsOrderProductMapper;
@AllArgsConstructor @AllArgsConstructor
public class PmsOrderProductServiceImpl extends ServiceImpl<PmsOrderProductMapper,PmsOrderProduct> implements PmsOrderProductService { public class PmsOrderProductServiceImpl extends ServiceImpl<PmsOrderProductMapper,PmsOrderProduct> implements PmsOrderProductService {
@Override
public List<PmsOrderProduct> getByOrderId(String orderId) {
LambdaQueryWrapper<PmsOrderProduct> lqw = new LambdaQueryWrapper<>();
lqw.eq(PmsOrderProduct::getOrderId,orderId);
return list(lqw);
}
} }

Loading…
Cancel
Save