Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/controller/BarcodeController.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/controller/BarcodeController.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/controller/BarcodeController.java (revision 24393) @@ -0,0 +1,113 @@ +/** + * + */ +package com.forgon.disinfectsystem.barcode.controller; + +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.directory.model.BarcodeDevice; +import com.forgon.disinfectsystem.barcode.service.BarcodeManager; +import com.forgon.disinfectsystem.common.CssdUtils; +import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.idcarddefinition.IDCardDefinition; +import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstance; +import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.json.JSONUtil; +import com.forgon.tools.util.SpringUtils; + +/** + * @author dandan 2018年9月28日 上午11:05:40 + * + */ +@RestController +@RequestMapping(value ="/disinfectSystem/baseData/barcode/barcodeController", produces = "application/json;charset=UTF-8") +public class BarcodeController { + @Autowired + private BarcodeManager barcodeManager; + @Autowired + private ObjectDao objectDao; + + @RequestMapping(value="/getBarcodeTypeByBarcode") + public String getBarcodeTypeByBarcode(){ + String barcode = SpringUtils.getPraramValue("barcode", null); + JSONObject obj = new JSONObject(); + obj.put("returnType", ""); + JSONUtil.addSuccess(obj, true); + String curUserDepartCoding = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); + if(StringUtils.isNotBlank(barcode)){ + BarcodeDevice barcodeDevice = barcodeManager.getBarcodeByBarcode(barcode); + if(barcodeDevice !=null){ + if(barcodeDevice.getType()!=null && barcodeDevice.getType().equals(BarcodeDevice.BARCODE_TYPE_ORGUNIT)){ + obj.put("returnType", "orgunit"); + }else if(barcodeDevice.getType()!=null && barcodeDevice.getType().equals(BarcodeDevice.BARCODE_TYPE_USER)){ + obj.put("returnType", "user"); + }else if(barcodeDevice.getType()!=null && (barcodeDevice.getType().equals(BarcodeDevice.BARCODE_TYPE_PACKAGE) + || barcodeDevice.getType().equals(BarcodeDevice.BARCODE_TYPE_SIGNBOARD))){ + obj.put("returnType", "tousseInstance"); + // 是否配置标识牌绑定篮筐 + if( barcodeDevice instanceof IDCardInstance){ + obj.put("isIdcardInstance", true); + if(true == CssdUtils.getSystemSetConfigByNameBool("enableIdCardBasketBinding") ){ + IDCardInstance instance = (IDCardInstance)barcodeDevice; + IDCardDefinition def = instance.getIDCardDefinition(objectDao); + if(def != null && StringUtils.isNotBlank(def.getContainerBarcode())){ + obj.put("bindingContianer", def.getContainerBarcode()); + } + } + } + }else if(barcodeDevice.getType()!=null && barcodeDevice.getType().equals(BarcodeDevice.BARCODE_TYPE_CONTAINER)){ + if(barcodeDevice instanceof Container){ + Container container = (Container)barcodeDevice; + + obj.put("returnType", "container"); + obj.put("containerType", container.getPurpose()); + obj.put("status", container.getStatus()); + String coding = container.getDepartCode(); + if(StringUtils.isNotBlank(curUserDepartCoding)){ + if(curUserDepartCoding.equals(coding)){ + obj.put("isCurUserDepart", true); + }else{ + obj.put("isCurUserDepart", false); + } + } + + //如果扫描的篮筐有绑定标识牌,则把标识牌条码也查出来 + Long id = container.getIdCardDefinitionId(); + if(DatabaseUtil.isPoIdValid(id)){ + IDCardDefinition idcardDefinition = (IDCardDefinition) objectDao.getByProperty( + IDCardDefinition.class.getSimpleName(),"id", id); + if(idcardDefinition != null){ + obj.put("idCardBarcode", idcardDefinition.getCurIdCardInstanceBarcode()); + } + } + }else{ + obj.put("message", "该条码对应的篮筐已被删除,请勿再使用此条码!"); + } + + }else if(barcodeDevice.getType()!=null && barcodeDevice.getType().equals(BarcodeDevice.BARCODE_TYPE_CLEANMETHOD)){ + obj.put("returnType", "cleanmethod"); + }else if(barcodeDevice.getType()!=null && barcodeDevice.getType().equals(BarcodeDevice.BARCODE_TYPE_RINSER)){ + obj.put("returnType", "rinser"); + }else if(barcodeDevice instanceof IDCardInstance){ + obj.put("returnType", "tousseInstance"); + }else if(barcodeDevice.getType()!=null && barcodeDevice.getType().equals(BarcodeDevice.BARCODE_TYPE_POSITION)){ + obj.put("returnType", "position"); + }else{ + obj.put("message", "条码类型不对,请扫描科室/用户/标识牌/器械包/清洗筐/清洗程序/清洗机条码!"); + } + }else{ + obj.put("message", String.format("条码%s已不存在!", barcode)); + } + }else{ + obj.put("message", "条码不能为空!"); + } + return obj.toString(); + } +}