From a89fe32c353040bbb95d7519cf7bafc4b5934f10 Mon Sep 17 00:00:00 2001
From: Mr.Zhang <710666463@qq.com>
Date: 星期三, 06 九月 2023 09:54:14 +0800
Subject: [PATCH] 小程序
---
server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java | 78 +++++++++++++++++++++++++++++----------
1 files changed, 58 insertions(+), 20 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 d283106..c3ecd72 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
@@ -37,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瀹炵幇
@@ -95,6 +92,8 @@
private WorkorderRecordStandardService workorderRecordStandardService;
@Autowired
private UnqualifiedRecordMapper unqualifiedRecordMapper;
+ @Autowired
+ private CompanyUserExtMapper companyUserExtMapper;
@Override
public PlansExtListVO findById(Integer id){
@@ -128,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){
@@ -167,6 +166,7 @@
initPlanStatisticInfo(t);
PlansExtListH5VO plan = new PlansExtListH5VO();
BeanUtils.copyProperties(t,plan);
+// plan.setDoneNum();
plan.setWorkorderList(workorderExtService.findByPlanId(plan,true));
return plan;
}
@@ -190,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());
@@ -641,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());
@@ -661,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()));
@@ -668,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);
@@ -681,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{
@@ -1585,6 +1609,14 @@
@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)){
@@ -1597,7 +1629,7 @@
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 = workorderMapper.selectList(new QueryWrapper<Workorder>().eq("PLAN_ID",plans.getId())
@@ -1608,19 +1640,23 @@
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(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){
@@ -1630,9 +1666,9 @@
}
//宸ュ崟浜у嚭璁板綍
autoWorkReportDTO.getCreateWorkorderRecordDTO().setWorkorderId(workorder.getId());
- WorkorderRecord workorderRecord = workorderRecordStandardService.createWorkorderRecord(autoWorkReportDTO.getCreateWorkorderRecordDTO(),user);
+ 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);
@@ -1642,6 +1678,8 @@
}
}
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){
--
Gitblit v1.9.3