Index: ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml
===================================================================
diff -u -r32918 -r33110
--- ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 32918)
+++ ssts-web/src/main/webapp/WEB-INF/spring/applicationContext-disinfectsystem-service.xml (.../applicationContext-disinfectsystem-service.xml) (revision 33110)
@@ -2745,4 +2745,15 @@
class="com.forgon.disinfectsystem.adverseeventrecord.service.AdverseEventRecordManagerImpl">
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/instrumentrepair/InstrumentRepair.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/instrumentrepair/InstrumentRepair.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/instrumentrepair/InstrumentRepair.java (revision 33110)
@@ -0,0 +1,474 @@
+package com.forgon.disinfectsystem.entity.basedatamanager.instrumentrepair;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
+import javax.persistence.Transient;
+
+import org.apache.commons.collections.MapUtils;
+import org.apache.commons.collections4.CollectionUtils;
+import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+import org.hibernate.annotations.Cascade;
+import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.forgon.Constants;
+import com.forgon.tools.string.StringTools;
+
+/**
+ * 器械维修管理
+ * @author ZhouPeiMian
+ * @since 2022-01-24
+ */
+@Entity
+@DynamicInsert(false)
+@DynamicUpdate(true)
+@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class InstrumentRepair {
+
+ private Long id;
+
+ /**
+ * 状态(维修中,待维修,已修好,报废)
+ */
+ private String repairStatus = REPAIR_STATUS_REPAIRING;
+
+ //状态(维修中,待维修,已修好,报废)
+ public final static String REPAIR_STATUS_REPAIRING = "维修中";
+ public final static String REPAIR_STATUS_WAIRT_REPAIR = "待维修";
+ public final static String REPAIR_STATUS_REPAIRED = "已修好";
+ public final static String REPAIR_STATUS_DISCARD = "报废";
+
+ /**
+ * 登记人ID
+ */
+ private Long registrantID;
+
+ /**
+ * 登记人姓名
+ */
+ private String registrantName;
+
+ /**
+ * 登记时间
+ */
+ private Date registerDateTime;
+
+ /**
+ * 房间号
+ */
+ private String roomNumber;
+
+ /**
+ * 洗手护士ID(发现故障)
+ */
+ private Long washHandNurseID;
+
+ /**
+ * 洗手护士姓名(发现故障)
+ */
+ private String washHandNurseName;
+
+ /**
+ * 送修护士ID
+ */
+ private Long repairNurseID;
+
+ /**
+ * 送修护士
+ */
+ private String repairNurseName;
+
+ /**
+ * 工程师(现场)
+ */
+ private String engineer;
+
+ /**
+ * 送修类别:默认不勾选,选项有:送修厂家、自行维修、无法维修,只能选择其中一个
+ */
+ private String repairType;
+
+ //默认不勾选,选项有:送修厂家、自行维修、无法维修
+ public final static String REPAIR_TYPE_MANUFACTOR_REPAIR = "送修厂家";
+ public final static String REPAIR_TYPE_SELF_REPAIR = "自行维修";
+ public final static String REPAIR_TYPE_UNABLE_REPAIR = "无法维修";
+
+ /**
+ * 器械是否唯一:默认不勾选,选项有“是”和“否”
+ */
+ private String uniqueTousse;
+
+ /**
+ * 维修时间
+ */
+ private Date repairDateTime;
+
+ /**
+ * 是否感染:“是”和“否”
+ */
+ private String infected = Constants.STR_NO;
+
+ /**
+ * 感染的疾病
+ */
+ private String infectDisease;
+
+ /**
+ * 器械故障现象描述并标记故障点
+ */
+ private String repairDesc;
+
+ /**
+ * 出科交接人ID
+ */
+ private String outHandoverUserID;
+
+ /**
+ * 出科交接人名称
+ */
+ private String outHandoverUserName;
+
+ /**
+ * 出科时间
+ */
+ private Date outHandoverDateTime;
+
+ /**
+ * 回科交接人ID
+ */
+ private String returnHandoverUserID;
+
+ /**
+ * 回科交接人姓名
+ */
+ private String returnHandoverUserName;
+
+ /**
+ * 回科时间
+ */
+ private Date returnHandoverDateTime;
+
+ /**
+ * 审核人ID
+ */
+ private Long reviewerID;
+
+ /**
+ * 审核人姓名
+ */
+ private String reviewerName;
+
+ /**
+ * 审核状态
+ */
+ private String reviewStatus = REVIEW_STATUS_UNREVIEW;
+ //审核状态
+ public final static String REVIEW_STATUS_REVIEWED = "已审核";
+ public final static String REVIEW_STATUS_UNREVIEW = "未审核";
+
+ /**
+ * 废弃时间
+ */
+ private Date discardDateTime;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 需要维修的器械
+ */
+ private List instrumentRepairGoodsList = new ArrayList();
+
+ /**
+ * 材料明细汇总信息
+ */
+ private String materialNameAndAmount;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getRepairStatus() {
+ return repairStatus;
+ }
+
+ public void setRepairStatus(String repairStatus) {
+ this.repairStatus = repairStatus;
+ }
+
+ public Long getRegistrantID() {
+ return registrantID;
+ }
+
+ public void setRegistrantID(Long registrantID) {
+ this.registrantID = registrantID;
+ }
+
+ public String getRegistrantName() {
+ return registrantName;
+ }
+
+ public void setRegistrantName(String registrantName) {
+ this.registrantName = registrantName;
+ }
+
+ public Date getRegisterDateTime() {
+ return registerDateTime;
+ }
+
+ public void setRegisterDateTime(Date registerDateTime) {
+ this.registerDateTime = registerDateTime;
+ }
+
+ public String getRoomNumber() {
+ return roomNumber;
+ }
+
+ public void setRoomNumber(String roomNumber) {
+ this.roomNumber = roomNumber;
+ }
+
+ public Long getWashHandNurseID() {
+ return washHandNurseID;
+ }
+
+ public void setWashHandNurseID(Long washHandNurseID) {
+ this.washHandNurseID = washHandNurseID;
+ }
+
+ public String getWashHandNurseName() {
+ return washHandNurseName;
+ }
+
+ public void setWashHandNurseName(String washHandNurseName) {
+ this.washHandNurseName = washHandNurseName;
+ }
+
+ public Long getRepairNurseID() {
+ return repairNurseID;
+ }
+
+ public void setRepairNurseID(Long repairNurseID) {
+ this.repairNurseID = repairNurseID;
+ }
+
+ public String getRepairNurseName() {
+ return repairNurseName;
+ }
+
+ public void setRepairNurseName(String repairNurseName) {
+ this.repairNurseName = repairNurseName;
+ }
+
+ public String getEngineer() {
+ return engineer;
+ }
+
+ public void setEngineer(String engineer) {
+ this.engineer = engineer;
+ }
+
+ public String getRepairType() {
+ return repairType;
+ }
+
+ public void setRepairType(String repairType) {
+ this.repairType = repairType;
+ }
+
+ public String getUniqueTousse() {
+ return uniqueTousse;
+ }
+
+ public void setUniqueTousse(String uniqueTousse) {
+ this.uniqueTousse = uniqueTousse;
+ }
+
+ public Date getRepairDateTime() {
+ return repairDateTime;
+ }
+
+ public void setRepairDateTime(Date repairDateTime) {
+ this.repairDateTime = repairDateTime;
+ }
+
+ public String getInfected() {
+ return infected;
+ }
+
+ public void setInfected(String infected) {
+ this.infected = infected;
+ }
+
+ public String getInfectDisease() {
+ return infectDisease;
+ }
+
+ public void setInfectDisease(String infectDisease) {
+ this.infectDisease = infectDisease;
+ }
+
+ public String getRepairDesc() {
+ return repairDesc;
+ }
+
+ public void setRepairDesc(String repairDesc) {
+ this.repairDesc = repairDesc;
+ }
+
+ public String getOutHandoverUserID() {
+ return outHandoverUserID;
+ }
+
+ public void setOutHandoverUserID(String outHandoverUserID) {
+ this.outHandoverUserID = outHandoverUserID;
+ }
+
+ public String getOutHandoverUserName() {
+ return outHandoverUserName;
+ }
+
+ public void setOutHandoverUserName(String outHandoverUserName) {
+ this.outHandoverUserName = outHandoverUserName;
+ }
+
+ public Date getOutHandoverDateTime() {
+ return outHandoverDateTime;
+ }
+
+ public void setOutHandoverDateTime(Date outHandoverDateTime) {
+ this.outHandoverDateTime = outHandoverDateTime;
+ }
+
+ public String getReturnHandoverUserID() {
+ return returnHandoverUserID;
+ }
+
+ public void setReturnHandoverUserID(String returnHandoverUserID) {
+ this.returnHandoverUserID = returnHandoverUserID;
+ }
+
+ public String getReturnHandoverUserName() {
+ return returnHandoverUserName;
+ }
+
+ public void setReturnHandoverUserName(String returnHandoverUserName) {
+ this.returnHandoverUserName = returnHandoverUserName;
+ }
+
+ public Date getReturnHandoverDateTime() {
+ return returnHandoverDateTime;
+ }
+
+ public void setReturnHandoverDateTime(Date returnHandoverDateTime) {
+ this.returnHandoverDateTime = returnHandoverDateTime;
+ }
+
+ public Date getDiscardDateTime() {
+ return discardDateTime;
+ }
+
+ public void setDiscardDateTime(Date discardDateTime) {
+ this.discardDateTime = discardDateTime;
+ }
+
+ public Long getReviewerID() {
+ return reviewerID;
+ }
+
+ public void setReviewerID(Long reviewerID) {
+ this.reviewerID = reviewerID;
+ }
+
+ public String getReviewerName() {
+ return reviewerName;
+ }
+
+ public void setReviewerName(String reviewerName) {
+ this.reviewerName = reviewerName;
+ }
+
+ public String getReviewStatus() {
+ return reviewStatus;
+ }
+
+ public void setReviewStatus(String reviewStatus) {
+ this.reviewStatus = reviewStatus;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ @OneToMany(mappedBy = "instrumentRepair",fetch = FetchType.EAGER)
+ @Cascade(value = { CascadeType.SAVE_UPDATE, CascadeType.DELETE })
+ @JsonIgnore
+ public List getInstrumentRepairGoodsList() {
+ return instrumentRepairGoodsList;
+ }
+
+ public void setInstrumentRepairGoodsList(
+ List instrumentRepairGoodsList) {
+ this.instrumentRepairGoodsList = instrumentRepairGoodsList;
+ }
+
+ @Transient
+ public String getMaterialNameAndAmount() {
+ if(CollectionUtils.isEmpty(instrumentRepairGoodsList)){
+ return "";
+ }
+ materialNameAndAmount = "";
+ Map materialAmountMap = new HashMap();
+ for (InstrumentRepairGoods instrumentRepairGoods : instrumentRepairGoodsList) {
+ String materialName = instrumentRepairGoods.getMaterialDefinitionName();
+ Integer amount = materialAmountMap.get(materialName);
+ if(amount == null){
+ amount = 0;
+ }
+ Integer goodsAmount = instrumentRepairGoods.getAmount();
+ goodsAmount = goodsAmount == null ? 0 : goodsAmount;
+ amount += goodsAmount;
+ materialAmountMap.put(materialName, amount);
+ }
+ List materialAmountList = new ArrayList();
+ if(MapUtils.isNotEmpty(materialAmountMap)){
+ for (String materialName : materialAmountMap.keySet()) {
+ materialAmountList.add(materialName + "x" + materialAmountMap.get(materialName));
+ }
+ materialNameAndAmount = StringTools.join(materialAmountList, ",");
+ }
+ return materialNameAndAmount;
+ }
+
+ public void setMaterialNameAndAmount(String materialNameAndAmount) {
+ this.materialNameAndAmount = materialNameAndAmount;
+ }
+
+}
Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/action/InstrumentRepairAction.java
===================================================================
diff -u
--- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/action/InstrumentRepairAction.java (revision 0)
+++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/action/InstrumentRepairAction.java (revision 33110)
@@ -0,0 +1,168 @@
+package com.forgon.disinfectsystem.tousse.instrumentrepair.action;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import net.sf.json.JsonConfig;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.struts2.convention.annotation.Action;
+import org.apache.struts2.convention.annotation.Namespace;
+import org.apache.struts2.convention.annotation.ParentPackage;
+
+import com.forgon.disinfectsystem.entity.basedatamanager.instrumentrepair.InstrumentRepair;
+import com.forgon.disinfectsystem.tousse.instrumentrepair.service.InstrumentRepairManager;
+import com.forgon.entity.PageEntity;
+import com.forgon.tools.StrutsParamUtils;
+import com.forgon.tools.StrutsResponseUtils;
+import com.forgon.tools.db.DatabaseUtil;
+import com.forgon.tools.json.DateJsonValueProcessor;
+import com.forgon.tools.json.JSONUtil;
+import com.forgon.tools.util.PageUtil;
+import com.opensymphony.xwork2.ModelDriven;
+import com.opensymphony.xwork2.Preparable;
+
+/**
+ * 器械维修管理接口
+ * @author ZhouPeiMian
+ * @since 2022-01-24
+ */
+@ParentPackage(value = "default")
+@Namespace(value = "/disinfectSystem/baseData")
+@Action(value = "instrumentRepairAction")
+public class InstrumentRepairAction implements Preparable, ModelDriven {
+
+ private InstrumentRepair instrumentRepair;
+
+ private InstrumentRepairManager instrumentRepairManager;
+
+ public void setInstrumentRepairManager(
+ InstrumentRepairManager instrumentRepairManager) {
+ this.instrumentRepairManager = instrumentRepairManager;
+ }
+
+ @Override
+ public InstrumentRepair getModel() {
+ return instrumentRepair;
+ }
+
+ @Override
+ public void prepare() throws Exception {
+ instrumentRepair = new InstrumentRepair();
+ String id = StrutsParamUtils.getPraramValue("id", "");
+ if(DatabaseUtil.isPoIdValid(id)){
+ instrumentRepair = instrumentRepairManager.get(id);
+ }
+ }
+
+ /**
+ * 加载器械维修管理记录
+ */
+ public void loadInstrumentRepair(){
+ try {
+ JsonConfig config = new JsonConfig();
+ config.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
+ config.setExcludes(new String[]{"instrumentRepair"});
+ Map map = new HashMap();
+ map.put("success", true);
+ map.put("data", instrumentRepair);
+ JSONObject result = JSONObject.fromObject(map, config);
+ StrutsResponseUtils.output(result);
+ } catch (Exception e) {
+ e.printStackTrace();
+ JSONObject result = new JSONObject();
+ JSONUtil.addSuccess(result, false);
+ JSONUtil.addMessage(result, "查询失败:" + e.getMessage());
+ StrutsResponseUtils.output(result);
+ }
+ }
+
+ /**
+ * 分页加载“器械维修管理”列表
+ */
+ public void loadInstrumentRepairList(){
+ //分页的参数
+ PageEntity pageEntity = PageUtil.getPagePara();
+ //查询条件
+ Map map = StrutsParamUtils.getParameters();
+ JSONObject result = new JSONObject();
+ JSONUtil.addSuccess(result, true);
+ JSONArray data = new JSONArray();
+ try {
+ List instrumentRepairList =
+ instrumentRepairManager.loadInstrumentRepairList(pageEntity, map);
+ if(CollectionUtils.isNotEmpty(instrumentRepairList)){
+ JsonConfig config = new JsonConfig();
+ config.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
+ config.setExcludes(new String[]{"instrumentRepairGoodsList"});
+ data = JSONArray.fromObject(instrumentRepairList, config);
+ }
+ JSONUtil.addProperty(result, "data", data);
+ JSONUtil.addProperty(result, "totalCount", pageEntity.getCount());
+ } catch (Exception e) {
+ e.printStackTrace();
+ JSONUtil.addSuccess(result, false);
+ JSONUtil.addMessage(result, "查询失败:" + e.getMessage());
+ }
+ StrutsResponseUtils.output(result);
+ }
+
+ /**
+ * 保存器械维修记录
+ */
+ public void saveInstrumentRepair(){
+ String tousseMaterialInfo = StrutsParamUtils.getPraramValue("tousseMaterialInfo", "");
+ JSONObject result = new JSONObject();
+ try {
+ instrumentRepairManager.saveInstrumentRepair(instrumentRepair, tousseMaterialInfo);
+ JSONUtil.addSuccess(result, true);
+ JSONUtil.addMessage(result, "保存成功!");
+ } catch (Exception e) {
+ JSONUtil.addSuccess(result, false);
+ JSONUtil.addMessage(result, "保存失败:" + e.getMessage());
+ e.printStackTrace();
+ }
+ StrutsResponseUtils.output(result);
+ }
+
+ /**
+ * 删除器械维修记录
+ */
+ public void deleteInstrumentRepair(){
+ JSONObject result = new JSONObject();
+ try {
+ String ids = StrutsParamUtils.getPraramValue("ids", "");
+ instrumentRepairManager.batchDeleteInstrumentRepair(ids);
+ JSONUtil.addSuccess(result, true);
+ JSONUtil.addMessage(result, "删除成功!");
+ } catch (Exception e) {
+ JSONUtil.addSuccess(result, false);
+ JSONUtil.addMessage(result, "删除失败:" + e.getMessage());
+ e.printStackTrace();
+ }
+ StrutsResponseUtils.output(result);
+ }
+
+ /**
+ * 审核器械维修记录
+ */
+ public void reviewInstrumentRepair(){
+ JSONObject result = new JSONObject();
+ try {
+ String ids = StrutsParamUtils.getPraramValue("ids", "");
+ instrumentRepairManager.batchReviewInstrumentRepair(ids);
+ JSONUtil.addSuccess(result, true);
+ JSONUtil.addMessage(result, "审核成功!");
+ } catch (Exception e) {
+ JSONUtil.addSuccess(result, false);
+ JSONUtil.addMessage(result, "审核失败:" + e.getMessage());
+ e.printStackTrace();
+ }
+ StrutsResponseUtils.output(result);
+ }
+
+}
Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/service/InstrumentRepairManager.java
===================================================================
diff -u
--- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/service/InstrumentRepairManager.java (revision 0)
+++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/service/InstrumentRepairManager.java (revision 33110)
@@ -0,0 +1,50 @@
+package com.forgon.disinfectsystem.tousse.instrumentrepair.service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.forgon.disinfectsystem.entity.basedatamanager.instrumentrepair.InstrumentRepair;
+import com.forgon.entity.PageEntity;
+import com.forgon.tools.hibernate.BasePoManager;
+
+/**
+ * 器械维修管理manager
+ * @author ZhouPeiMian
+ * @since 2022-01-24
+ */
+public interface InstrumentRepairManager extends BasePoManager {
+
+ /**
+ * 保存器械维修管理记录
+ * @param instrumentRepair 器械维修管理记录
+ * @param tousseMaterialInfo 器械及器械所属器械包信息
+ */
+ public void saveInstrumentRepair(InstrumentRepair instrumentRepair, String tousseMaterialInfo);
+
+ /**
+ * 加载器械维修管理记录列表
+ * @param pageEntity
+ * @param map
+ * @return
+ */
+ public List loadInstrumentRepairList(PageEntity pageEntity, Map map);
+
+ /**
+ * 审核器械维修管理记录
+ * @param instrumentRepair
+ */
+ public void reviewInstrumentRepair(InstrumentRepair instrumentRepair);
+
+ /**
+ * 批量删除器械维修记录
+ * @param ids
+ */
+ public void batchDeleteInstrumentRepair(String ids);
+
+ /**
+ * 批量审核器械维修记录
+ * @param ids
+ */
+ public void batchReviewInstrumentRepair(String ids);
+
+}
Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/service/InstrumentRepairManagerImpl.java
===================================================================
diff -u
--- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/service/InstrumentRepairManagerImpl.java (revision 0)
+++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/service/InstrumentRepairManagerImpl.java (revision 33110)
@@ -0,0 +1,128 @@
+package com.forgon.disinfectsystem.tousse.instrumentrepair.service;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+
+import com.forgon.directory.acegi.tools.AcegiHelper;
+import com.forgon.disinfectsystem.entity.basedatamanager.instrumentrepair.InstrumentRepair;
+import com.forgon.disinfectsystem.entity.basedatamanager.instrumentrepair.InstrumentRepairGoods;
+import com.forgon.entity.PageEntity;
+import com.forgon.exception.SystemException;
+import com.forgon.tools.db.DatabaseUtil;
+import com.forgon.tools.hibernate.BasePoManagerImpl;
+import com.forgon.tools.string.StringTools;
+import com.google.common.reflect.TypeToken;
+import com.google.gson.Gson;
+
+/**
+ * 器械维修管理manager
+ * @author ZhouPeiMian
+ * @since 2022-01-24
+ */
+public class InstrumentRepairManagerImpl extends BasePoManagerImpl implements InstrumentRepairManager{
+
+ @SuppressWarnings("serial")
+ @Override
+ public void saveInstrumentRepair(InstrumentRepair instrumentRepair, String tousseMaterialInfos) {
+
+ if(DatabaseUtil.isPoIdValid(instrumentRepair.getId()) && StringUtils.equals(instrumentRepair.getReviewStatus(), InstrumentRepair.REVIEW_STATUS_REVIEWED)){
+ throw new SystemException("该记录状态为已审核,不能修改!");
+ }
+
+ //删除旧的器械
+ List oldInstrumentRepairGoodsList = instrumentRepair.getInstrumentRepairGoodsList();
+ if(CollectionUtils.isNotEmpty(oldInstrumentRepairGoodsList)){
+ for (InstrumentRepairGoods instrumentRepairGoods : oldInstrumentRepairGoodsList) {
+ instrumentRepairGoods.setInstrumentRepair(null);
+ objectDao.delete(instrumentRepairGoods);
+ }
+ instrumentRepair.setInstrumentRepairGoodsList(null);
+ }
+
+ //保存基础信息
+ this.objectDao.saveOrUpdate(instrumentRepair);
+
+ //保存维修材料信息
+ List instrumentRepairGoodsList = new ArrayList();
+ if(StringUtils.isNotBlank(tousseMaterialInfos)){
+ instrumentRepairGoodsList = new Gson().fromJson(tousseMaterialInfos, new TypeToken>(){}.getType());
+ if(CollectionUtils.isNotEmpty(instrumentRepairGoodsList)){
+ for (InstrumentRepairGoods instrumentRepairGoods : instrumentRepairGoodsList) {
+ instrumentRepairGoods.setInstrumentRepair(instrumentRepair);
+ }
+ }
+ }
+ instrumentRepair.setInstrumentRepairGoodsList(instrumentRepairGoodsList);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public List loadInstrumentRepairList(PageEntity pageEntity, Map map) {
+ List instrumentRepairList = new ArrayList();
+ String sql = " where 1=1 ";
+ //查询条件内容
+ String searchKeyWord = map.get("searchKeyWord");
+ //查询条件
+ String searchColumns = map.get("searchColumns");
+ if(StringUtils.isNotBlank(searchKeyWord) && StringUtils.isNotBlank(searchColumns)){
+ Collection searchColumnColl = StringTools.toCollectionIgnoreNullAndBlank(searchColumns, ";");
+ List sqlList = new ArrayList();
+ for (String column : searchColumnColl) {
+ String tempSql = " po." + column + " like '%" + searchKeyWord + "%' ";
+ sqlList.add(tempSql);
+ }
+ sql += " and (" + StringTools.join(sqlList, "or") + ") ";
+ }
+ //总记录数
+ String countSql = "select count(*) from " + InstrumentRepair.class.getSimpleName() + " po " + sql;
+ int totalCount = objectDao.countBySql(countSql);
+ pageEntity.setCount(totalCount);
+ //查询记录
+ if(totalCount > 0){
+ String hql = String.format("select po from %s po %s ", InstrumentRepair.class.getSimpleName(), sql);
+ instrumentRepairList = objectDao.findByHql(hql, pageEntity.getStart(), pageEntity.getLimit());
+ }
+ return instrumentRepairList;
+ }
+
+ @Override
+ public void reviewInstrumentRepair(InstrumentRepair instrumentRepair) {
+ if(instrumentRepair == null){
+ return;
+ }
+ instrumentRepair.setReviewerID(AcegiHelper.getLoginUser().getUserId());
+ instrumentRepair.setReviewerName(AcegiHelper.getLoginUser().getUserName());
+ instrumentRepair.setReviewStatus(InstrumentRepair.REVIEW_STATUS_REVIEWED);
+ this.objectDao.saveOrUpdate(instrumentRepair);
+ }
+
+ @Override
+ public void batchDeleteInstrumentRepair(String ids) {
+ if(StringUtils.isBlank(ids)){
+ return;
+ }
+ List instrumentRepairList = this.getCollection(ids, ";");
+ if(CollectionUtils.isNotEmpty(instrumentRepairList)){
+ objectDao.deleteAll(instrumentRepairList);
+ }
+ }
+
+ @Override
+ public void batchReviewInstrumentRepair(String ids) {
+ if(StringUtils.isBlank(ids)){
+ return;
+ }
+ List instrumentRepairList = this.getCollection(ids, ";");
+ if(CollectionUtils.isNotEmpty(instrumentRepairList)){
+ for (InstrumentRepair instrumentRepair : instrumentRepairList) {
+ this.reviewInstrumentRepair(instrumentRepair);
+ }
+ }
+ }
+
+}
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/instrumentrepair/InstrumentRepairGoods.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/instrumentrepair/InstrumentRepairGoods.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/instrumentrepair/InstrumentRepairGoods.java (revision 33110)
@@ -0,0 +1,125 @@
+package com.forgon.disinfectsystem.entity.basedatamanager.instrumentrepair;
+
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
+
+import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+import org.hibernate.annotations.Cascade;
+import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+/**
+ * 维修器械
+ * @author ZhouPeiMian
+ * @since 2022-01-25
+ */
+@Entity
+@DynamicInsert(false)
+@DynamicUpdate(true)
+@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class InstrumentRepairGoods {
+
+ private Long id;
+
+ /**
+ * 材料定义ID
+ */
+ private Long materialDefinitionID;
+
+ /**
+ * 材料定义名称
+ */
+ private String materialDefinitionName;
+
+ /**
+ * 材料器械所属器械定义ID
+ */
+ private Long tousseDefinitionID;
+
+ /**
+ * 材料器械所属器械包定义名称
+ */
+ private String tousseDefinitionName;
+
+ /**
+ * 材料数量
+ */
+ private Integer amount;
+
+ /**
+ * 维修器械关联的器械维修记录
+ */
+ private InstrumentRepair instrumentRepair;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getMaterialDefinitionID() {
+ return materialDefinitionID;
+ }
+
+ public void setMaterialDefinitionID(Long materialDefinitionID) {
+ this.materialDefinitionID = materialDefinitionID;
+ }
+
+ public String getMaterialDefinitionName() {
+ return materialDefinitionName;
+ }
+
+ public void setMaterialDefinitionName(String materialDefinitionName) {
+ this.materialDefinitionName = materialDefinitionName;
+ }
+
+ public Long getTousseDefinitionID() {
+ return tousseDefinitionID;
+ }
+
+ public void setTousseDefinitionID(Long tousseDefinitionID) {
+ this.tousseDefinitionID = tousseDefinitionID;
+ }
+
+ public String getTousseDefinitionName() {
+ return tousseDefinitionName;
+ }
+
+ public void setTousseDefinitionName(String tousseDefinitionName) {
+ this.tousseDefinitionName = tousseDefinitionName;
+ }
+
+ public Integer getAmount() {
+ return amount;
+ }
+
+ public void setAmount(Integer amount) {
+ this.amount = amount;
+ }
+
+ @ManyToOne(fetch = FetchType.EAGER)
+ @Cascade(value = { CascadeType.SAVE_UPDATE, CascadeType.DELETE})
+ @JoinColumn(name = "instrumentRepair_ID")
+ public InstrumentRepair getInstrumentRepair() {
+ return instrumentRepair;
+ }
+
+ public void setInstrumentRepair(InstrumentRepair instrumentRepair) {
+ this.instrumentRepair = instrumentRepair;
+ }
+
+}