| | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean mesMaterialOutbound(Map<String, Object> reportingWorkMap) { |
| | | //接收解析主附表信息 |
| | | JSONObject reportingWorkJson = new JSONObject(reportingWorkMap); |
| | | String projectNo=reportingWorkJson.get("projectNo").toString(); |
| | | Double width= Double.valueOf(reportingWorkJson.get("width").toString()); |
| | | Double height= Double.valueOf(reportingWorkJson.get("height").toString()); |
| | | Integer quantity= Integer.valueOf(reportingWorkJson.get("quantity").toString()); |
| | | boolean saveState=true; |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | //接收解析主附表信息 |
| | | JSONObject reportingWorkJson = new JSONObject(reportingWorkMap); |
| | | String projectNo=reportingWorkJson.get("projectNo").toString(); |
| | | Double width= Double.valueOf(reportingWorkJson.get("width").toString()); |
| | | Double height= Double.valueOf(reportingWorkJson.get("height").toString()); |
| | | Integer quantity= Integer.valueOf(reportingWorkJson.get("quantity").toString()); |
| | | |
| | | List<MaterialOutbound> materialOutboundList=materialInventoryMapper.getSelectMaterialOutboundProjectNo(projectNo); |
| | | OptimizeUse optimizeUses=materialInventoryMapper.getSelectOptimizeUses(projectNo,width,height); |
| | | List<MaterialOutboundDetail> materialOutboundDetailList=materialInventoryMapper.getSelectMaterialOutboundOptimizeUses(optimizeUses.getId()); |
| | | List<MaterialOutboundDetail> materialOutboundDetailList1=materialInventoryMapper.getSelectMaterialOutboundOptimizeUses(null); |
| | | MaterialInventory materialInventory=materialInventoryMapper.getMaterialInventoryById(Long.valueOf(optimizeUses.getRawStockCode())); |
| | | if(materialOutboundList.size()==1){ |
| | | if(materialOutboundDetailList.size()==1){ |
| | | materialInventoryMapper.updateMaterialOutboundOptimizeUses(optimizeUses.getId()); |
| | | materialInventoryMapper.updateMaterialInventoryAvailableInventoryOutMes(Long.valueOf(optimizeUses.getRawStockCode()),quantity); |
| | | }else{ |
| | | materialInventoryMapper.insertMaterialOutboundDetailOptimizeUses(materialOutboundList.get(0).getMaterialOutboundId(), |
| | | materialOutboundDetailList1.size()+1,Long.valueOf(optimizeUses.getRawStockCode()),materialInventory.getMaterialCode(),materialInventory.getInventoryArea(), |
| | | List<MaterialOutbound> materialOutboundList=materialInventoryMapper.getSelectMaterialOutboundProjectNo(projectNo); |
| | | OptimizeUse optimizeUses=materialInventoryMapper.getSelectOptimizeUses(projectNo,width,height); |
| | | |
| | | |
| | | MaterialInventory materialInventory=materialInventoryMapper.getMaterialInventoryById(Long.valueOf(optimizeUses.getRawStockCode())); |
| | | if(materialOutboundList.size()==1){ |
| | | List<MaterialOutboundDetail> materialOutboundDetailList=materialInventoryMapper.getSelectMaterialOutboundOptimizeUses(materialOutboundList.get(0).getMaterialOutboundId(),optimizeUses.getId()); |
| | | List<MaterialOutboundDetail> materialOutboundDetailList1=materialInventoryMapper.getSelectMaterialOutboundOptimizeUses(materialOutboundList.get(0).getMaterialOutboundId(),null); |
| | | if(materialOutboundDetailList.size()==1){ |
| | | materialInventoryMapper.updateMaterialOutboundOptimizeUses(optimizeUses.getId(),quantity); |
| | | }else{ |
| | | materialInventoryMapper.insertMaterialOutboundDetailOptimizeUses(materialOutboundList.get(0).getMaterialOutboundId(), |
| | | materialOutboundDetailList1.size()+1,Long.valueOf(optimizeUses.getRawStockCode()),materialInventory.getMaterialCode(),materialInventory.getInventoryArea(), |
| | | optimizeUses.getId(),quantity,materialInventory.getSinglePieceArea(),materialInventory.getDateOfManufacture()); |
| | | } |
| | | }else if(materialOutboundList.isEmpty()){ |
| | | String oddNumber = orderNumberSetting("出库"); |
| | | materialInventoryMapper.insertMaterialOutboundOptimizeUses(oddNumber,projectNo,reportingWorkJson.get("userName").toString()); |
| | | materialInventoryMapper.insertMaterialOutboundDetailOptimizeUses(oddNumber, 1,Long.valueOf(optimizeUses.getRawStockCode()),materialInventory.getMaterialCode(),materialInventory.getInventoryArea(), |
| | | optimizeUses.getId(),quantity,materialInventory.getSinglePieceArea(),materialInventory.getDateOfManufacture()); |
| | | materialInventoryMapper.updateMaterialInventoryAvailableInventoryOutMes(Long.valueOf(optimizeUses.getRawStockCode()),quantity); |
| | | }else{ |
| | | return false; |
| | | } |
| | | }else if(materialOutboundList.isEmpty()){ |
| | | String oddNumber = orderNumberSetting("出库"); |
| | | materialInventoryMapper.insertMaterialOutboundOptimizeUses(oddNumber,projectNo,reportingWorkJson.get("userName").toString()); |
| | | materialInventoryMapper.insertMaterialOutboundDetailOptimizeUses(oddNumber, materialOutboundDetailList1.size()+1,Long.valueOf(optimizeUses.getRawStockCode()),materialInventory.getMaterialCode(),materialInventory.getInventoryArea(), |
| | | optimizeUses.getId(),quantity,materialInventory.getSinglePieceArea(),materialInventory.getDateOfManufacture()); |
| | | materialInventoryMapper.updateMaterialInventoryAvailableInventoryOutMes(Long.valueOf(optimizeUses.getRawStockCode()),quantity); |
| | | }else{ |
| | | return false; |
| | | } |
| | | materialInventoryMapper.updateOptimizeUsesMes(optimizeUses.getId(),quantity); |
| | | |
| | | //保存日志 |
| | | Log log = new Log(); |
| | | log.setContent(reportingWorkMap.toString()); |
| | | log.setFunction("mesMaterialOutbound报工新增"); |
| | | log.setOperatorId((String) reportingWorkJson.get("userId")); |
| | | log.setOperator((String) reportingWorkJson.get("userName")); |
| | | logService.saveLog(log); |
| | | return true; |
| | | //保存日志 |
| | | Log log = new Log(); |
| | | log.setContent(reportingWorkMap.toString()); |
| | | log.setFunction("mesMaterialOutbound报工新增"); |
| | | log.setOperatorId((String) reportingWorkJson.get("userId")); |
| | | log.setOperator((String) reportingWorkJson.get("userName")); |
| | | logService.saveLog(log); |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e+Arrays.toString(e.getStackTrace())); |
| | | sysError.setFunc("mesMaterialOutbound报工新增"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | return saveState; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |