From 70a0df1acc71a0ae4731fde6d595979d15a9ec94 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期一, 14 八月 2023 18:43:08 +0800 Subject: [PATCH] 111 --- 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