Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r28991 -r29004 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 28991) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 29004) @@ -9,6 +9,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -58,6 +59,7 @@ import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; +import com.forgon.directory.model.CssdHandleTousses; import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.OrgUnitManager; import com.forgon.directory.service.SysUserManager; @@ -124,6 +126,7 @@ import com.forgon.disinfectsystem.packing.vo.ForeignTousseSplitMaterialVo; import com.forgon.disinfectsystem.packing.vo.ForeignTousseSplitVo; import com.forgon.disinfectsystem.packing.vo.PackingTaskForDisplay; +import com.forgon.disinfectsystem.packing.vo.PackingTaskVoForContainer; import com.forgon.disinfectsystem.packing.vo.ReviewerVo; import com.forgon.disinfectsystem.packing.vo.WaitPackingTaskItemVo; import com.forgon.disinfectsystem.packing.vo.WaitPackingTaskVo; @@ -8142,4 +8145,44 @@ } return packingTaskIdToErrorDamageRemarkMap; } + @Override + public List getPackingTasksByContainerBarcode( + String containerBarcode) { + ResultSet rs = null; + List list = new ArrayList(); + try { + String separator = null; + if(dbConnection.isSqlServer()){ + separator = " + "; + }else{ + separator = " || "; + } + String basketBarcodeSql = "';'" + separator +" po.basketBarcode "+ separator + " ';' like '%;"+ containerBarcode +";%'"; + String sql = String.format("select distinct po.id,ct.taskGroup,td.name,unPackAmount,po.washTime,po.startTime from %s po " + + "join %s td on td.id=po.tousseDefinition_id " + + "left join %s ct on po.orgUnitCoding = ct.orgUnitCode where ct.tousseDefinitionId=td.ancestorID and %s " + , PackingTask.class.getSimpleName() + , TousseDefinition.class.getSimpleName() + , CssdHandleTousses.class.getSimpleName() + ,basketBarcodeSql); + rs = objectDao.executeSql(sql); + while(rs.next()){ + Number id = (Number)rs.getObject("id"); + String taskGroup = rs.getString("taskGroup"); + String tousseName = rs.getString("name"); + Number amount = (Number)rs.getObject("unPackAmount"); + Timestamp washTimeTimestamp = rs.getTimestamp("washTime"); + String washTimeTime = washTimeTimestamp == null?"":Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM.format(washTimeTimestamp); + Timestamp recyclingTimeTimestamp = rs.getTimestamp("startTime"); + String recyclingTimeTime = recyclingTimeTimestamp == null?"":Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM.format(recyclingTimeTimestamp); + PackingTaskVoForContainer vo = new PackingTaskVoForContainer(id.longValue(), taskGroup, tousseName, amount.intValue(), washTimeTime, recyclingTimeTime); + list.add(vo); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return list; + } } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/PackingTaskVoForContainer.java =================================================================== diff -u --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/PackingTaskVoForContainer.java (revision 0) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/PackingTaskVoForContainer.java (revision 29004) @@ -0,0 +1,78 @@ +package com.forgon.disinfectsystem.packing.vo; +/** + * 容器管理界面清除装配任务所用vo + * @author zc.li + * + */ +public class PackingTaskVoForContainer { + /** + * 装配任务id + */ + private Long id; + /** + * 任务组 + */ + private String taskGroup; + /** + * 包名 + */ + private String tousseName; + /** + * 未装配数量 + */ + private Integer amount; + /** + * 清洗时间 + */ + private String washTime; + /** + * 回收时间 + */ + private String recyclingTime; + public PackingTaskVoForContainer(){} + public PackingTaskVoForContainer(Long id, String taskGroup, String tousseName, Integer amount, String washTime, String recyclingTime){ + this.id=id; + this.taskGroup=taskGroup; + this.tousseName=tousseName; + this.amount=amount; + this.washTime=washTime; + this.recyclingTime=recyclingTime; + } + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public String getTaskGroup() { + return taskGroup; + } + public void setTaskGroup(String taskGroup) { + this.taskGroup = taskGroup; + } + public String getTousseName() { + return tousseName; + } + public void setTousseName(String tousseName) { + this.tousseName = tousseName; + } + public Integer getAmount() { + return amount; + } + public void setAmount(Integer amount) { + this.amount = amount; + } + public String getWashTime() { + return washTime; + } + public void setWashTime(String washTime) { + this.washTime = washTime; + } + public String getRecyclingTime() { + return recyclingTime; + } + public void setRecyclingTime(String recyclingTime) { + this.recyclingTime = recyclingTime; + } + +} Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java =================================================================== diff -u -r28795 -r29004 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 28795) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 29004) @@ -32,6 +32,7 @@ import com.forgon.Constants; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; +import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.damageErrorMaterialType.DamageErrorMaterialType; import com.forgon.disinfectsystem.entity.basedatamanager.imagefilemanager.ImageFile; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; @@ -48,6 +49,7 @@ import com.forgon.disinfectsystem.idcardinstance.vo.IdentificationCardVo; import com.forgon.disinfectsystem.idcardinstance.vo.SerializedMaterial; import com.forgon.disinfectsystem.packing.service.PackingManager; +import com.forgon.disinfectsystem.packing.vo.PackingTaskVoForContainer; import com.forgon.disinfectsystem.packing.vo.ReviewerVo; import com.forgon.disinfectsystem.tousse.comboTousse.service.ComboTousseManager; import com.forgon.disinfectsystem.tousse.imagefilemanager.service.ImageFileManager; @@ -606,14 +608,18 @@ public void deletePackingTask() { String idStr = StrutsParamUtils.getPraramValue("ids", ""); Long tousseID = StrutsParamUtils.getPraramLongValue("tousseID", null); + String deleteCause = StrutsParamUtils.getPraramValue("deleteCause", ""); boolean success = false; try { if (StringUtils.isNotBlank(idStr)) { + if(StringUtils.isBlank(deleteCause)){ + deleteCause = PackingTask.DELETE_CAUSE_MANUAL; + } if(!DatabaseUtil.isPoIdValid(tousseID) || idStr.contains(";")){//批量删除 String[] str = idStr.split(";"); for (String id : str) { PackingTask packingTask = packingManager.get(id); - packingManager.delete(packingTask,PackingTask.DELETE_CAUSE_MANUAL); + packingManager.delete(packingTask,deleteCause); } }else{ Integer amount = StrutsParamUtils.getPraramValue("amount", 0); @@ -631,7 +637,7 @@ tousseName = td.getName(); } for (MaterialErrorDamageDetail medd : medds) { - medd.setStatus(1);//从装配任务处删除 + medd.setStatus(MaterialErrorDamageDetail.STATUS_ONE);//从装配任务处删除 objectDao.update(medd); String msgType = null; if(MaterialErrorDamageDetail.TYPE_ERROR.equals(medd.getType())){ @@ -649,7 +655,7 @@ } } if(unPackAmount <= 0){ - packingManager.delete(packingTask,PackingTask.DELETE_CAUSE_MANUAL); + packingManager.delete(packingTask,deleteCause); }else{ packingTask.setUnPackAmount(unPackAmount); objectDao.update(packingTask); @@ -665,6 +671,30 @@ } /** + * 获取篮筐绑定的装配任务 + */ + public void getPackingTasksByContainerBarcode() { + List packingTasks = new ArrayList(); + try { + String containerBarcode = StrutsParamUtils.getPraramValue("containerBarcode", ""); + if(StringUtils.isBlank(containerBarcode)){ + throw new RuntimeException("参数错误,"+ containerBarcode +"不能为空!"); + } + Container container = (Container)objectDao.getByProperty(Container.class.getSimpleName(), "barcode", containerBarcode); + if(container == null){ + throw new RuntimeException("找不到条码"+ containerBarcode +"对应的容器!"); + } + //如果篮筐状态为清洗装载,则提示:【篮筐状态为清洗装载,不允许删除待装配任务!】;前台已拦截 + if(Container.CONTAINER_STATUS_WASHLOADING.equals(container.getStatus())){ + throw new RuntimeException("【篮筐状态为"+ Container.CONTAINER_STATUS_WASHLOADING +",不允许删除待装配任务!】;"); + } + packingTasks = packingManager.getPackingTasksByContainerBarcode(containerBarcode); + } catch (Exception e) { + e.printStackTrace(); + } + StrutsResponseUtils.output(JSONArray.fromObject(packingTasks)); + } + /** * 暂未发现此action方法有被调用 */ public void updatePrice() { Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java =================================================================== diff -u -r28972 -r29004 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 28972) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 29004) @@ -25,6 +25,7 @@ import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsRecord; import com.forgon.disinfectsystem.entity.urgent.UrgentLevel; import com.forgon.disinfectsystem.packing.vo.PackingTaskForDisplay; +import com.forgon.disinfectsystem.packing.vo.PackingTaskVoForContainer; import com.forgon.disinfectsystem.packing.vo.ReviewerVo; import com.forgon.disinfectsystem.packing.vo.WaitPackingTaskVo; import com.forgon.tools.hibernate.BasePoManager; @@ -309,4 +310,10 @@ * @return key:装配任务id value:装配任务对应的丢失报损备注信息 */ public Map getPackingTaskIdToErrorDamageRemarkMap(Collection packingTaskIds); + /** + * 获取容器条码对应的装配任务 + * @param containerBarcode 容器条码 + * @return + */ + public List getPackingTasksByContainerBarcode(String containerBarcode); }