Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/materialerrordamage/controller/MaterialErrorDamageController.java =================================================================== diff -u --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/materialerrordamage/controller/MaterialErrorDamageController.java (revision 0) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/materialerrordamage/controller/MaterialErrorDamageController.java (revision 24512) @@ -0,0 +1,211 @@ +/** + * + */ +package com.forgon.disinfectsystem.materialerrordamage.controller; + +import java.util.List; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.disinfectsystem.entity.basedatamanager.damageErrorMaterialType.DamageErrorMaterialType; +import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; +import com.forgon.disinfectsystem.entity.materialerrordamage.MaterialErrorDamageDetail; +import com.forgon.disinfectsystem.entity.packing.PackingTask; +import com.forgon.disinfectsystem.entity.recyclingerror.RecyclingError; +import com.forgon.disinfectsystem.materialerrordamage.service.MaterialErrorDamageDetailManager; +import com.forgon.disinfectsystem.packing.service.PackingManager; +import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; +import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.json.JSONUtil; +import com.forgon.tools.util.SpringUtils; + +/** + * @author dandan 2018年10月9日 下午1:58:39 + * + */ +@RestController +@RequestMapping(value = "/disinfectSystem/recyclingrecord/materialErrorDamageController", produces = "application/json;charset=UTF-8") +public class MaterialErrorDamageController { + @Autowired + private MaterialErrorDamageDetailManager materialErrorDamageDetailManager; + @Autowired + private TousseDefinitionManager tousseDefinitionManager; + @Autowired + private PackingManager packingManager; + @Autowired + private ObjectDao objectDao; + + @RequestMapping(value = "/loadAdditionalMaterialStore") + public String loadAdditionalMaterialStore() { + String type = SpringUtils.getPraramValue("type", null); + String packingTaskId = SpringUtils + .getPraramValue("packingTaskId", null); + String handleDepartCode = AcegiHelper.getLoginUser() + .getOrgUnitCodingFromSupplyRoomConfig(); + JSONArray array = new JSONArray(); + if (StringUtils.isNotBlank(type)) { + if (PackingTask.TYPE_LOST.equals(type)) { + String sql = String + .format("where po.errorType = '%s' " + + "and po.additionalAmount < po.amount and po.handleDepartCode = '%s' and po.type = '%s' ", + RecyclingError.ERRORTYPE_REDUCE, + handleDepartCode, + MaterialErrorDamageDetail.TYPE_ERROR); + if (StringUtils.isNotBlank(packingTaskId)) { + sql += " and po.packingTaskId = " + packingTaskId; + // 批量补充标识牌丢失不显示 + } else { + sql += " and po.materialName != '" + + MaterialInstance.MATERIAL_NAME_IDCARD + "'"; + } + // 待确认的不显示 + sql += " and po.packingTaskId not in (select id from PackingTask where status = '" + + PackingTask.STATUS_AWAIT_VERIFYING + "')"; + List errors = materialErrorDamageDetailManager + .getDetails(sql); + for (MaterialErrorDamageDetail error : errors) { + JSONObject obj = new JSONObject(); + obj.put("id", error.getId()); + obj.put("materialName", error.getMaterialName()); + obj.put("amount", + error.getAmount() - error.getAdditionalAmount()); + obj.put("packingTaskId", error.getPackingTaskId()); + obj.put("tousseDefinitionId", error.getTousseDefinitionId()); + obj.put("materialDefinitionId", + error.getMaterialDefinitionId()); + obj.put("materialType", error.getDamageErrorMaterialType()); + obj.put("departType", error.getDamageErrorDepartType()); + obj.put("type", PackingTask.TYPE_LOST); + array.add(obj); + } + } else if (PackingTask.TYPE_DAMAGE.equals(type)) { + // 查询全部报损器械 + String sql = "where po.additionalAmount < po.amount and po.handleDepartCode = '" + + handleDepartCode + + "' and po.type = '" + + MaterialErrorDamageDetail.TYPE_DAMAGE + "'"; + if (StringUtils.isNotBlank(packingTaskId)) { + sql += " and po.packingTaskId = " + packingTaskId; + } + // 待确认的不显示 + sql += " and po.packingTaskId not in (select id from PackingTask where status = '" + + PackingTask.STATUS_AWAIT_VERIFYING + "')"; + + List damages = materialErrorDamageDetailManager + .getDetails(sql); + if (damages != null) { + for (MaterialErrorDamageDetail detail : damages) { + JSONObject obj = new JSONObject(); + obj.put("id", detail.getId()); + obj.put("materialName", detail.getMaterialName()); + obj.put("amount", + detail.getAmount() + - detail.getAdditionalAmount()); + obj.put("packingTaskId", detail.getPackingTaskId()); + obj.put("tousseDefinitionId", + detail.getTousseDefinitionId()); + obj.put("materialDefinitionId", + detail.getMaterialDefinitionId()); + obj.put("materialType", + detail.getDamageErrorMaterialType()); + obj.put("departType", detail.getDamageErrorDepartType()); + obj.put("type", PackingTask.TYPE_DAMAGE); + array.add(obj); + } + } + } + } + + JSONObject obj = new JSONObject(); + JSONUtil.addSuccess(obj, true); + obj.put("rows", array); + obj.put("total", array.size()); + return obj.toString(); + } + + /** + * 获取材料类型 + */ + @RequestMapping(value = "/getMaterialTypeType") + public String getMaterialTypeType() { + String departTypeName = SpringUtils.getPraramValue("departTypeName", + null); + JSONArray arr = new JSONArray(); + List list = objectDao.findByProperty( + DamageErrorMaterialType.class.getSimpleName(), + "materialDepartType", departTypeName); + if (list != null && list.size() > 0) { + for (DamageErrorMaterialType dem : list) { + JSONObject obj = new JSONObject(); + obj.put("value", dem.getMaterialTypeName()); + arr.add(obj); + } + } + JSONObject result = new JSONObject(); + JSONUtil.addSuccess(result, true); + result.put("rows", arr); + result.put("total", arr.size()); + return result.toString(); + } + + // 获取丢失报损科室类型 + @RequestMapping(value = "/getDamageErrorDepartType") + public String getDamageErrorDepartType() { + JSONObject obj1 = new JSONObject(); + obj1.put("value", DamageErrorMaterialType.ClinicGernalMaterial); + JSONObject obj2 = new JSONObject(); + obj2.put("value", DamageErrorMaterialType.ClinicSpecialMaterial); + JSONObject obj3 = new JSONObject(); + obj3.put("value", DamageErrorMaterialType.OperatorGernalMaterial); + JSONObject obj4 = new JSONObject(); + obj4.put("value", DamageErrorMaterialType.OperatorSpecialMaterial); + JSONArray arr = new JSONArray(); + arr.add(obj1); + arr.add(obj2); + arr.add(obj3); + arr.add(obj4); + JSONObject result = new JSONObject(); + JSONUtil.addSuccess(result, true); + result.put("rows", arr); + result.put("total", arr.size()); + return result.toString(); + } + + @RequestMapping(value = "/materialSupplement") + public String materialSupplement() { + String msg = "器械补充成功!"; + boolean success = true; + String packingTaskId = SpringUtils.getPraramValue("packingTaskId", ""); + String suppleJson = SpringUtils.getPraramValue("suppleStr", ""); + String type = SpringUtils.getPraramValue("type", ""); + String washBasketBarcode = SpringUtils.getPraramValue( + "washBasketBarcode", ""); + try { + // 批量补充丢失、报损 + if (StringUtils.isBlank(packingTaskId)) { + materialErrorDamageDetailManager.materialBatchSupplement(type, + suppleJson, washBasketBarcode); + // 单个装配 + } else { + JSONArray suppleArray = null; + if (StringUtils.isNotBlank(suppleJson)) { + suppleArray = JSONArray.fromObject(suppleJson); + } + materialErrorDamageDetailManager.materialSupplement( + packingTaskId, type, suppleArray, washBasketBarcode); + } + } catch (Exception e) { + msg = e.getMessage(); + success = false; + } + JSONObject json = JSONUtil.buildJsonObject(success, msg); + return json.toString(); + } +} Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/controller/WashAndDisinfectRecordController.java =================================================================== diff -u -r24488 -r24512 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/controller/WashAndDisinfectRecordController.java (.../WashAndDisinfectRecordController.java) (revision 24488) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/controller/WashAndDisinfectRecordController.java (.../WashAndDisinfectRecordController.java) (revision 24512) @@ -15,11 +15,14 @@ import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.directory.model.BarcodeDevice; import com.forgon.directory.vo.LoginUserData; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; import com.forgon.disinfectsystem.basedata.becleanitem.service.ClassifiedItemManager; import com.forgon.disinfectsystem.basedata.becleanitem.service.ClassifyBasketManager; +import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; import com.forgon.disinfectsystem.idcarddefinition.service.IDCardDefinitionManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; @@ -113,4 +116,43 @@ } return object.toString(); } + @RequestMapping(value = "/loadClassifyBasket") + public String loadClassifyBasket() { + String barcode = SpringUtils.getPraramValue("basketBarcode", ""); + BarcodeDevice barcodeDevice = barcodeManager + .getBarcodeByBarcode(barcode); + ClassifyBasket classifyBasket = new ClassifyBasket(); + String message = ""; + if (barcodeDevice instanceof Container) { + Container container = (Container) barcodeDevice; + String status = container.getStatus(); + if (container.isCleanBasket()) { + if(container.CONTAINER_STATUS_FREE.equals(status) || + container.CONTAINER_STATUS_WASHLOADING.equals(status) || + container.CONTAINER_STATUS_PACKED.equals(status) || + container.CONTAINER_STATUS_WASHED.equals(status)){ + ClassifyBasket tmpClassifyBasket = classifyBasketManager + .getUnWashedBasket(barcode); + if (tmpClassifyBasket == null) { + classifyBasket.setId(0L); + } else { + classifyBasket.setId(tmpClassifyBasket.getId()); + } + classifyBasket.setContainerBarcode(container.getBarcode()); + classifyBasket.setContainerName(container.getContainerName()); + }else{ + message = "当前篮筐状态为["+status+"],不能装载器械!"; + } + } else { + message = "请扫描清洗篮筐条码!"; + } + }else{ + message = "请扫描清洗篮筐条码!"; + } + JSONObject result = new JSONObject(); + result.put("success", true); + result.put("message", message); + result.put("data", classifyBasket); + return result.toString(); + } }