From 074f334d060ec7d33d39cdeaae5ed84a2a2dd3a3 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 22 八月 2023 18:20:59 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmMes
---
server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java | 145 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 115 insertions(+), 30 deletions(-)
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 10f2345..c3ecd72 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
@@ -16,6 +16,8 @@
import doumeemes.core.utils.excel.EasyExcelUtil;
import doumeemes.core.utils.redis.RedisUtil;
import doumeemes.dao.business.PlansMapper;
+import doumeemes.dao.business.UnqualifiedRecordMapper;
+import doumeemes.dao.business.WorkorderMapper;
import doumeemes.dao.business.dto.*;
import doumeemes.dao.business.model.*;
import doumeemes.dao.ext.*;
@@ -35,10 +37,7 @@
import java.math.BigDecimal;
import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
/**
* 鐢熶骇璁″垝Service瀹炵幇
@@ -65,7 +64,8 @@
private WorkorderHistoryExtMapper workorderHistoryExtMapper;
@Autowired
private WorkorderRecordExtMapper workorderRecordExtMapper;
-
+ @Autowired
+ private WorkorderMapper workorderMapper;
@Autowired
private RouteProcedureExtMapper routeProcedureExtMapper;
@Autowired
@@ -90,6 +90,10 @@
private WStockExtService wStockExtService;
@Autowired
private WorkorderRecordStandardService workorderRecordStandardService;
+ @Autowired
+ private UnqualifiedRecordMapper unqualifiedRecordMapper;
+ @Autowired
+ private CompanyUserExtMapper companyUserExtMapper;
@Override
public PlansExtListVO findById(Integer id){
@@ -123,7 +127,7 @@
if(user.getProcedureIds()!=null){
pageWrap.setProcedureIds(user.getProcedureIds());
}else{
- pageWrap.setUserId(user.getId());
+ pageWrap.setCreateUser(user.getId());
}
List<PlansExtListVO> result = plansExtMapper.selectList(pageWrap);
if(result==null||result.size()==0){
@@ -140,6 +144,19 @@
// //缁熻宸插畬宸ユ暟閲�
// param.setStatus(Constants.WORKORDER_STATUS.done);
// plan.setDoneNum(workorderExtMapper.sumOrderNum(param));
+ QueryBomExtDTO bb = new QueryBomExtDTO();
+ bb.setDepartId(plan.getDepartId());
+ bb.setDeleted(Constants.ZERO);
+ bb.setRootDepartId(user.getRootDepartment().getId());
+ bb.setMaterialId(plan.getMaterialId());
+ bb.setProcedureId(plan.getProcedureId());
+ BomExtListVO versionBom = bomExtMapper.selectByModel( bb);
+ if(versionBom == null || StringUtils.isBlank(versionBom.getVersion()) || versionBom.getBomVersionId() == null){
+ plan.setHasBom(Constants.ZERO);
+ }else {
+ plan.setBomType(Constants.formatIntegerNum(versionBom.getType()));
+ plan.setHasBom(Constants.ONE);
+ }
return plan;
}
@@ -149,6 +166,7 @@
initPlanStatisticInfo(t);
PlansExtListH5VO plan = new PlansExtListH5VO();
BeanUtils.copyProperties(t,plan);
+// plan.setDoneNum();
plan.setWorkorderList(workorderExtService.findByPlanId(plan,true));
return plan;
}
@@ -172,12 +190,6 @@
pageWrap.getModel().setCreateUser(user.getId());
//鍚﹀垯璧版暟鎹潈闄�
pageWrap.getModel().setDepartIds(dataPermission);
- /* if(dataPermission.size() == 0){
- //鍙兘鐪嬭嚜宸辩殑
- pageWrap.getModel().setCreateUser(user.getId());
- }else{
-
- }*/
}
if(user.getProcedureIds()!=null){
pageWrap.getModel().setProcedureIds(user.getProcedureIds());
@@ -601,7 +613,7 @@
if(Constants.equalsInteger(mp.getPaused(),Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝璁″垝宸叉殏鍋滐紒");
}
- if(Constants.formatIntegerNum(mp.getDistributNum())+thisPlanNum > Constants.formatIntegerNum(mp.getNum())){
+ if(Constants.formatIntegerNum(mp.getWorkorderDistributNum())+thisPlanNum > Constants.formatIntegerNum(mp.getNum())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝绱鍒嗛厤鏁伴噺澶т簬璁″垝鏁伴噺锛�");
}
if(!Constants.equalsInteger(mp.getStatus(),Constants.PLAN_STATUS.publish)&&!Constants.equalsInteger(mp.getStatus(),Constants.PLAN_STATUS.distribute)){
@@ -623,7 +635,7 @@
List<WorkorderHistory> whList = new ArrayList<>();
Workorder order = new Workorder();
order.setCreateTime(DateUtil.getCurrentDate());
- order.setCreateUser(user.getId());
+ order.setCreateUser(param.getCreateUser());
order.setDeleted(Constants.ZERO);
order.setStatus(Constants.WORKORDER_STATUS.create);
order.setPlanId(mp.getId());
@@ -643,6 +655,8 @@
order.setUrgent(mp.getUrgent());
order.setFactoryId(mp.getFactoryId());
order.setBackorderId(mp.getBackorderId());
+ order.setUnqualifiedNum(param.getUnqualifiedNum());
+ order.setQualifiedNum(param.getQualifiedNum());
order.setOriginId(systemDictDataBiz.queryByCode(Constants.WORKORDER_SOURCE,Constants.WORKORDER_SOURCE_PLAN).getId());
//宸ュ崟缂栫爜
order.setCode(workorderExtService.getNextCode(user.getCompany().getId()));
@@ -650,9 +664,9 @@
order.setQrcodeId(barcodeParamExtService.getByType(user.getCompany().getId(),mp.getDepartId(),Constants.BARCODEPARAM_TYPE.workorder));
order.setProUserList(param.getProUserList());
order.setProGroupId(param.getProGroupId());
- //鏌ヨ鐢熶骇鐝粍鍜屼汉鍛樻槸鍚﹀悎娉�
- checkUserAndGroup(order,mp,user);
workorderExtMapper.insert(order);
+ //鏌ヨ鐢熶骇鐝粍鍜屼汉鍛樻槸鍚﹀悎娉�
+ checkUserAndGroupNew(order,mp,user);
//宸ュ崟鍘嗗彶鏁版嵁
whList.add(WorkorderExtServiceImpl.initHistoryByModel(order,user.getId(),Constants.WORKORDER_HISTORY_STATUS.create));
workorderHistoryExtMapper.insertBatch(whList);
@@ -663,6 +677,34 @@
workorderUserExtMapper.insert(wu);
}
return order;
+ }
+
+
+ private void checkUserAndGroupNew(Workorder param, PlansExtListVO model,LoginUserInfo user) throws BusinessException{
+ QueryDeviceExtDTO ud = new QueryDeviceExtDTO();
+ ud.setDeleted(Constants.ZERO);
+ ud.setId(param.getProGroupId());
+ ud.setRootDepartId(user.getRootDepartment().getId());
+ //鏌ヨ鐢ㄦ埛璁惧鍏宠仈鍏崇郴
+ DeviceExtListVO d = deviceExtMapper.selectByModel( ud );
+ if(d == null){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鐢熶骇璁惧淇℃伅涓嶆纭紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+ }
+
+ List<WorkorderUser> userList = new ArrayList<>();
+ for(Integer userId : param.getProUserList()){
+ WorkorderUser u = new WorkorderUser();
+ u.setProUserId(userId);
+ u.setPlanId(model.getId());
+ u.setCreateUser(user.getId());
+ u.setDeleted(Constants.ZERO);
+ u.setCreateTime(DateUtil.getCurrentDate());
+ u.setRootDepartId(model.getRootDepartId());
+ u.setDepartId(model.getDepartId());
+ userList.add(u);
+ }
+ param.setWorkorderUserList(userList);
+
}
private void checkUserAndGroup(Workorder param, PlansExtListVO model,LoginUserInfo user) throws BusinessException{
@@ -687,9 +729,9 @@
if(ulist == null){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鐢熶骇浜哄憳淇℃伅涓嶆纭紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
}
- if(ulist.size() < param.getProUserList().size()){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝瀛樺湪鐢熶骇浜哄憳淇℃伅涓嶆纭紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
- }
+// if(ulist.size() < param.getProUserList().size()){
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝瀛樺湪鐢熶骇浜哄憳淇℃伅涓嶆纭紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+// }
List<WorkorderUser> userList = new ArrayList<>();
for(UserDeviceExtListVO uModel : ulist){
WorkorderUser u = new WorkorderUser();
@@ -1567,41 +1609,54 @@
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
@Override
public void autoWorkReport(LoginUserInfo user, AutoWorkReportDTO autoWorkReportDTO){
+ if(Objects.isNull(autoWorkReportDTO)
+ || Objects.isNull(autoWorkReportDTO.getCreateWorkorderRecordDTO())
+ || Objects.isNull(autoWorkReportDTO.getProUserList())
+ || Objects.isNull(autoWorkReportDTO.getProUserList().size()==0)
+ || Objects.isNull(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum())|| autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum().compareTo(BigDecimal.ZERO) < Constants.ZERO
+ || Objects.isNull(autoWorkReportDTO.getCreateWorkorderRecordDTO().getQualifiedNum())|| autoWorkReportDTO.getCreateWorkorderRecordDTO().getQualifiedNum().compareTo(BigDecimal.ZERO) < Constants.ZERO){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
//鏌ヨ宸ュ伐搴忚鍒掔姸鎬�
Plans plans = plansExtMapper.selectById(autoWorkReportDTO.getPlansId());
if(Objects.isNull(plans)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌宸ュ簭璁″垝鏁版嵁");
}
- if(!(plans.getStatus().equals(Constants.PLAN_STATUS.create)||plans.getStatus().equals(Constants.PLAN_STATUS.distribute))){
+ if(!(plans.getStatus().equals(Constants.PLAN_STATUS.create)||plans.getStatus().equals(Constants.PLAN_STATUS.publish)||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(),"鍙傛暟閿欒锛氫骇鍑烘暟鎹�");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍙傛暟閿欒锛氫骇鍑烘暟鎹�");
}
//鏌ヨ宸ュ簭璁″垝宸插垎閰嶆暟閲�
- List<Workorder> workorderList = workorderExtMapper.selectList(new QueryWrapper<Workorder>().eq("PLAN_ID",plans.getId()).notIn("STATUS",7,8));
+ List<Workorder> workorderList = workorderMapper.selectList(new QueryWrapper<Workorder>().eq("PLAN_ID",plans.getId())
+ .eq("STATUS",Constants.WORKORDER_STATUS.baogong));
//鏈浜у嚭鏁伴噺
BigDecimal num = autoWorkReportDTO.getCreateWorkorderRecordDTO().getQualifiedNum().add(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum());
if(num.compareTo(BigDecimal.ZERO)<=Constants.ZERO){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍙傛暟閿欒锛氫骇鍑烘暟鎹�");
}
//宸ュ崟宸插垎閰嶆暟閲�
- Integer produceNum = workorderList.stream().map(s -> s.getPlanNum()).reduce(Constants.ZERO, Integer::sum);
+ Integer produceNum = workorderList.stream().map(s -> s.getUnqualifiedNum() + s.getQualifiedNum()).reduce(Constants.ZERO, Integer::sum);
Integer surplusNum = plans.getNum() - produceNum;
if(num.compareTo(BigDecimal.valueOf(surplusNum))>0){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍙傛暟閿欒锛氳秴鍑哄伐鍗曞墿浣欏彲鍒嗛厤鏁伴噺");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瓒呭嚭褰撳墠宸ュ簭璁″垝鍙姤宸ユ暟閲�");
}
Workorder param = new Workorder();
param.setPlanId(autoWorkReportDTO.getPlansId());
param.setPlanDate(new Date());
+// CompanyUser companyUser= companyUserExtMapper.selectById(autoWorkReportDTO.getProUserList().get(Constants.ZERO));
+ param.setCreateUser(autoWorkReportDTO.getProUserList().get(Constants.ZERO));
param.setProGroupId(autoWorkReportDTO.getProGroupId());
param.setProUserList(autoWorkReportDTO.getProUserList());
- param.setPlanNum(plans.getNum());
+ param.setPlanNum(num.intValue());
//鐢熸垚宸ュ崟淇℃伅
- Workorder workorder = this.distributeDone(user,param,plans.getNum());
+ param.setUnqualifiedNum(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum().intValue());
+ param.setQualifiedNum(autoWorkReportDTO.getCreateWorkorderRecordDTO().getQualifiedNum().intValue());
+ Workorder workorder = this.distributeDone(user,param,num.intValue());
//宸ュ崟鎶曟枡璁板綍
CreateMaterialDTO createMaterialDTO = new CreateMaterialDTO();
if(!Objects.isNull(autoWorkReportDTO.getRecordList())&&autoWorkReportDTO.getRecordList().size()>Constants.ZERO){
@@ -1610,9 +1665,10 @@
workorderRecordStandardService.createMaterialStandard(createMaterialDTO);
}
//宸ュ崟浜у嚭璁板綍
- workorderRecordStandardService.createWorkorderRecord(autoWorkReportDTO.getCreateWorkorderRecordDTO(),user);
+ autoWorkReportDTO.getCreateWorkorderRecordDTO().setWorkorderId(workorder.getId());
+ WorkorderRecord workorderRecord = workorderRecordStandardService.createWorkorderRecord(autoWorkReportDTO.getCreateWorkorderRecordDTO(),user,autoWorkReportDTO.getProUserList().get(Constants.ZERO));
//宸ュ崟鎶ュ伐
- workorderRecordStandardService.comfirmDone(workorder);
+ workorderRecordStandardService.comfirmDone(workorder,false);
//鏇存柊宸ュ崟鐘舵��
if(num.compareTo(BigDecimal.valueOf(surplusNum))==Constants.ZERO){
plans.setStatus(Constants.PLAN_STATUS.done);
@@ -1622,8 +1678,37 @@
}
}
plansExtMapper.updateById(plans);
-
-
+ //鍙戦�佹秷鎭槦鍒楀鐞嗗垎浜搷浣�
+ workorderExtService.statisticNum(workorder);
+ //瀛樺偍鎶ュ伐涓嶈壇椤规暟鎹�
+ if(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum().compareTo(BigDecimal.ZERO)<=Constants.ZERO){
+ if(!Objects.isNull(autoWorkReportDTO.getCreateUnqualifiedDTOList())&&autoWorkReportDTO.getCreateUnqualifiedDTOList().size()>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓嶈壇椤归敊璇細璇锋鏌ヤ笉鑹」鏁版嵁");
+ }
+ }else{
+ List<CreateUnqualifiedDTO> createUnqualifiedDTOList = autoWorkReportDTO.getCreateUnqualifiedDTOList();
+ BigDecimal unqualified = createUnqualifiedDTOList.stream().map(s -> s.getUnQualifiedNum()).reduce(BigDecimal.ZERO, BigDecimal::add);
+ if(unqualified.compareTo(autoWorkReportDTO.getCreateWorkorderRecordDTO().getUnQualifiedNum())!=Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓嶈壇椤归敊璇細璇锋鏌ヤ笉鑹」鏁版嵁");
+ }
+ for (CreateUnqualifiedDTO createUnqualifiedDTO:createUnqualifiedDTOList) {
+ if(createUnqualifiedDTO.getUnQualifiedNum().compareTo(BigDecimal.ZERO)==Constants.ZERO
+ ||Objects.isNull(createUnqualifiedDTO.getCategoryId())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓嶈壇椤归敊璇細璇锋鏌ヤ笉鑹」鏁版嵁");
+ }
+ UnqualifiedRecord unqualifiedRecord = new UnqualifiedRecord();
+ unqualifiedRecord.setDeleted(Constants.ZERO);
+ unqualifiedRecord.setCreateUser(user.getId());
+ unqualifiedRecord.setCreateTime(new Date());
+ unqualifiedRecord.setRootDepartId(plans.getRootDepartId());
+ unqualifiedRecord.setDepartId(plans.getDepartId());
+ unqualifiedRecord.setWorkorderId(workorder.getId());
+ unqualifiedRecord.setRecordId(workorderRecord.getId());
+ unqualifiedRecord.setCategoryId(createUnqualifiedDTO.getCategoryId());
+ unqualifiedRecord.setUnqualifiedNum(createUnqualifiedDTO.getUnQualifiedNum());
+ unqualifiedRecordMapper.insert(unqualifiedRecord);
+ }
+ }
}
--
Gitblit v1.9.3