From e1ee1084bb6db4f8a87894109be1b7a9d216cfec Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 16 八月 2023 18:29:35 +0800 Subject: [PATCH] 111 --- server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java | 262 +++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 187 insertions(+), 75 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 17b1c9d..596283d 100644 --- a/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java +++ b/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordStandardServiceImpl.java @@ -794,6 +794,126 @@ +// private void dealAppliancePro(Workorder mp +// , LoginUserInfo user +// , List<WorkorderRecordExtListVO> allRecordList +// , List<Appliances> updateApplianceList +// , List<Appliances> updateApplianceProList +// , List<WOutboundDetail> outboundDetailList +// , List<WStock> stockList) { +// WOutbound outbound = new WOutbound(); +// outbound.setDeleted(Constants.ZERO); +// outbound.setCreateTime(DateUtil.getCurrentDate()); +// outbound.setDealDate(outbound.getCreateTime()); +// outbound.setValidDate(outbound.getCreateTime()); +// outbound.setCreateUser(user.getId()); +// outbound.setRootDepartId(mp.getRootDepartId()); +// outbound.setDepartId(mp.getDepartId()); +// outbound.setStatus(Constants.WOUTBOUND_STATUS.dealed); +// outbound.setType(Constants.WOUTBOUND_TYPE.in); +// //2022骞�7鏈�1鏃�14:42:41 鍔犲叆鍗曟嵁绫诲埆 +// outbound.setBillType(Constants.WOUTBOUND_BILLTYPE.workerOrderIn); +// outbound.setCode(wOutboundService.getNextInCode(user.getCompany().getId())); +// outbound.setOrigin(Constants.ONE); +// outbound.setOriginType(Constants.WOUTBOUND_ORIGIN_TYPE.produce); +// outbound.setOriginCode(mp.getCode()); +// outbound.setOriginId(mp.getId()); +// outbound.setPlanDate(DateUtil.getCurrentDate()); +// outbound.setProcedureId(mp.getProcedureId()); +// outbound.setUserId(user.getId()); +// outbound.setWarehouseId(mp.getFinishWarehouseId()); +// wOutboundService.create(outbound); +// +// List<WOutboundDetail> detailList = new ArrayList<>(); +// List<WOutboundRecord> recordList = new ArrayList<>(); +// for(WorkorderRecordExtListVO tModel :allRecordList){ +// if(Constants.equalsInteger(tModel.getType(),Constants.WORKORDER_RECORD_TYPE.produce)){ +// if(tModel.getNum().compareTo(BigDecimal.ZERO)<=Constants.ZERO){ +// continue; +// } +// //濡傛灉鏄骇鍑� +// mp.setHasProduceNum(Constants.formatBigdecimal(tModel.getNum()).intValue()+Constants.formatIntegerNum(mp.getHasProduceNum())); +// +// //鐗╂枡+鎵规+宸ュ簭+璐ㄩ噺灞炴�у幓閲� +// WOutboundDetail detail =getWoutbondDetailByList(tModel,detailList); +// if(detail!=null){ +// detail.setNum(Constants.formatBigdecimal(detail.getNum()).add(tModel.getNum())); +// }else{ +// detail = new WOutboundDetail(); +// detail.setDeleted(Constants.ZERO); +// detail.setCreateTime(DateUtil.getCurrentDate()); +// detail.setCreateUser(user.getId()); +// detail.setOutboundId(outbound.getId()); +// detail.setRootDepartId(outbound.getRootDepartId()); +// detail.setWarehouseId(outbound.getWarehouseId()); +// detail.setLocationId(mp.getFinishWarehouseLocationId()); +// detail.setNum(tModel.getNum()); +// detail.setStatus(Constants.ONE); +// detail.setDoneNum(tModel.getNum()); +// detail.setDoneDate(new Date()); +// detail.setUnitId(tModel.getUnitId()); +// detail.setBatch(tModel.getMaterialBatch()); +// detail.setProcedureId(tModel.getProcedureId()); +// detail.setMaterialId(tModel.getMaterialId()); +// detail.setQualityType(tModel.getDoneType()); +// detail.setWOutboundRecordInList(new ArrayList<>()); +// detailList.add(detail); +// } +// +// WOutboundRecord record = new WOutboundRecord(); +// record.setDeleted(Constants.ZERO); +// record.setCreateTime(DateUtil.getCurrentDate()); +// record.setCreateUser(user.getId()); +// record.setAppliancesId(tModel.getAppliancesId()); +// record.setBatch(detail.getBatch()); +// record.setRootDepartId(mp.getRootDepartId()); +// record.setNum(tModel.getNum()); +// record.setOutboundId(detail.getOutboundId()); +// record.setUnitId(detail.getUnitId()); +// record.setWarehouseId(detail.getWarehouseId()); +// record.setMaterialId(detail.getMaterialId()); +// record.setProcedureId(detail.getProcedureId()); +// record.setLocationId(detail.getLocationId()); +// record.setQualityType(detail.getQualityType()); +// detail.getWOutboundRecordInList().add(record); +// +// WStock stock = getFromStockList(mp.getFinishWarehouseLocationId(),detail.getWarehouseId(),detail.getMaterialId(),detail.getBatch(), +// tModel.getProcedureId(),tModel.getDoneType(),stockList); +// if(stock!=null){ +// //濡傛灉搴撳瓨瀵硅薄宸插瓨鍦紝鐩存帴澧炲姞瀵瑰簲鐨勫簱瀛橀噺 +// stock.setNum(Constants.formatBigdecimal(stock.getNum()).add(Constants.formatBigdecimal(tModel.getNum()))); +// }else{ +// stock = new WStock(); +// stock.setMaterialId(detail.getMaterialId()); +// stock.setBatch(detail.getBatch()); +// stock.setWarehouseId(outbound.getWarehouseId()); +// stock.setLocationId(mp.getFinishWarehouseLocationId()); +// stock.setUnitId(detail.getUnitId()); +// stock.setNum(Constants.formatBigdecimal(tModel.getNum())); +// stock.setProcedureId(tModel.getProcedureId()); +// stock.setQualityType(tModel.getDoneType()); +// //寰呮洿鏂板簱瀛樹俊鎭� +// stockList.add(stock); +// } +// } +// } +// for(WOutboundDetail detail : detailList){ +// wOutboundDetailExtMapper.insert(detail); +// //璁板綍搴撳瓨鍙樺姩璁板綍 +// wStockRecordExtService.saveRecord(Constants.ONE,detail.getId(),user); +// if(detail.getWOutboundRecordInList()!=null){ +// for(WOutboundRecord r : detail.getWOutboundRecordInList()){ +// r.setDetailId(detail.getId()); +// wOutboundRecordExtMapper.insert(r); +// } +// } +// } +// if(Constants.formatIntegerNum(mp.getHasProduceNum()) >Constants.formatIntegerNum(mp.getPlanNum())){ +// throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇ュ伐鍗曠殑浜у嚭鏁伴噺涓嶈兘澶т簬宸ュ崟璁″垝鏁伴噺锛�"); +// } +// } + + private void dealAppliancePro(Workorder mp , LoginUserInfo user , List<WorkorderRecordExtListVO> allRecordList @@ -833,78 +953,10 @@ } //濡傛灉鏄骇鍑� mp.setHasProduceNum(Constants.formatBigdecimal(tModel.getNum()).intValue()+Constants.formatIntegerNum(mp.getHasProduceNum())); -// if(tModel.getDoneType() == null){ -// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝宸ヨ鍣ㄥ叿銆�"+tModel.getAmodel().getCode()+"銆戜骇鍑鸿川閲忓睘鎬т负绌猴紝鏃犳硶鎶ュ伐锛�"); -// } -// if(!Constants.equalsInteger(tModel.getDoneType(),Constants.ZERO)){ -// //濡傛灉涓嶈壇锛岀疮璁″伐鍗曠殑涓嶈壇浜у嚭 -// mp.setUnqualifiedNum(Constants.formatIntegerNum(mp.getUnqualifiedNum())+(Constants.formatBigdecimal(tModel.getNum()).intValue())); -// }else{ -// //濡傛灉鏄悎鏍硷紝绱宸ュ崟鐨勫悎鏍兼暟閲� -// mp.setQualifiedNum(Constants.formatIntegerNum(mp.getQualifiedNum())+(Constants.formatBigdecimal(tModel.getNum()).intValue())); -// } - - //鐗╂枡+鎵规+宸ュ簭+璐ㄩ噺灞炴�у幓閲� - WOutboundDetail detail =getWoutbondDetailByList(tModel,detailList); - if(detail!=null){ - detail.setNum(Constants.formatBigdecimal(detail.getNum()).add(tModel.getNum())); - }else{ - detail = new WOutboundDetail(); - detail.setDeleted(Constants.ZERO); - detail.setCreateTime(DateUtil.getCurrentDate()); - detail.setCreateUser(user.getId()); - detail.setOutboundId(outbound.getId()); - detail.setRootDepartId(outbound.getRootDepartId()); - detail.setWarehouseId(outbound.getWarehouseId()); - detail.setLocationId(mp.getFinishWarehouseLocationId()); - detail.setNum(tModel.getNum()); - detail.setStatus(Constants.ONE); - detail.setDoneNum(tModel.getNum()); - detail.setDoneDate(new Date()); - detail.setUnitId(tModel.getUnitId()); - detail.setBatch(tModel.getMaterialBatch()); - detail.setProcedureId(tModel.getProcedureId()); - detail.setMaterialId(tModel.getMaterialId()); - detail.setQualityType(tModel.getDoneType()); - detail.setWOutboundRecordInList(new ArrayList<>()); - detailList.add(detail); - } - - WOutboundRecord record = new WOutboundRecord(); - record.setDeleted(Constants.ZERO); - record.setCreateTime(DateUtil.getCurrentDate()); - record.setCreateUser(user.getId()); - record.setAppliancesId(tModel.getAppliancesId()); - record.setBatch(detail.getBatch()); - record.setRootDepartId(mp.getRootDepartId()); - record.setNum(tModel.getNum()); - record.setOutboundId(detail.getOutboundId()); - record.setUnitId(detail.getUnitId()); - record.setWarehouseId(detail.getWarehouseId()); - record.setMaterialId(detail.getMaterialId()); - record.setProcedureId(detail.getProcedureId()); - record.setLocationId(detail.getLocationId()); - record.setQualityType(detail.getQualityType()); - detail.getWOutboundRecordInList().add(record); - - WStock stock = getFromStockList(mp.getFinishWarehouseLocationId(),detail.getWarehouseId(),detail.getMaterialId(),detail.getBatch(), - tModel.getProcedureId(),tModel.getDoneType(),stockList); - if(stock!=null){ - //濡傛灉搴撳瓨瀵硅薄宸插瓨鍦紝鐩存帴澧炲姞瀵瑰簲鐨勫簱瀛橀噺 - stock.setNum(Constants.formatBigdecimal(stock.getNum()).add(Constants.formatBigdecimal(tModel.getNum()))); - }else{ - stock = new WStock(); - stock.setMaterialId(detail.getMaterialId()); - stock.setBatch(detail.getBatch()); - stock.setWarehouseId(outbound.getWarehouseId()); - stock.setLocationId(mp.getFinishWarehouseLocationId()); - stock.setUnitId(detail.getUnitId()); - stock.setNum(Constants.formatBigdecimal(tModel.getNum())); - stock.setProcedureId(tModel.getProcedureId()); - stock.setQualityType(tModel.getDoneType()); - //寰呮洿鏂板簱瀛樹俊鎭� - stockList.add(stock); - } + //浜у嚭鍚堟牸 + this.createOutDetail(user,outbound,mp,tModel,Constants.ZERO,detailList,stockList); + //浜у嚭涓嶈壇 + this.createOutDetail(user,outbound,mp,tModel,Constants.ONE,detailList,stockList); } } for(WOutboundDetail detail : detailList){ @@ -922,6 +974,68 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇ュ伐鍗曠殑浜у嚭鏁伴噺涓嶈兘澶т簬宸ュ崟璁″垝鏁伴噺锛�"); } } + + + public void createOutDetail(LoginUserInfo user,WOutbound outbound,Workorder mp,WorkorderRecordExtListVO tModel,Integer doneType + ,List<WOutboundDetail> detailList,List<WStock> stockList ){ + //鐗╂枡+鎵规+宸ュ簭+璐ㄩ噺灞炴�у幓閲� + WOutboundDetail detail = new WOutboundDetail(); + detail.setDeleted(Constants.ZERO); + detail.setCreateTime(DateUtil.getCurrentDate()); + detail.setCreateUser(user.getId()); + detail.setOutboundId(outbound.getId()); + detail.setRootDepartId(outbound.getRootDepartId()); + detail.setWarehouseId(outbound.getWarehouseId()); + detail.setLocationId(mp.getFinishWarehouseLocationId()); + detail.setNum(BigDecimal.valueOf(doneType.equals(Constants.ZERO)?tModel.getQualifiedNum():tModel.getUnqualifiedNum())); + detail.setStatus(Constants.ONE); + detail.setDoneNum(detail.getNum()); + detail.setDoneDate(new Date()); + detail.setUnitId(tModel.getUnitId()); + detail.setBatch(tModel.getMaterialBatch()); + detail.setProcedureId(tModel.getProcedureId()); + detail.setMaterialId(tModel.getMaterialId()); + detail.setQualityType(doneType); + detail.setWOutboundRecordInList(new ArrayList<>()); + detailList.add(detail); + + WOutboundRecord record = new WOutboundRecord(); + record.setDeleted(Constants.ZERO); + record.setCreateTime(DateUtil.getCurrentDate()); + record.setCreateUser(user.getId()); + record.setAppliancesId(tModel.getAppliancesId()); + record.setBatch(detail.getBatch()); + record.setRootDepartId(mp.getRootDepartId()); + record.setNum(tModel.getNum()); + record.setOutboundId(detail.getOutboundId()); + record.setUnitId(detail.getUnitId()); + record.setWarehouseId(detail.getWarehouseId()); + record.setMaterialId(detail.getMaterialId()); + record.setProcedureId(detail.getProcedureId()); + record.setLocationId(detail.getLocationId()); + record.setQualityType(detail.getQualityType()); + detail.getWOutboundRecordInList().add(record); + + WStock stock = getFromStockList(mp.getFinishWarehouseLocationId(),detail.getWarehouseId(),detail.getMaterialId(),detail.getBatch(), + tModel.getProcedureId(),tModel.getDoneType(),stockList); + if(stock!=null){ + //濡傛灉搴撳瓨瀵硅薄宸插瓨鍦紝鐩存帴澧炲姞瀵瑰簲鐨勫簱瀛橀噺 + stock.setNum(Constants.formatBigdecimal(stock.getNum()).add(Constants.formatBigdecimal(tModel.getNum()))); + }else{ + stock = new WStock(); + stock.setMaterialId(detail.getMaterialId()); + stock.setBatch(detail.getBatch()); + stock.setWarehouseId(outbound.getWarehouseId()); + stock.setLocationId(mp.getFinishWarehouseLocationId()); + stock.setUnitId(detail.getUnitId()); + stock.setNum(Constants.formatBigdecimal(tModel.getNum())); + stock.setProcedureId(tModel.getProcedureId()); + stock.setQualityType(tModel.getDoneType()); + //寰呮洿鏂板簱瀛樹俊鎭� + stockList.add(stock); + } + } + private WStock initMaterialNum(Integer materialId, BigDecimal num) { WStock s = new WStock(); @@ -1247,16 +1361,14 @@ 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())); + workorderRecord.setSalary(salaryParam.getSalary().multiply(salaryParam.getUnqualified()==Constants.ONE?num:createWorkorderRecordDTO.getQualifiedNum())); }else{ workorderRecord.setDuration(createWorkorderRecordDTO.getDuration()); workorderRecord.setSalary(BigDecimal.valueOf(createWorkorderRecordDTO.getDuration()).multiply(salaryParam.getSalary()).divide(new BigDecimal(3600))); } - //鎻掑叆宸ュ崟鎿嶄綔璁板綍锛屽苟涓斿垽鏂槸鍚︽洿鏀逛负宸ュ崟鐨勭姸鎬併�愮敓浜т腑銆� updateOrderInfo(loginUserInfo,workorder,Constants.WORKORDER_HISTORY_STATUS.produce); workorderRecordExtMapper.insert(workorderRecord); -- Gitblit v1.9.3