From 287934f48daa9889f824e12d1af687bc5aa3bbe2 Mon Sep 17 00:00:00 2001
From: Mr.Zhang <710666463@qq.com>
Date: 星期一, 14 八月 2023 18:59:20 +0800
Subject: [PATCH] 工资
---
server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java | 67 ++++++++++++++++++++++++++++++++-
1 files changed, 65 insertions(+), 2 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 0c69384..e6ac936 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java
@@ -16,11 +16,13 @@
import doumeemes.core.utils.excel.EasyExcelUtil;
import doumeemes.core.utils.redis.RedisUtil;
import doumeemes.dao.business.PlansMapper;
+import doumeemes.dao.business.dto.*;
import doumeemes.dao.business.model.*;
import doumeemes.dao.ext.*;
import doumeemes.dao.ext.dto.*;
import doumeemes.dao.ext.vo.*;
import doumeemes.service.ext.*;
+import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
@@ -35,6 +37,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
/**
* 鐢熶骇璁″垝Service瀹炵幇
@@ -84,6 +87,8 @@
private MaterialDistributeExtMapper materialDistributeExtMapper;
@Autowired
private WStockExtService wStockExtService;
+ @Autowired
+ private WorkorderRecordStandardService workorderRecordStandardService;
@Override
public PlansExtListVO findById(Integer id){
@@ -565,7 +570,7 @@
distributeDone(user, param,param.getPlanNum());
}
- private void distributeDone(LoginUserInfo user, Workorder param,int thisPlanNum) {
+ private Workorder distributeDone(LoginUserInfo user, Workorder param,int thisPlanNum) {
if(param.getPlanId()== null
||param.getPlanDate() == null
|| param.getProGroupId()==null
@@ -648,7 +653,7 @@
//鐢熶骇浜哄憳璁板綍
workorderUserExtMapper.insert(wu);
}
-
+ return order;
}
private void checkUserAndGroup(Workorder param, PlansExtListVO model,LoginUserInfo user) throws BusinessException{
@@ -1545,4 +1550,62 @@
}
+
+ /**
+ * 涓�閿姤宸�
+ * @param user
+ */
+ @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+ @Override
+ public void autoWorkReport(LoginUserInfo user, AutoWorkReportDTO autoWorkReportDTO){
+ //鏌ヨ宸ュ伐搴忚鍒掔姸鎬�
+ 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)){
+ 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()));
+ //鏈浜у嚭鏁伴噺
+ 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 surplusNum = plans.getNum() - produceNum;
+ if(num.compareTo(BigDecimal.valueOf(surplusNum))>0){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍙傛暟閿欒锛氳秴鍑哄伐鍗曞墿浣欏彲鍒嗛厤鏁伴噺");
+ }
+ Workorder param = new Workorder();
+ param.setPlanId(autoWorkReportDTO.getPlansId());
+ param.setPlanDate(new Date());
+ List<Integer> proUserList = new ArrayList<Integer>();
+ //TODO
+ proUserList.add(user.getId());
+ param.setProUserList(proUserList);
+ param.setPlanNum(plans.getNum());
+ //鐢熸垚宸ュ崟淇℃伅
+ Workorder workorder = this.distributeDone(user,param,plans.getNum());
+ //宸ュ崟鎶曟枡璁板綍
+ CreateMaterialDTO createMaterialDTO = new CreateMaterialDTO();
+ if(!Objects.isNull(autoWorkReportDTO.getRecordList())&&autoWorkReportDTO.getRecordList().size()>Constants.ZERO){
+ createMaterialDTO.setId(workorder.getId());
+ createMaterialDTO.setRecordList(autoWorkReportDTO.getRecordList());
+ workorderRecordStandardService.createMaterialStandard(createMaterialDTO);
+ }
+ //宸ュ崟浜у嚭璁板綍
+ workorderRecordStandardService.createWorkorderRecord(autoWorkReportDTO.getCreateWorkorderRecordDTO(),user);
+ //宸ュ崟鎶ュ伐
+ workorderRecordStandardService.comfirmDone(workorder);
+
+
+ }
+
+
}
--
Gitblit v1.9.3