Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java =================================================================== diff -u -r40694 -r40700 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 40694) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 40700) @@ -501,4 +501,10 @@ * @param cntainerBindingInfo */ public JSONObject autobasketInsertion(List tis, Map cntainerBindingInfo); + /** + * 获取装配任务的申请单 + * @param packingTask + * @return + */ + public InvoicePlan getInvoicePlan(PackingTask packingTask); } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r40697 -r40700 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 40697) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 40700) @@ -12895,6 +12895,7 @@ packingTask.setUrgentLevel(null); packingTask.setUrgentLevelObj(null); objectDao.update(packingTask); + updateTousseItemUrgent(packingTask, null); return; } if(!DatabaseUtil.isPoIdValid(urgentLevelId)){ @@ -12917,9 +12918,77 @@ packingTask.setUrgentLevel(ul.getName()); packingTask.setUrgentLevelObj(ul); objectDao.update(packingTask); + updateTousseItemUrgent(packingTask, ul); } + /** + * 修改装配任务时 联动修改申请物品加急信息 + * @param packingTask 装配任务 + * @param urgentLevel 加急等级 + */ + private void updateTousseItemUrgent(PackingTask packingTask, UrgentLevel urgentLevel) { + if (packingTask.getSourceId() == null) { + return; + } + if(packingTask.getUnPackAmount() == null || packingTask.getUnPackAmount() < 1){ + return; + } + TousseDefinition td = packingTask.getTousseDefinition(); + if (td == null) { + return; + } + InvoicePlan invoicePlan = getInvoicePlan(packingTask); + if (invoicePlan == null) { + return; + } + + updateTousseItems(invoicePlan, td, urgentLevel, packingTask.getUnPackAmount()); + } @Override + public InvoicePlan getInvoicePlan(PackingTask packingTask) { + if (PackingTask.TASK_APPLICATION.equals(packingTask.getTaskType())) { + InvoicePlan invoicePlan = (InvoicePlan) objectDao.getBySql( + InvoicePlan.class.getSimpleName(), + "where id=" + packingTask.getSourceId()); + return invoicePlan; + } + + if (PackingTask.TASK_RECYCLINGRECORD.equals(packingTask.getTaskType())) { + RecyclingRecord recyclingRecord = (RecyclingRecord) objectDao.getBySql( + RecyclingRecord.class.getSimpleName(), + "where id=" + packingTask.getSourceId()); + return recyclingRecord != null ? recyclingRecord.getRecyclingApplication() : null; + } + + return null; + } + /** + * 修改申请物品加急信息 + * @param invoicePlan 申请单 + * @param td 修改的包定义 用于寻找修改的申请项 + * @param urgentLevel 加急等级 + */ + private void updateTousseItems(InvoicePlan invoicePlan, TousseDefinition td, UrgentLevel urgentLevel, Integer urgentAmount) { + List tousseItems = invoicePlan.getApplicationItems(); + if (CollectionUtils.isEmpty(tousseItems)) { + return; + } + + tousseItems.stream() + .filter(item -> MathTools.equals(item.getTousseDefinitionId(), td.getId())) + .forEach(item -> { + if (urgentLevel == null) { + item.setUrgent(Constants.STR_NO); + } else { + item.setUrgent(Constants.STR_YES); + item.setUrgentAmount(urgentAmount); + item.setUrgentLevel(urgentLevel.getName()); + item.setUrgentLevelObj(urgentLevel); + } + objectDao.saveOrUpdate(item); + }); + } + @Override public String findHistoryPackingRecordTableList( Map> parameterMap, String packer, String packerNumber, String tousseName, String orgUnitName,