| | |
| | | public class OptimizeUse { |
| | | @TableId(type = IdType.AUTO) |
| | | private Integer id; |
| | | private Integer projectNo; |
| | | private String projectNo; |
| | | private String rawStockCode; |
| | | private String stockCode; |
| | | private Integer type; |
| | |
| | | |
| | | OptimizeUse getSelectOptimizeUses(@Param("projectNo") String projectNo,@Param("width") Double width,@Param("height") Double height); |
| | | |
| | | List<MaterialOutboundDetail> getSelectMaterialOutboundOptimizeUses(@Param("useId") Integer useId); |
| | | List<MaterialOutboundDetail> getSelectMaterialOutboundOptimizeUses(@Param("materialOutboundId") String materialOutboundId,@Param("useId") Integer useId); |
| | | |
| | | Boolean updateMaterialOutboundOptimizeUses(@Param("useId") Integer useId); |
| | | Boolean updateMaterialOutboundOptimizeUses(@Param("useId") Integer useId,@Param("quantity") Integer quantity); |
| | | |
| | | Boolean insertMaterialOutboundDetailOptimizeUses(@Param("materialOutboundId") String materialOutboundId,@Param("number") Integer number, |
| | | @Param("inventoryId") Long inventoryId,@Param("materialCode") Long materialCode,@Param("inventoryArea") String inventory_area, |
| | |
| | | Boolean insertMaterialOutboundOptimizeUses(@Param("materialOutboundId") String materialOutboundId,@Param("projectNo") String projectNo, |
| | | @Param("name") String name); |
| | | |
| | | Boolean updateOptimizeUsesMes(@Param("useId") Integer useId,@Param("quantity") Integer quantity); |
| | | |
| | | } |
| | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean mesMaterialOutbound(Map<String, Object> reportingWorkMap) { |
| | | boolean saveState=true; |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | //接收解析主附表信息 |
| | | JSONObject reportingWorkJson = new JSONObject(reportingWorkMap); |
| | | String projectNo=reportingWorkJson.get("projectNo").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){ |
| | | 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()); |
| | | materialInventoryMapper.updateMaterialInventoryAvailableInventoryOutMes(Long.valueOf(optimizeUses.getRawStockCode()),quantity); |
| | | 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()); |
| | | materialInventoryMapper.updateMaterialInventoryAvailableInventoryOutMes(Long.valueOf(optimizeUses.getRawStockCode()),quantity); |
| | | } |
| | | }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(), |
| | | 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; |
| | | } |
| | | materialInventoryMapper.updateMaterialInventoryAvailableInventoryOutMes(Long.valueOf(optimizeUses.getRawStockCode()),quantity); |
| | | materialInventoryMapper.updateOptimizeUsesMes(optimizeUses.getId(),quantity); |
| | | |
| | | //保存日志 |
| | | Log log = new Log(); |
| | |
| | | log.setOperatorId((String) reportingWorkJson.get("userId")); |
| | | log.setOperator((String) reportingWorkJson.get("userName")); |
| | | logService.saveLog(log); |
| | | return true; |
| | | } 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; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | </select> |
| | | |
| | | <select id="getSelectOptimizeUses"> |
| | | select * from pp.optimize_use mo where project_no=#{projectNo} and width=#{width} and height=#{height} |
| | | select * from pp.optimize_use where project_no=#{projectNo} and width=#{width} and height=#{height} and state=1 |
| | | </select> |
| | | |
| | | <select id="getSelectMaterialOutboundOptimizeUses"> |
| | | select * from mm.material_outbound_detail mo where |
| | | select * from mm.material_outbound_detail mo |
| | | <where> |
| | | mo.material_outbound_id=#{materialOutboundId} |
| | | <if test="useId != null"> |
| | | and use_id=#{useId} |
| | | and mo.use_id=#{useId} |
| | | </if> |
| | | </where> |
| | | </select> |
| | |
| | | update mm.material_outbound_detail set outbound_quantity=outbound_quantity+#{quantity} where use_id=#{useId}; |
| | | </select> |
| | | |
| | | <select id="updateOptimizeUsesMes"> |
| | | update pp.optimize_use set not_use_count=not_use_count-#{quantity} where id=#{useId}; |
| | | </select> |
| | | |
| | | <insert id="insertMaterialOutboundDetailOptimizeUses" useGeneratedKeys="true" > |
| | | insert into mm.material_outbound_detail (material_outbound_id,material_outbound_number,material_code,use_id,inventory_id,inventory_organization, |
| | | outbound_quantity,single_piece_area,inventory_area,date_of_manufacture) |
| | | values ( |
| | | #{materialOutboundId} ,#{number},#{materialCode},#{useId},#{inventoryId},'原片库',#{outboundQuantity}, |
| | | #{materialOutboundDetail.singlePieceArea},#{materialOutboundDetail.inventoryArea},#{materialOutboundDetail.dateOfManufacture} |
| | | #{singlePieceArea},#{inventoryArea},#{dateOfManufacture} |
| | | ) |
| | | </insert> |
| | | |
| | | <insert id="insertMaterialOutboundOptimizeUses" useGeneratedKeys="true" > |
| | | insert into mm.material_outbound(material_outbound_id,material_requisition_personnel,material_requisition_team,order_id,outbound_type, |
| | | insert into mm.material_outbound(material_outbound_id,order_id,outbound_type, |
| | | warehouse_manager,material_requisition_date,reviewed_state,reviewed,create_time,reviewed_time) |
| | | values ( |
| | | #{materialOutboundId} ,#{projectNo},'标准出库',#{name},now(),1,#{name},now(),now() |