From 25c7c3cb1d61246082d0776db250fc804dfdc787 Mon Sep 17 00:00:00 2001 From: siontion Date: Mon, 17 Jun 2024 14:35:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=8A=A5=E5=B7=A5=20?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taskreport/TaskReportController.java | 14 ++- .../taskreport/vo/TaskReportSaveReqVO.java | 3 + .../module/biz/manager/ChanjetSchedule.java | 96 ++++++++++++------- 3 files changed, 78 insertions(+), 35 deletions(-) diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskreport/TaskReportController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskreport/TaskReportController.java index f0773b10..7362a8f9 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskreport/TaskReportController.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskreport/TaskReportController.java @@ -7,7 +7,9 @@ import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; import com.chanko.yunxi.mes.module.biz.controller.admin.taskreport.vo.*; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskreport.TaskReportDO; +import com.chanko.yunxi.mes.module.biz.dal.mysql.taskdispatch.TaskDispatchDetailMapper; import com.chanko.yunxi.mes.module.biz.service.taskreport.TaskReportService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -33,6 +35,8 @@ public class TaskReportController { @Resource private TaskReportService taskReportService; + @Resource + private TaskDispatchDetailMapper taskDispatchDetailMapper; @PostMapping("/create") @Operation(summary = "创建任务报工") @@ -45,10 +49,18 @@ public class TaskReportController { @Operation(summary = "批量创建任务报工") @PreAuthorize("@ss.hasPermission('biz:task-report:create')") public CommonResult createTaskReport(@Valid @RequestBody List createReqVOs) { + final Long[] dispatchDetailId = new Long[1]; + final Integer[] procedureStatus = new Integer[1]; createReqVOs.forEach(item ->{ taskReportService.createTaskReport(item); + dispatchDetailId[0] = item.getDispatchDetailId(); + procedureStatus[0] = item.getProcedureStatus(); }); -// taskReportService.createTaskReport(createReqVO) + TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(dispatchDetailId[0] ); + taskDispatchDetailDO.setProcedureStatus(procedureStatus[0]); + + taskDispatchDetailMapper.updateById(taskDispatchDetailDO); + return success(true); } diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskreport/vo/TaskReportSaveReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskreport/vo/TaskReportSaveReqVO.java index 8406de18..1d96bad7 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskreport/vo/TaskReportSaveReqVO.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/taskreport/vo/TaskReportSaveReqVO.java @@ -58,6 +58,9 @@ public class TaskReportSaveReqVO { @NotNull(message = "状态,1表示正常,2表示禁用不能为空") private Integer status; + @Schema(description = "工序状态 默认|已提交|已完成 0|1|2") + private Integer procedureStatus; + @Schema(description = "报工工时", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "报工工时不能为空") private BigDecimal workTime; diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java index 3e7b7c1e..25cc3687 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java @@ -17,6 +17,7 @@ import com.chanko.yunxi.mes.module.biz.controller.admin.chanjet.vo.*; import com.chanko.yunxi.mes.module.biz.controller.admin.procedure.vo.ProcedureSaveReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.projectorder.ProjectOrderController; import com.chanko.yunxi.mes.module.biz.controller.admin.projectorder.vo.ProjectOrderSaveReqVO; +import com.chanko.yunxi.mes.module.biz.controller.admin.storage.vo.StorageSaveReqVO; import com.chanko.yunxi.mes.module.biz.controller.admin.taskreport.vo.TaskReportPageReqVO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.material.MaterialDO; @@ -36,6 +37,7 @@ import com.chanko.yunxi.mes.module.biz.dal.mysql.material.MaterialMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.projectorder.ProjectOrderMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.projectorder.ProjectOrderSubMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.storage.StorageMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.storagemat.StorageMatMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.supplier.SupplierMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.systemparameters.SystemParametersMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.taskdispatch.TaskDispatchDetailMapper; @@ -45,6 +47,7 @@ import com.chanko.yunxi.mes.module.biz.dal.mysql.workshop.WorkshopMapper; import com.chanko.yunxi.mes.module.biz.enums.*; import com.chanko.yunxi.mes.module.biz.service.procedure.ProcedureService; import com.chanko.yunxi.mes.module.biz.service.projectorder.ProjectOrderService; +import com.chanko.yunxi.mes.module.biz.service.storage.StorageService; import com.chanko.yunxi.mes.module.biz.service.storagemat.StorageMatService; import com.chanko.yunxi.mes.module.biz.service.taskreport.TaskReportService; import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.UserSaveReqVO; @@ -121,6 +124,11 @@ public class ChanjetSchedule { private ProjectOrderSubMapper projectOrderSubMapper; @Resource private WarehouseMapper warehouseMapper; + @Resource + private StorageService storageService; + + @Resource + private StorageMatMapper storageMatMapper; @Resource private SystemParametersMapper systemParametersMapper; @@ -1160,37 +1168,74 @@ public class ChanjetSchedule { */ @Transactional(rollbackFor = Exception.class) public void createStorageInOrder() throws ChanjetApiException { - StorageDO storage = new StorageDO(); + TaskReportPageReqVO reqVO =new TaskReportPageReqVO(); reqVO.setPageSize(999); PageResult reprotResult = taskReportMapper.selectNoSynchPage(reqVO); - List sublist = new ArrayList<>(); + if(reprotResult.getTotal()>0){ - Map> dataGroupByMatCode = reprotResult.getList().stream().collect(Collectors.groupingBy(TaskReportDO::getWhNo)); - dataGroupByMatCode.forEach((whno,mList) ->{ + Map> dataGroupByMatId = reprotResult.getList().stream().collect(Collectors.groupingBy(TaskReportDO::getWhId)); + dataGroupByMatId.forEach((whId,mList) ->{ + + StorageSaveReqVO createReqVO = new StorageSaveReqVO(); + createReqVO.setStockType(1).setStockInType(3).setStatus(2).setWhId(whId); + Long stockId = storageService.createStorage(createReqVO); + StorageDO storage = storageMapper.selectById(stockId); + + List sublist = new ArrayList<>(); mList.forEach(item->{ if(item.getIsFinal().equals(1)){ - StorageMatDO storageMatDO = new StorageMatDO(); - storageMatDO.setMatId(item.getMaterialId()); - storageMatDO.setProcedureId(item.getProcedureId()); - storageMatDO.setStorageOkQty(new BigDecimal(mList.stream().filter(vo -> vo.getMaterialId().equals(item.getMaterialId())).mapToInt(TaskReportDO::getAmount).sum())); - - sublist.add(storageMatDO); + if(sublist.stream().filter(q->q.getMatId().equals(item.getMaterialId())).count()==0){ + StorageMatDO storageMatDO = new StorageMatDO(); + storageMatDO.setStockId(stockId); + storageMatDO.setMatId(item.getMaterialId()); + storageMatDO.setProcedureId(item.getProcedureId()); + storageMatDO.setWhId(whId); + storageMatDO.setStorageOkQty(new BigDecimal(mList.stream().filter(vo -> vo.getMaterialId().equals(item.getMaterialId())).mapToInt(TaskReportDO::getAmount).sum())); + storageMatMapper.insert(storageMatDO); + sublist.add(storageMatDO); + } } if(item.getType().equals("ASSEMBLE")){ - StorageMatDO storageMatDO = new StorageMatDO(); - storageMatDO.setMatId(item.getMaterialId()); - storageMatDO.setProcedureId(item.getProcedureId()); - storageMatDO.setStorageOkQty(new BigDecimal(mList.stream().filter(vo -> vo.getMaterialId().equals(item.getMaterialId())).filter(distinctByKeys(p-> Arrays.asList(p.getMaterialId(),p.getAssembleCode()))).count())); - - sublist.add(storageMatDO); + if(sublist.stream().filter(q->q.getMatId().equals(item.getMaterialId())).count()==0) { + StorageMatDO storageMatDO = new StorageMatDO(); + storageMatDO.setStockId(stockId); + storageMatDO.setMatId(item.getMaterialId()); + storageMatDO.setProcedureId(item.getProcedureId()); + storageMatDO.setWhId(whId); + storageMatDO.setStorageOkQty(new BigDecimal(mList.stream().filter(vo -> vo.getMaterialId().equals(item.getMaterialId())).filter(distinctByKeys(p -> Arrays.asList(p.getMaterialId(), p.getAssembleCode()))).count())); + storageMatMapper.insert(storageMatDO); + sublist.add(storageMatDO); + } } }); - + WarehouseDO aDo = warehouseMapper.selectById(whId); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + CreateStockInDTO dto = new CreateStockInDTO(); + ArrayList detailList = new ArrayList<>(); + dto.setExternalCode(storage.getStockNo()) + .setVoucherDate(sdf.format(new Date())) + .setRDRecordDetails(detailList) + .setWarehouse(new Warehouse(aDo.getWhNo())) + ; + + // 设置为“否”,关闭所有与用友通信的接口;为“是”,打开所有与用友通信的接口 + if(getSystemParameters()){ + CommonResult result = null; + try { + result = chanjetSpi.invoke(CREATE_STOCK_IN_ORDER, new CreateStorageReqVO(dto), ResultResVO.class); + } catch (ChanjetApiException e) { + throw exception(CALL_API_ERROR); + } + if(!result.isSuccess()){ + throw exception(CALL_API_ERROR); + } + } }); reprotResult.getList().forEach(item->{ @@ -1200,24 +1245,7 @@ public class ChanjetSchedule { } - WarehouseDO aDo = warehouseMapper.selectById(storage.getWhId()); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - - CreateStockInDTO dto = new CreateStockInDTO(); - ArrayList detailList = new ArrayList<>(); - dto.setExternalCode(storage.getStockNo()) - .setVoucherDate(sdf.format(new Date())) - .setRDRecordDetails(detailList) - .setWarehouse(new Warehouse(aDo.getWhNo())) - ; - // 设置为“否”,关闭所有与用友通信的接口;为“是”,打开所有与用友通信的接口 - if(getSystemParameters()){ - CommonResult result = chanjetSpi.invoke(CREATE_STOCK_IN_ORDER, new CreateStorageReqVO(dto), ResultResVO.class); - if(!result.isSuccess()){ - throw exception(CALL_API_ERROR); - } - } } // 自定义多字段去重比较器