From 2f6529a3efdd6812e13dbc37ce09974e3a024055 Mon Sep 17 00:00:00 2001 From: jiaosong <jiaosong6760@dingtalk.com> Date: 星期三, 16 八月 2023 16:52:41 +0800 Subject: [PATCH] # 工资表配置表 导出模板索字段添加 --- server/src/main/java/doumeemes/service/ext/impl/PlansExtServiceImpl.java | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 104 insertions(+), 5 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..4bb8e2c 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,14 @@ import doumeemes.core.utils.excel.EasyExcelUtil; import doumeemes.core.utils.redis.RedisUtil; import doumeemes.dao.business.PlansMapper; +import doumeemes.dao.business.WorkorderMapper; +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; @@ -32,9 +35,11 @@ import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; /** * 鐢熶骇璁″垝Service瀹炵幇 @@ -61,7 +66,8 @@ private WorkorderHistoryExtMapper workorderHistoryExtMapper; @Autowired private WorkorderRecordExtMapper workorderRecordExtMapper; - + @Autowired + private WorkorderMapper workorderMapper; @Autowired private RouteProcedureExtMapper routeProcedureExtMapper; @Autowired @@ -84,6 +90,8 @@ private MaterialDistributeExtMapper materialDistributeExtMapper; @Autowired private WStockExtService wStockExtService; + @Autowired + private WorkorderRecordStandardService workorderRecordStandardService; @Override public PlansExtListVO findById(Integer id){ @@ -134,6 +142,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; } @@ -192,6 +213,14 @@ // p.setDistributNum(tp.getDistributNum()); // p.setDoneNum(tp.getDoneNum()); p.setIsStock(wStockExtService.isStockForPlan(p)); + p.setHasExpire(false); + p.setStatus(Constants.formatIntegerNum(p.getStatus())); + if ( !p.getStatus().equals(Constants.PLAN_STATUS.done) && + !p.getStatus().equals(Constants.PLAN_STATUS.close)){ + if (Objects.nonNull(p.getPlanDate())){ + p.setHasExpire(DateUtil.toDateLocalDateTime(p.getWorkPlanPlanDate()).toLocalDate().isBefore(LocalDate.now())); + } + } } } return PageData.from(new PageInfo<>(result)); @@ -565,7 +594,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 @@ -587,7 +616,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)){ @@ -648,7 +677,7 @@ //鐢熶骇浜哄憳璁板綍 workorderUserExtMapper.insert(wu); } - + return order; } private void checkUserAndGroup(Workorder param, PlansExtListVO model,LoginUserInfo user) throws BusinessException{ @@ -1502,7 +1531,7 @@ } /** * 鎭㈠璁″垝 - * @param p + * @param */ @Transactional(rollbackFor = {BusinessException.class,Exception.class}) @Override @@ -1545,4 +1574,74 @@ } + + /** + * 涓�閿姤宸� + * @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)||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 = workorderMapper.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){ + 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()); + param.setProGroupId(autoWorkReportDTO.getProGroupId()); + param.setProUserList(autoWorkReportDTO.getProUserList()); + 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); + } + //宸ュ崟浜у嚭璁板綍 + autoWorkReportDTO.getCreateWorkorderRecordDTO().setWorkorderId(workorder.getId()); + 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); + + + } + + } -- Gitblit v1.9.3