Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r36178 -r36180 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 36178) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 36180) @@ -9515,7 +9515,7 @@ List list = getCollectionForUpdate(invoicePlan.getId(), PackingTask.TASK_APPLICATION); if(CollectionUtils.isNotEmpty(list)){ updateSerialNumberIfNeeded(invoicePlan); - updateSerialNumber(list,invoicePlan.getPackingTaskSerialNumber()); + dataHelperForPacking.batchUpdateSerialNumber(list, invoicePlan.getPackingTaskSerialNumber()); } } @@ -9535,7 +9535,7 @@ List list = getCollectionForUpdate(recyclingRecord.getId(), PackingTask.TASK_RECYCLINGRECORD); if(CollectionUtils.isNotEmpty(list)){ updateSerialNumberIfNeeded(recyclingRecord); - updateSerialNumber(list,recyclingRecord.getPackingTaskSerialNumber()); + dataHelperForPacking.batchUpdateSerialNumber(list, recyclingRecord.getPackingTaskSerialNumber()); } } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/helper/DataHelperForPacking.java =================================================================== diff -u -r36178 -r36180 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/helper/DataHelperForPacking.java (.../DataHelperForPacking.java) (revision 36178) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/helper/DataHelperForPacking.java (.../DataHelperForPacking.java) (revision 36180) @@ -1,5 +1,6 @@ package com.forgon.disinfectsystem.packing.helper; +import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; @@ -8,19 +9,25 @@ import java.util.Map; import java.util.Set; import java.util.Map.Entry; + import net.sf.json.JSONArray; import net.sf.json.JSONObject; + import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; +import org.springframework.jdbc.core.BatchPreparedStatementSetter; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.ResultSetExtractor; import org.springframework.stereotype.Component; + import com.forgon.directory.model.BarcodeDevice; import com.forgon.directory.model.SetCode_Barcode; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.packing.PackingTask; import com.forgon.tools.MathTools; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.string.StringTools; import com.forgon.tools.util.SqlUtils; /** * 装配模块的一些数据处理 @@ -107,5 +114,31 @@ }); return setCodeMap; } - + /** + * 批次将装配任务的序列号设备为指定的序列号。这里不管原来装配任务的序列号是什么,统一设置为指定的值。 + * @param packingTasks 需要修改的装配任务 + * @param serialNumber 序列号 + */ + public void batchUpdateSerialNumber(List packingTasks,String serialNumber){ + if(CollectionUtils.isEmpty(packingTasks)){ + return; + } + if(StringTools.isBlank(serialNumber)){ + throw new RuntimeException("装配任务的序列号不能设置为空"); + } + StringBuffer sbf = new StringBuffer(); + sbf.append("update PackingTask set serialNumber='"+ serialNumber +"' where id=?;"); + jdbcTemplate.batchUpdate(sbf.toString(), new BatchPreparedStatementSetter() { + + @Override + public void setValues(PreparedStatement ps, int i) throws SQLException { + ps.setLong(1, packingTasks.get(i).getId()); + } + + @Override + public int getBatchSize() { + return packingTasks.size(); + } + }); + } }