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