| | |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.mapper.WorkflowMainMapper; |
| | | import com.whyc.pojo.db_user.User; |
| | | import com.whyc.pojo.web_site.WorkflowDevice; |
| | | import com.whyc.pojo.web_site.WorkflowLink; |
| | | import com.whyc.pojo.web_site.WorkflowMain; |
| | | import com.whyc.util.ActionUtil; |
| | |
| | | |
| | | @Autowired(required = false) |
| | | private WorkflowLinkService linkService; |
| | | |
| | | @Autowired |
| | | private WorkflowDeviceService deviceService; |
| | | |
| | | |
| | | /** |
| | |
| | | return null; |
| | | } |
| | | |
| | | public void updateStatus(WorkflowMain main) { |
| | | public void updateById(WorkflowMain main) { |
| | | mapper.updateById(main); |
| | | } |
| | | |
| | |
| | | /** |
| | | * 通用提交方法,提交给角色-角色层 |
| | | * 如果related_id不为空,则需要特殊处理. 证明会影响到关联单据 |
| | | * |
| | | * 涉及到新的问题需要解决,现场故障后,设备维修申请 或 报废申请 是多个,并存入工单设备表中. 并不只是单纯的数量. TODO ?自动化处理怎么更新 |
| | | */ |
| | | |
| | | @Transactional |
| | |
| | | Date now = new Date(); |
| | | WorkflowMain mainRelated = getById(main.getRelatedId()); |
| | | if(main.getRelatedId() != null) { |
| | | if (main.getQuantity() > mainRelated.getQuantity()) { |
| | | return new Response().setII(1, "入库数量不能大于维修申请关联单据的数量"); |
| | | if (main.getQuantity() > mainRelated.getQuantityUnprocessed()) { |
| | | return new Response().setII(1, "入库数量不能大于维修申请关联单据的未处理数量"); |
| | | } |
| | | } |
| | | //主表插入 |
| | |
| | | main.setBeginTime(now); |
| | | main.setStatus(mainStatus); |
| | | main.setProcessStage(process.getStage()); |
| | | if(main.getType() == WorkflowTypeEnum.DEVICE_REPAIR.getType().intValue()){ //维修申请单,需填入 |
| | | main.setQuantityUnprocessed(main.getQuantity()); |
| | | } |
| | | add(main); |
| | | //主表关联的物料插入 |
| | | List<WorkflowDevice> deviceList = main.getDeviceList(); |
| | | for (WorkflowDevice device : deviceList) { |
| | | device.setMainId(main.getId()); |
| | | } |
| | | deviceService.addBatch(deviceList); |
| | | |
| | | //内存中去除已插入数据库的单号 |
| | | ServletContext application = ActionUtil.getApplication(); |
| | | List<String> orderIdList = (List<String>) application.getAttribute("orderIdList"); |
| | |
| | | private void checkRelatedAndDone(WorkflowMain main, Date now, WorkflowMain mainRelated, User user) { |
| | | if(main.getRelatedId() != null){ |
| | | //判断是申请的入库,还是报废. |
| | | if (main.getQuantity() < mainRelated.getQuantity()){ //说明需要自动生成入库或者报废单据 |
| | | if (main.getQuantity() < mainRelated.getQuantityUnprocessed()){ //说明需要自动生成入库或者报废单据 |
| | | //需要自动生成报废的申请 |
| | | WorkflowMain mainAuto = new WorkflowMain(); |
| | | WorkflowTypeEnum typeEnumAuto; |
| | |
| | | mainAuto.setCreateUserId(user.getId()); |
| | | mainAuto.setCreateTime(now); |
| | | mainAuto.setBeginTime(now); |
| | | mainAuto.setQuantity(mainRelated.getQuantity()- main.getQuantity()); |
| | | mainAuto.setQuantity(mainRelated.getQuantityUnprocessed()- main.getQuantity()); |
| | | mainAuto.setProcessStage(processAuto.getStage()); |
| | | mainAuto.setStatus(statusAuto); |
| | | mainAuto.setRelatedId(main.getRelatedId()); |
| | | |
| | | if(main.getType() == WorkflowTypeEnum.DEVICE_IN.getType().intValue()) { //申请的入库 |
| | | mainAuto.setTaskDesc("提交了维修后的入库申请,系统自动生成剩余数量的报废申请"); |
| | |
| | | }else{ |
| | | relatedMain.setEndReason("用户提交维修申请后的报废申请,维修流程结束"); |
| | | } |
| | | updateStatus(relatedMain); |
| | | relatedMain.setQuantityUnprocessed(0); |
| | | updateById(relatedMain); |
| | | } |
| | | } |
| | | |
| | |
| | | update.set("process_level",processLevel).eq("id",mainId); |
| | | mapper.update((WorkflowMain) ActionUtil.objeNull,update); |
| | | } |
| | | |
| | | public void resetRepairStatus(Integer relatedId, Integer quantity) { |
| | | UpdateWrapper<WorkflowMain> update = Wrappers.update(); |
| | | update.set("status",WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue()) |
| | | .set("end_time",null) |
| | | .set("end_reason",null) |
| | | .set("quantity_unprocessed",quantity) |
| | | .eq("id",relatedId); |
| | | mapper.update((WorkflowMain) ActionUtil.objeNull,update); |
| | | } |
| | | } |