From f41e23e6db7436fd9e1b811314d2f497d8bc63f2 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 15 八月 2023 17:43:11 +0800
Subject: [PATCH] 111
---
server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java | 6 +
server/src/main/java/doumeemes/dao/ext/dto/QueryBomExtDTO.java | 3 +
server/src/main/java/doumeemes/service/ext/WorkorderRecordStandardService.java | 2
server/src/main/java/doumeemes/api/ext/PlansExtController.java | 1
server/src/main/java/doumeemes/dao/business/model/Plans.java | 4 +
server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java | 83 +++++++++++++++++++++++++++
server/src/main/java/doumeemes/dao/ext/dto/QueryBomDetailExtDTO.java | 2
server/src/main/java/doumeemes/api/ext/SalaryParamExtController.java | 8 ++
server/src/main/java/doumeemes/dao/ext/beanDto/QueryWStockDto.java | 2
server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java | 13 ++++
server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java | 16 ++++
server/src/main/resources/mappers/PlansExtMapper.xml | 4 +
12 files changed, 139 insertions(+), 5 deletions(-)
diff --git a/server/src/main/java/doumeemes/api/ext/PlansExtController.java b/server/src/main/java/doumeemes/api/ext/PlansExtController.java
index 61cd646..7741d95 100644
--- a/server/src/main/java/doumeemes/api/ext/PlansExtController.java
+++ b/server/src/main/java/doumeemes/api/ext/PlansExtController.java
@@ -188,6 +188,7 @@
plansExtService.backByIdInBatch(idList);
return ApiResponse.success(null);
}
+
@ApiOperation("鍒嗛〉鏌ヨ")
@PostMapping("/page")
@RequiresPermissions("ext:plansext:query")
diff --git a/server/src/main/java/doumeemes/api/ext/SalaryParamExtController.java b/server/src/main/java/doumeemes/api/ext/SalaryParamExtController.java
index 3bbb7ee..8d38ddf 100644
--- a/server/src/main/java/doumeemes/api/ext/SalaryParamExtController.java
+++ b/server/src/main/java/doumeemes/api/ext/SalaryParamExtController.java
@@ -76,6 +76,14 @@
return ApiResponse.success(null);
}
+ @ApiOperation("鏍规嵁瀵硅薄淇℃伅鏌ヨ")
+ @PostMapping("/queryOne")
+ @RequiresPermissions("business:salaryparam:query")
+ public ApiResponse queryOne(@RequestBody SalaryParam salaryParam) {
+ SalaryParam data = salaryParamService.findOne(salaryParam);
+ return ApiResponse.success(data);
+ }
+
@ApiOperation("鍒嗛〉鏌ヨ")
@PostMapping("/page")
@RequiresPermissions("business:salaryparam:query")
diff --git a/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java b/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java
index 1c7d59d..2bd7950 100644
--- a/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java
+++ b/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java
@@ -224,6 +224,10 @@
return ApiResponse.success(workorderRecordStandardService.choiceStockPageForWorkorder(pageWrap,getLoginUser()));
}
-
+ @ApiOperation("鏍规嵁渚涢渶璁″垝鏌ヨ鍙敤搴撳瓨")
+ @PostMapping("/getStockByPlansForStandard")
+ public ApiResponse<PageData<WStockExtListVO>> getStockByPlansForStandard (@RequestBody PageWrap<QueryWStockDto> pageWrap) {
+ return ApiResponse.success(workorderRecordStandardService.choiceStockPageForPlans(pageWrap,getLoginUser()));
+ }
}
diff --git a/server/src/main/java/doumeemes/dao/business/model/Plans.java b/server/src/main/java/doumeemes/dao/business/model/Plans.java
index a3ddc57..05b1fc1 100644
--- a/server/src/main/java/doumeemes/dao/business/model/Plans.java
+++ b/server/src/main/java/doumeemes/dao/business/model/Plans.java
@@ -3,6 +3,7 @@
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import doumeemes.core.annotation.excel.ExcelColumn;
+import doumeemes.dao.ext.vo.BomExtListVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -160,4 +161,7 @@
@ApiModelProperty(value = "鎴愬搧璁″垝涓婚敭锛堝叧鑱攚ork_plans琛級", example = "1")
private Integer workPlansId;
+ @ApiModelProperty(value = "鍏宠仈BOM瀵硅薄",hidden = true)
+ @TableField(exist = false)
+ private BomExtListVO bomModel;
}
diff --git a/server/src/main/java/doumeemes/dao/ext/beanDto/QueryWStockDto.java b/server/src/main/java/doumeemes/dao/ext/beanDto/QueryWStockDto.java
index 4dbcd75..d1b5074 100644
--- a/server/src/main/java/doumeemes/dao/ext/beanDto/QueryWStockDto.java
+++ b/server/src/main/java/doumeemes/dao/ext/beanDto/QueryWStockDto.java
@@ -80,5 +80,7 @@
@ApiModelProperty(value = "宸ュ崟涓婚敭")
private Integer workorderId;
+ @ApiModelProperty(value = "宸ュ簭璁″垝涓婚敭")
+ private Integer plansId;
}
diff --git a/server/src/main/java/doumeemes/dao/ext/dto/QueryBomDetailExtDTO.java b/server/src/main/java/doumeemes/dao/ext/dto/QueryBomDetailExtDTO.java
index d5e345e..c02597a 100644
--- a/server/src/main/java/doumeemes/dao/ext/dto/QueryBomDetailExtDTO.java
+++ b/server/src/main/java/doumeemes/dao/ext/dto/QueryBomDetailExtDTO.java
@@ -256,6 +256,8 @@
@ApiModelProperty(value = "宸ュ崟缂栫爜", example = "1",hidden = true)
private Integer workorderId;
+ @ApiModelProperty(value = "宸ュ簭璁″垝涓婚敭", example = "1",hidden = true)
+ private Integer plansId;
@ApiModelProperty(value = "鐗╂枡娓呭崟淇℃伅琛ㄦ渶鍚庡惎鐢ㄦ椂闂�")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date bmodelValidTime;
diff --git a/server/src/main/java/doumeemes/dao/ext/dto/QueryBomExtDTO.java b/server/src/main/java/doumeemes/dao/ext/dto/QueryBomExtDTO.java
index 3800a9a..b3a00a3 100644
--- a/server/src/main/java/doumeemes/dao/ext/dto/QueryBomExtDTO.java
+++ b/server/src/main/java/doumeemes/dao/ext/dto/QueryBomExtDTO.java
@@ -1,5 +1,7 @@
package doumeemes.dao.ext.dto;
+import com.baomidou.mybatisplus.annotation.TableField;
+import doumeemes.dao.ext.vo.BomExtListVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -286,4 +288,5 @@
@ApiModelProperty(value = "鐗╂枡娓呭崟淇℃伅琛ㄤ富閿�", example = "1")
private Integer bmodelId;
+
}
diff --git a/server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java b/server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java
index e07774a..43c59ef 100644
--- a/server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java
+++ b/server/src/main/java/doumeemes/dao/ext/vo/PlansExtListVO.java
@@ -170,4 +170,17 @@
@ExcelColumn(name="鎴愬搧璁″垝缂栫爜")
private String workPlanCode;
+ @ExcelColumn(name="閿�鍞鍗�")
+ private String salesOrder;
+
+ @ApiModelProperty(value = "鎴愬搧璁″垝寮�濮嬫椂闂�")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date workPlanStartDate;
+
+ @ApiModelProperty(value = "鎴愬搧璁″垝缁撴潫鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date workPlanEndDate;
+
+ @ApiModelProperty(value = "宸茬敓浜ф暟閲�")
+ private Integer produceNum;
}
diff --git a/server/src/main/java/doumeemes/service/ext/WorkorderRecordStandardService.java b/server/src/main/java/doumeemes/service/ext/WorkorderRecordStandardService.java
index f3ffd3a..8473bf7 100644
--- a/server/src/main/java/doumeemes/service/ext/WorkorderRecordStandardService.java
+++ b/server/src/main/java/doumeemes/service/ext/WorkorderRecordStandardService.java
@@ -36,4 +36,6 @@
List<WorkorderRecord> getWorkorderRecordList(Integer workorderId);
PageData<WStockExtListVO> choiceStockPageForWorkorder(PageWrap<QueryWStockDto> pageWrap, LoginUserInfo userInfo);
+
+ PageData<WStockExtListVO> choiceStockPageForPlans(PageWrap<QueryWStockDto> pageWrap,LoginUserInfo userInfo);
}
diff --git a/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
index 1c5be18..271a637 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
@@ -1563,14 +1563,17 @@
if(Objects.isNull(plans)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌宸ュ簭璁″垝鏁版嵁");
}
- if(plans.getStatus().equals(Constants.PLAN_STATUS.create)){
+ if(!(plans.getStatus().equals(Constants.PLAN_STATUS.create)||plans.getStatus().equals(Constants.PLAN_STATUS.distribute))){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸ュ簭璁″垝宸叉祦杞紝鏃犳硶鎿嶄綔");
+ }
+ if(plans.getPaused().equals(Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸ュ簭璁″垝宸叉殏鍋滐紝鏃犳硶鎿嶄綔");
}
if(Objects.isNull(autoWorkReportDTO.getCreateWorkorderRecordDTO())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍙傛暟閿欒锛氫骇鍑烘暟鎹�");
}
//鏌ヨ宸ュ簭璁″垝宸插垎閰嶆暟閲�
- List<Workorder> workorderList = workorderExtMapper.selectList(new QueryWrapper<Workorder>().eq("PLAN_ID",plans.getId()));
+ List<Workorder> workorderList = workorderExtMapper.selectList(new QueryWrapper<Workorder>().eq("PLAN_ID",plans.getId()).notIn("STATUS",7,8));
//鏈浜у嚭鏁伴噺
BigDecimal num = autoWorkReportDTO.getCreateWorkorderRecordDTO().getQualifiedNum().add(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum());
if(num.compareTo(BigDecimal.ZERO)<=Constants.ZERO){
@@ -1601,6 +1604,15 @@
workorderRecordStandardService.createWorkorderRecord(autoWorkReportDTO.getCreateWorkorderRecordDTO(),user);
//宸ュ崟鎶ュ伐
workorderRecordStandardService.comfirmDone(workorder);
+ //鏇存柊宸ュ崟鐘舵��
+ if(num.compareTo(BigDecimal.valueOf(surplusNum))==Constants.ZERO){
+ plans.setStatus(Constants.PLAN_STATUS.done);
+ }else{
+ if(plans.getStatus().equals(Constants.PLAN_STATUS.create)){
+ plans.setStatus(Constants.PLAN_STATUS.distribute);
+ }
+ }
+ plansExtMapper.updateById(plans);
}
diff --git a/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java
index fff2bcd..ffb5760 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java
@@ -83,6 +83,10 @@
private MaterialExtMapper materialExtMapper;
@Autowired
private SalaryParamMapper salaryParamMapper;
+ @Autowired
+ private PlansExtMapper plansExtMapper;
+ @Autowired
+ private DeviceExtMapper deviceExtMapper;
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
@Override
@@ -188,6 +192,14 @@
return mp;
}
+ private void getPlansAndValid(LoginUserInfo user, Plans mp) throws BusinessException{
+ if(mp== null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝璇ヨ褰曚笉瀛樺湪锛�");
+ }
+ if(Constants.equalsInteger(mp.getPaused(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝宸ュ崟宸叉殏鍋滐紒");
+ }
+ }
private QueryBomDetailExtDTO initBomParam(LoginUserInfo user, Workorder mp) throws BusinessException{
QueryBomExtDTO bb = new QueryBomExtDTO();
@@ -207,6 +219,27 @@
bom.setBomId(versionBom.getBomVersionId());
// bom.setProcedureId(mp.getProcedureId());
bom.setWorkorderId(mp.getId());
+ return bom;
+ }
+
+ private QueryBomDetailExtDTO initBomParamForPlans(LoginUserInfo user, Plans plans) throws BusinessException{
+ QueryBomExtDTO bb = new QueryBomExtDTO();
+ bb.setDepartId(plans.getDepartId());
+ bb.setDeleted(Constants.ZERO);
+ bb.setRootDepartId(user.getRootDepartment().getId());
+ bb.setMaterialId(plans.getMaterialId());
+ bb.setProcedureId(plans.getProcedureId());
+ BomExtListVO versionBom = bomExtMapper.selectByModel( bb);
+ if(versionBom == null || StringUtils.isBlank(versionBom.getVersion()) || versionBom.getBomVersionId() == null){
+ return null;
+ // throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝璇ュ伐鍗曠墿鏂橞OM淇℃伅閰嶇疆鏈夎锛岃鑱旂郴绠$悊鍛橈紒");
+ }
+ plans.setBomModel(versionBom);
+ QueryBomDetailExtDTO bom = new QueryBomDetailExtDTO();
+ bom.setDeleted(Constants.ZERO);
+ bom.setBomId(versionBom.getBomVersionId());
+// bom.setProcedureId(mp.getProcedureId());
+ bom.setPlansId(plans.getId());
return bom;
}
@@ -1110,7 +1143,52 @@
return PageData.from(new PageInfo<>(result));
}
-
+ @Override
+ public PageData<WStockExtListVO> choiceStockPageForPlans(PageWrap<QueryWStockDto> pageWrap,LoginUserInfo userInfo) {
+ Plans plans =plansExtMapper.selectById(pageWrap.getModel().getPlansId());
+ if(Objects.isNull(plans)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏈煡璇㈠埌宸ュ簭璁″垝淇℃伅锛�");
+ }
+ Device device = deviceExtMapper.selectById(pageWrap.getModel().getDeviceId());
+ if(Objects.isNull(plans)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏈煡璇㈠埌璁惧淇℃伅锛�");
+ }
+ //鏌ヨ骞堕獙璇佸伐鍗曚俊鎭�
+ this.getPlansAndValid(userInfo,plans);
+ //鏌ヨ鍏ㄩ儴bom缁勬垚鏁版嵁锛屽鏋滄湁BOM閰嶇疆锛屾寜鐓OM缁勬垚杩涜鎶曟枡锛屽鏋滄病鏈塀OM閰嶇疆锛屽垯鎶曟枡鐗╂枡涓哄緟鐢熶骇搴撲綅鐨勭墿鏂欐湰韬�
+ QueryBomDetailExtDTO bdparam = initBomParamForPlans(userInfo,plans);
+ List<BomDetailExtListVO> bomDetailList = null;
+ if(bdparam!=null){
+ bomDetailList = bomDetailExtMapper.selectList(bdparam);
+ List<Integer> materialDistributeId = bomDetailList.stream().map(BomDetailExtListVO::getMaterialId).collect(Collectors.toList());
+ pageWrap.getModel().setMaterialDistributeId(materialDistributeId);
+ }else{
+ //鏌ヨ鐗╂枡BOM淇℃伅
+ Bom bom = bomExtMapper.selectOne(new QueryWrapper<Bom>().eq("MATERIAL_ID",plans.getMaterialId()).eq("DELETED",Constants.ZERO).last(" limit 1 "));
+ if(Objects.isNull(bom)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏈煡璇㈠埌BOM淇℃伅锛�");
+ }
+ RouteProcedure currentRouteProcedure = routeProcedureExtMapper.selectOne(new QueryWrapper<RouteProcedure>()
+ .eq("ROUTE_ID",bom.getRouteId())
+ .eq("PROCEDURE_ID",plans.getProcedureId())
+ .last(" limit 1 ")
+ );
+ if(currentRouteProcedure!=null){
+ RouteProcedure routeProcedure = routeProcedureExtMapper.selectOne(new QueryWrapper<RouteProcedure>()
+ .eq("ROUTE_ID",currentRouteProcedure.getRouteId()).apply(" SORTNUM < " + currentRouteProcedure.getSortnum() ).eq("STATUS",Constants.ONE).orderByDesc(" SORTNUM ").last(" limit 1 ")
+ );
+ if(Objects.isNull(routeProcedure)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏈煡璇㈠埌鐢熶骇鐗╂枡涓婁竴姝ュ伐搴忎俊鎭紒");
+ }
+ pageWrap.getModel().setProcedureId(routeProcedure.getProcedureId());
+ pageWrap.getModel().setMaterialId(plans.getMaterialId());
+ }
+ }
+ pageWrap.getModel().setLocationId(device.getProduceWarehouseLocationId());
+ PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
+ List<WStockExtListVO> result = wStockExtMapper.choiceStockList(pageWrap.getModel());
+ return PageData.from(new PageInfo<>(result));
+ }
@Override
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
@@ -1184,5 +1262,8 @@
workorderRecordExtMapper.insert(workorderRecord);
return workorderRecord;
}
+
+
+
}
diff --git a/server/src/main/resources/mappers/PlansExtMapper.xml b/server/src/main/resources/mappers/PlansExtMapper.xml
index 7e4878d..588478d 100644
--- a/server/src/main/resources/mappers/PlansExtMapper.xml
+++ b/server/src/main/resources/mappers/PlansExtMapper.xml
@@ -366,7 +366,9 @@
,( SELECT sum( b.PLAN_NUM ) FROM workorder b WHERE b.deleted = 0 AND b.PLAN_ID = a.id and b.status !=6) AS workorderDistributNum ,
`mmodel`.name as materialName , `mmodel`.code as materialCode ,`fmodel`.name as factoryName , `pmodel`.name as produceName ,
concat(`usermodel`.realname,' ',`usermodel`.mobile) as planUserName , `umodel`.name as unitName ,
- w.PLAN_CODE as workPlanCode
+ w.PLAN_CODE as workPlanCode , w.SALESORDER as salesOrder ,
+ w.START_DATE as workPlanStartDate , w.PLAN_DATE as workPlanEndDate,
+ ifnull((select sum(worder.PLAN_NUM) from workorder worder where worder.PLAN_ID = a.id and worder.STATUS not in (7,8) ),0) as produceNum
FROM `plans` `a`
LEFT JOIN `department` `dmodel` ON a.DEPART_ID=dmodel.ID
--
Gitblit v1.9.3