|
@ -737,8 +737,8 @@ public class MedicinedeviceService extends BaseJpaService<Mediicinedevice, Medi
|
|
|
|
|
|
/**
|
|
|
* 合并和分离货道, state《---1单列货道,21合并货道的主货道,20次货道
|
|
|
* @param cargoIds
|
|
|
* @param isMerge
|
|
|
* @param cargoIds 需合并的货道id
|
|
|
* @param isMerge true,合并,false,分解
|
|
|
* @return
|
|
|
*/
|
|
|
public String mergeAndSplitCargo(String cargoIds, Boolean isMerge, String userId){
|
|
@ -750,7 +750,9 @@ public class MedicinedeviceService extends BaseJpaService<Mediicinedevice, Medi
|
|
|
}
|
|
|
//对cargoIds重排
|
|
|
String[] cargoIdsArray = cargoIds.split(",");
|
|
|
|
|
|
//100percent,cargoCapacityChanged
|
|
|
boolean cargoCapacityChanged = true;
|
|
|
int changedCapacity = 0;
|
|
|
String deviceID = "";
|
|
|
//true,标识合并货道
|
|
|
if (isMerge) {
|
|
@ -804,9 +806,12 @@ public class MedicinedeviceService extends BaseJpaService<Mediicinedevice, Medi
|
|
|
inventory.setRatedInventory(0);
|
|
|
//清空药品
|
|
|
if (isFirst) {
|
|
|
// changedCapacity -= Integer.parseInt(inventory.getCargoCapacity());
|
|
|
inventory.setState("21");
|
|
|
isFirst = false;
|
|
|
} else {
|
|
|
//累计副货道的货道容量
|
|
|
changedCapacity += Integer.parseInt(inventory.getCargoCapacity());
|
|
|
inventory.setState("20");
|
|
|
//副货道内容操作-start-------》bug:13570
|
|
|
inventory.setShelfStatus("0");
|
|
@ -837,6 +842,7 @@ public class MedicinedeviceService extends BaseJpaService<Mediicinedevice, Medi
|
|
|
inventoryRecord.setType("4");
|
|
|
inventoryRecordDao.save(inventoryRecord);
|
|
|
}
|
|
|
deviceID = inventory.getIdDevice();
|
|
|
//清空药品
|
|
|
inventory.setQty("0");
|
|
|
inventory.setDrugName(null);
|
|
@ -851,7 +857,12 @@ public class MedicinedeviceService extends BaseJpaService<Mediicinedevice, Medi
|
|
|
//清空药品
|
|
|
inventory.setState("1");
|
|
|
inventoryDao.save(inventory);
|
|
|
boolean jumpFirst = true;
|
|
|
for (MediicinecabinetInventory mediicinecabinetInventory : list) {
|
|
|
if(jumpFirst) {
|
|
|
changedCapacity += Integer.parseInt(mediicinecabinetInventory.getCargoCapacity());
|
|
|
}
|
|
|
jumpFirst = false;
|
|
|
mediicinecabinetInventory.setMerge(mediicinecabinetInventory.getWayerNo());
|
|
|
mediicinecabinetInventory.setState("1");
|
|
|
inventoryDao.save(mediicinecabinetInventory);
|
|
@ -879,21 +890,50 @@ public class MedicinedeviceService extends BaseJpaService<Mediicinedevice, Medi
|
|
|
"AND (t.state = '1' OR t.state = '21')";
|
|
|
mediicinedevice.setAisles(String.valueOf(jdbcTemplate.queryForObject(tempSql, Integer.class)));
|
|
|
//重算货道容量
|
|
|
tempSql = "SELECT\n" +
|
|
|
"\tifnull(sum(t.cargo_capacity), 0) as cargoCapacity\n" +
|
|
|
"FROM\n" +
|
|
|
"\tt_mediicinecabinet_inventory t\n" +
|
|
|
"WHERE\n" +
|
|
|
"\tt.id_device = '"+deviceID+"'\n" +
|
|
|
"AND (t.state = '1' OR t.state = '21')";
|
|
|
|
|
|
Map<String,Object> totalMap = jdbcTemplate.queryForMap(tempSql);
|
|
|
Integer noOnlineTotal1 = 0;
|
|
|
if (totalMap!=null){
|
|
|
if (totalMap.get("cargoCapacity") != null) {
|
|
|
noOnlineTotal1 = (int) Double.parseDouble(totalMap.get("cargoCapacity").toString());
|
|
|
//防止出现问题
|
|
|
noOnlineTotal1 = Integer.parseInt(mediicinedevice.getCapacity());
|
|
|
if (cargoCapacityChanged) {
|
|
|
tempSql = "SELECT\n" +
|
|
|
"\tifnull(sum(t.cargo_capacity), 0) as cargoCapacity\n" +
|
|
|
"FROM\n" +
|
|
|
"\tt_mediicinecabinet_inventory t\n" +
|
|
|
"WHERE\n" +
|
|
|
"\tt.id_device = '"+mediicinedevice.getId()+"'\n" +
|
|
|
"AND t.id not in ('"+cargoIds+"')\n" +
|
|
|
"AND (t.state = '1' OR t.state = '21')";
|
|
|
|
|
|
Map<String,Object> totalMap = jdbcTemplate.queryForMap(tempSql);
|
|
|
|
|
|
if (totalMap != null){
|
|
|
if (totalMap.get("cargoCapacity") != null) {
|
|
|
if (isMerge) {
|
|
|
//合并货道,搜的是单列 货道,包含了现在要合并的内容,changedCapacity的是没了的
|
|
|
noOnlineTotal1 = (int) Double.parseDouble(totalMap.get("cargoCapacity").toString() );
|
|
|
} else {
|
|
|
//分离货道,主货道,也包含了现在恢复的主货道的容量
|
|
|
noOnlineTotal1 = (int) Double.parseDouble(String.valueOf(totalMap.get("cargoCapacity"))) + changedCapacity;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
// mediicinedevice.setCapacity(String.valueOf(noOnlineTotal1));
|
|
|
// deviceDao.save(mediicinedevice);
|
|
|
}
|
|
|
// tempSql = "SELECT\n" +
|
|
|
// "\tifnull(sum(t.cargo_capacity), 0) as cargoCapacity\n" +
|
|
|
// "FROM\n" +
|
|
|
// "\tt_mediicinecabinet_inventory t\n" +
|
|
|
// "WHERE\n" +
|
|
|
// "\tt.id_device = '"+deviceID+"'\n" +
|
|
|
// "AND (t.state = '1' OR t.state = '21')";
|
|
|
//
|
|
|
// Map<String,Object> totalMap = jdbcTemplate.queryForMap(tempSql);
|
|
|
// Integer noOnlineTotal1 = 0;
|
|
|
// if (totalMap!=null){
|
|
|
// if (totalMap.get("cargoCapacity") != null) {
|
|
|
// noOnlineTotal1 = (int) Double.parseDouble(totalMap.get("cargoCapacity").toString());
|
|
|
// }
|
|
|
// }
|
|
|
mediicinedevice.setCapacity(String.valueOf(noOnlineTotal1));
|
|
|
deviceDao.save(mediicinedevice);
|
|
|
}
|
|
@ -914,13 +954,42 @@ public class MedicinedeviceService extends BaseJpaService<Mediicinedevice, Medi
|
|
|
result.put("response", ConstantUtils.FAIL);
|
|
|
return result.toJSONString();
|
|
|
}
|
|
|
String deviceId = null;
|
|
|
int changedCargoCapacity = 0;
|
|
|
for (String cargoId : cargoIds.split(",")) {
|
|
|
if(!StringUtils.isEmpty(cargoId)){
|
|
|
MediicinecabinetInventory inventory = inventoryDao.findOne(cargoId);
|
|
|
inventory.setCargoState(cargoState);
|
|
|
if (cargoState.equals("1")) {
|
|
|
changedCargoCapacity += Integer.parseInt(inventory.getCargoCapacity());
|
|
|
}
|
|
|
deviceId = inventory.getIdDevice();
|
|
|
inventoryDao.save(inventory);
|
|
|
}
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(deviceId)) {
|
|
|
Mediicinedevice mediicinedevice = deviceDao.findOne(deviceId);
|
|
|
if (mediicinedevice != null) {
|
|
|
int oldCapacity = Integer.parseInt(mediicinedevice.getCapacity());
|
|
|
String tempSql = "SELECT\n" +
|
|
|
"\tifnull(sum(t.cargo_capacity), 0) as cargoCapacity\n" +
|
|
|
"FROM\n" +
|
|
|
"\tt_mediicinecabinet_inventory t\n" +
|
|
|
"WHERE\n" +
|
|
|
"\tt.id_device = '"+mediicinedevice.getId()+"'\n" +
|
|
|
"AND t.id not in ('"+cargoIds+"')\n" +
|
|
|
"AND (t.state = '1' OR t.state = '21')";
|
|
|
Map<String,Object> totalMap = jdbcTemplate.queryForMap(tempSql);
|
|
|
|
|
|
if (totalMap != null){
|
|
|
if (totalMap.get("cargoCapacity") != null) {
|
|
|
oldCapacity = (int) Double.parseDouble(String.valueOf(totalMap.get("cargoCapacity"))) + changedCargoCapacity;
|
|
|
}
|
|
|
}
|
|
|
mediicinedevice.setCapacity(String.valueOf(oldCapacity));
|
|
|
deviceDao.save(mediicinedevice);
|
|
|
}
|
|
|
}
|
|
|
result.put("response",ConstantUtils.SUCCESS);
|
|
|
return result.toJSONString();
|
|
|
}
|
|
@ -1675,16 +1744,16 @@ public class MedicinedeviceService extends BaseJpaService<Mediicinedevice, Medi
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql);
|
|
|
|
|
|
int closedCapacity = list.stream()
|
|
|
.filter(item -> "0".equals(String.valueOf(item.get("cargoState"))) && "0".equals(String.valueOf(item.get("faultState"))))
|
|
|
.filter(item -> "0".equals(String.valueOf(item.get("cargoState"))))
|
|
|
.mapToInt(item -> Integer.parseInt(String.valueOf(item.get("cargoCapacity")))).sum();
|
|
|
|
|
|
int faultCapacity = list.stream()
|
|
|
.filter(item -> "1".equals(String.valueOf(item.get("cargoState"))) && "1".equals(String.valueOf(item.get("faultState"))))
|
|
|
.mapToInt(item -> Integer.parseInt(String.valueOf(item.get("cargoCapacity")))).sum();
|
|
|
// int faultCapacity = list.stream()
|
|
|
// .filter(item -> "1".equals(String.valueOf(item.get("cargoState"))) && "1".equals(String.valueOf(item.get("faultState"))))
|
|
|
// .mapToInt(item -> Integer.parseInt(String.valueOf(item.get("cargoCapacity")))).sum();
|
|
|
//closedAndFaultCapacity
|
|
|
int closedAndFaultCapacity = list.stream()
|
|
|
.filter(item -> "0".equals(String.valueOf(item.get("cargoState"))) && "1".equals(String.valueOf(item.get("faultState"))))
|
|
|
.mapToInt(item -> Integer.parseInt(String.valueOf(item.get("cargoCapacity")))).sum();
|
|
|
// int closedAndFaultCapacity = list.stream()
|
|
|
// .filter(item -> "0".equals(String.valueOf(item.get("cargoState"))) && "1".equals(String.valueOf(item.get("faultState"))))
|
|
|
// .mapToInt(item -> Integer.parseInt(String.valueOf(item.get("cargoCapacity")))).sum();
|
|
|
|
|
|
int drugNumber = list.stream()
|
|
|
.filter(item -> "1".equals(String.valueOf(item.get("cargoState"))) && "0".equals(String.valueOf(item.get("faultState"))))
|
|
@ -1738,7 +1807,7 @@ public class MedicinedeviceService extends BaseJpaService<Mediicinedevice, Medi
|
|
|
// "AND (t.state = '1' OR t.state = '21')";
|
|
|
// int drugNumber = jdbcTemplate.queryForObject(tempSql, Integer.class);
|
|
|
|
|
|
int outOfStock = Integer.parseInt(device.getCapacity()) - closedAndFaultCapacity - faultCapacity - closedCapacity - drugNumber;
|
|
|
int outOfStock = Integer.parseInt(device.getCapacity()) - closedCapacity - drugNumber;
|
|
|
jsonObject.put("outOfStock", outOfStock);
|
|
|
//缺货库存----end
|
|
|
tempSql = "SELECT\n" +
|