From add701dd94745e584871c519dd05557737bdea33 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 14 八月 2023 18:43:24 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmMes --- server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java | 82 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 79 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java index f649584..8ec0cff 100644 --- a/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java +++ b/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java @@ -16,7 +16,9 @@ import doumeemes.core.utils.redis.RedisUtil; import doumeemes.dao.business.BackOrderDetailMapper; import doumeemes.dao.business.BackorderMapper; +import doumeemes.dao.business.SalaryParamMapper; import doumeemes.dao.business.dto.CreateMaterialDTO; +import doumeemes.dao.business.dto.CreateWorkorderRecordDTO; import doumeemes.dao.business.dto.DealWorkorderRecordDTO; import doumeemes.dao.business.dto.MaterialListDTO; import doumeemes.dao.business.model.*; @@ -79,6 +81,8 @@ private WOutboundRecordExtMapper wOutboundRecordExtMapper; @Autowired private MaterialExtMapper materialExtMapper; + @Autowired + private SalaryParamMapper salaryParamMapper; @Transactional(rollbackFor = {BusinessException.class,Exception.class}) @Override @@ -981,15 +985,15 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇ュ伐鍗曚俊鎭紒"); } if(Objects.isNull(dealWorkorderRecordDTO.getDownType()) - ||Objects.isNull(dealWorkorderRecordDTO.getWorkorderId()) - ||Objects.isNull(dealWorkorderRecordDTO.getNum()) + ||Objects.isNull(dealWorkorderRecordDTO.getWorkorderId()) + ||Objects.isNull(dealWorkorderRecordDTO.getNum()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } WorkorderRecord workorderRecord = new WorkorderRecord(); if(Objects.isNull(dealWorkorderRecordDTO.getRecordId())){ //鏌ヨ宸ュ崟涓嬫槸鍚﹀瓨鍦ㄥ搴旇褰� - workorderRecord = workorderRecordExtMapper.selectOne(new QueryWrapper<WorkorderRecord>() + workorderRecord = workorderRecordExtMapper.selectOne(new QueryWrapper<WorkorderRecord>() .eq("WORKORDER_ID",dealWorkorderRecordDTO.getWorkorderId()) .eq("DONE_TYPE",dealWorkorderRecordDTO.getDownType()) .eq("TYPE",Constants.ONE) @@ -1108,4 +1112,76 @@ } + + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public WorkorderRecord createWorkorderRecord(CreateWorkorderRecordDTO createWorkorderRecordDTO, LoginUserInfo loginUserInfo){ + Workorder workorder = workorderExtMapper.selectById(createWorkorderRecordDTO.getWorkorderId()); + if(Objects.isNull(workorder)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏈煡璇㈠埌璇ュ伐鍗曚俊鎭紒"); + } + if(Objects.isNull(createWorkorderRecordDTO.getUnQualifiedNum()) + ||Objects.isNull(createWorkorderRecordDTO.getUnQualifiedNum()) + ||Objects.isNull(createWorkorderRecordDTO.getWorkorderId()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + BigDecimal num = createWorkorderRecordDTO.getQualifiedNum().add(createWorkorderRecordDTO.getUnQualifiedNum()); + WorkorderRecord workorderRecord = new WorkorderRecord(); + //鏌ヨ宸ュ崟涓嬫槸鍚﹀瓨鍦ㄥ搴旇褰� + workorderRecord = workorderRecordExtMapper.selectOne(new QueryWrapper<WorkorderRecord>() + .eq("WORKORDER_ID",createWorkorderRecordDTO.getWorkorderId()) + .eq("TYPE",Constants.ONE) + .eq("DELETED",Constants.ZERO) + .last(" limit 1 ") + ); + if(!Objects.isNull(workorderRecord)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇ュ伐鍗曠殑璇ョ被浜у嚭璁板綍宸插瓨鍦紒"); + } + if(num.compareTo(BigDecimal.valueOf(workorder.getPlanNum()))>Constants.ZERO){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇ュ伐鍗曠殑浜у嚭鏁伴噺涓嶈兘澶т簬宸ュ崟璁″垝鏁伴噺锛�"); + } + //鏁版嵁瀛樺偍 + workorderRecord = new WorkorderRecord(); + workorderRecord.setDeleted(Constants.ZERO); + workorderRecord.setCreateUser(loginUserInfo.getId()); + workorderRecord.setCreateTime(new Date()); + workorderRecord.setNum(num); + workorderRecord.setRootDepartId(loginUserInfo.getRootDepartment().getId()); + workorderRecord.setDepartId(loginUserInfo.getCurComDepartment().getId()); + workorderRecord.setPlanId(workorder.getPlanId()); + workorderRecord.setWorkorderId(createWorkorderRecordDTO.getWorkorderId()); + workorderRecord.setBatch(workorder.getBatch()); + workorderRecord.setFactoryId(workorder.getFactoryId()); + workorderRecord.setProcedureId(workorder.getProcedureId()); + workorderRecord.setProDate(new Date()); + workorderRecord.setType(Constants.ONE); + workorderRecord.setMaterialId(workorder.getMaterialId()); + workorderRecord.setUnitId(workorder.getUnitId()); + workorderRecord.setMaterialBatch(workorder.getBatch()); + workorderRecord.setUnqualifiedNum(createWorkorderRecordDTO.getUnQualifiedNum()); + workorderRecord.setQualifiedNum(createWorkorderRecordDTO.getQualifiedNum()); + //璁$畻宸ヨ祫淇℃伅 + SalaryParam salaryParam = salaryParamMapper.selectOne(new QueryWrapper<SalaryParam>().eq("DELETED",Constants.ZERO).eq("MATERIAL_ID",workorderRecord.getMaterialId()) + .eq("DEPART_ID",workorderRecord.getFactoryId()).eq("PROCEDURE_ID",workorderRecord.getProcedureId()).last(" limit 1 ")); + if(Objects.isNull(salaryParam)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈厤缃伐璧勭哗鏁堥厤缃紒"); + } + workorderRecord.setSalaryPrice(salaryParam.getSalary()); + workorderRecord.setSalaryType(salaryParam.getType()); + workorderRecord.setSalaryUnqualified(salaryParam.getUnqualified()); + + //璁′欢宸ヨ祫 + if(salaryParam.getType().equals(Constants.ZERO)){ + workorderRecord.setSalaryNum(salaryParam.getNum()); + workorderRecord.setSalary(salaryParam.getSalary().multiply(salaryParam.getUnqualified()==Constants.ZERO?num:createWorkorderRecordDTO.getUnQualifiedNum())); + }else{ + workorderRecord.setDuration(createWorkorderRecordDTO.getDuration()); + workorderRecord.setSalary(BigDecimal.valueOf(createWorkorderRecordDTO.getDuration()).multiply(salaryParam.getSalary()).divide(new BigDecimal(3600))); + } + + workorderRecordExtMapper.insert(workorderRecord); + return workorderRecord; + } + } -- Gitblit v1.9.3