Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java
===================================================================
diff -u -r41194 -r41557
--- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java (.../DiposableGoodsAction.java) (revision 41194)
+++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java (.../DiposableGoodsAction.java) (revision 41557)
@@ -31,7 +31,6 @@
import com.beust.jcommander.ParameterException;
import com.forgon.Constants;
-import com.forgon.databaseadapter.service.DateQueryAdapter;
import com.forgon.directory.acegi.tools.AcegiHelper;
import com.forgon.disinfectsystem.basedatamanager.certificate.service.CertificateManager;
import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager;
@@ -98,8 +97,6 @@
private ObjectDao objectDao;
- private DateQueryAdapter dateQueryAdapter;
-
private CertificateManager certificateManager;
private DisposableGoodsSyncDao disposableGoodsSyncDao;
@@ -108,10 +105,6 @@
this.disposableGoodsSyncDao = disposableGoodsSyncDao;
}
- public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) {
- this.dateQueryAdapter = dateQueryAdapter;
- }
-
public void setWareHouseManager(WareHouseManager wareHouseManager) {
this.wareHouseManager = wareHouseManager;
}
@@ -1972,6 +1965,9 @@
if(!StringUtils.equals(origineDG.getWhetherToCharge(), disposableGoods.getWhetherToCharge())){
modifyContent.append("WhetherToCharge属性修改前=").append(origineDG.getWhetherToCharge()).append(",修改后=").append(disposableGoods.getWhetherToCharge()).append(";");
}
+ if(!StringUtils.equals(origineDG.getControlTagCHAS(), disposableGoods.getControlTagCHAS())){
+ modifyContent.append("CHAS管控标识属性修改前=").append(origineDG.getControlTagCHAS()).append(",修改后=").append(disposableGoods.getControlTagCHAS()).append(";");
+ }
return modifyContent.toString();
}
/**
@@ -2101,4 +2097,18 @@
StrutsResponseUtils.output(result);
}
+ /**
+ * 在“一次性物品管理”页面新增 “同步 CHAS 标识” 按钮
+ */
+ public void syncDisposableGoodsControlTagCHAS(){
+ JSONObject result = JSONUtil.buildJsonObject(true, "同步成功");
+ try {
+ diposableGoodsManager.syncDisposableGoodsControlTagCHAS();
+ } catch (Exception e) {
+ e.printStackTrace();
+ result = JSONUtil.buildJsonObject(false, "同步失败:" + e.getMessage());
+ }
+ StrutsResponseUtils.output(result);
+ }
+
}
Index: ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/spring/disposableGoodsChas.xml
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/spring/disposableGoodsChas.xml (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/spring/disposableGoodsChas.xml (revision 41557)
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/interfaces/mybatis/DisposableGoodsChasMakerMapper.xml
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/interfaces/mybatis/DisposableGoodsChasMakerMapper.xml (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/interfaces/mybatis/DisposableGoodsChasMakerMapper.xml (revision 41557)
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/DisposableGoods.java
===================================================================
diff -u -r39230 -r41557
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/DisposableGoods.java (.../DisposableGoods.java) (revision 39230)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/DisposableGoods.java (.../DisposableGoods.java) (revision 41557)
@@ -363,6 +363,18 @@
*/
private String batchAndExpDateAllowBlank = Constants.STR_NO;
+ /**
+ * CHAS管控标识
+ * “一次性物品定义”界面新增 “CHAS 管控标识” 单选框,选项为 “是” / “否”,默认值 “否” GDSZYY-268
+ */
+ private String controlTagCHAS = Constants.STR_NO;
+
+ /**
+ * 费用项目编码
+ * 推送领用、退回信息时需要传费用项目编码 GDSZYY-268
+ */
+ private String chargeItemSerialNumber;
+
@JsonIgnore
public static Map ColumnNameAndPoPropertyNameMap= new LinkedHashMap(8);
@@ -1124,5 +1136,22 @@
public void setConsumptiveMaterialVolume(Integer consumptiveMaterialVolume) {
this.consumptiveMaterialVolume = consumptiveMaterialVolume;
}
+
+ @Column(columnDefinition=" varchar(255) default '" + Constants.STR_NO + "' not null ")
+ public String getControlTagCHAS() {
+ return controlTagCHAS;
+ }
+
+ public void setControlTagCHAS(String controlTagCHAS) {
+ this.controlTagCHAS = controlTagCHAS;
+ }
+
+ public String getChargeItemSerialNumber() {
+ return chargeItemSerialNumber;
+ }
+
+ public void setChargeItemSerialNumber(String chargeItemSerialNumber) {
+ this.chargeItemSerialNumber = chargeItemSerialNumber;
+ }
}
Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/DisposableGoodsChasMarkerDao.java
===================================================================
diff -u
--- ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/DisposableGoodsChasMarkerDao.java (revision 0)
+++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/DisposableGoodsChasMarkerDao.java (revision 41557)
@@ -0,0 +1,18 @@
+package com.forgon.disinfectsystem.inventorymanagement.dao;
+
+import java.util.List;
+
+import com.forgon.disinfectsystem.inventorymanagement.model.DisposableGoodsChasMarkerVo;
+
+/**
+ * 一次性物品CHAS管控标识daoGDSZYY-268
+ */
+public interface DisposableGoodsChasMarkerDao {
+
+ /**
+ * 查询所有一次性物品CHAS管控标识vo
+ * @return 一次性物品CHAS管控标识vo
+ */
+ List getAllDisposableGoodsChasMarker();
+
+}
Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/model/DisposableGoodsChasMarkerVo.java
===================================================================
diff -u
--- ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/model/DisposableGoodsChasMarkerVo.java (revision 0)
+++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/model/DisposableGoodsChasMarkerVo.java (revision 41557)
@@ -0,0 +1,47 @@
+package com.forgon.disinfectsystem.inventorymanagement.model;
+
+/**
+ * 一次性物品CHAS管控标识VOGDSZYY-268
+ */
+public class DisposableGoodsChasMarkerVo {
+
+ /**
+ * 物资编码
+ */
+ private String inventorySerialNumber;
+
+ /**
+ * 费用项目编码
+ */
+ private String chargeItemSerialNumber;
+
+ /**
+ * 是否CHAS管控标识
+ */
+ private boolean isChasMarker;
+
+ public String getInventorySerialNumber() {
+ return inventorySerialNumber;
+ }
+
+ public void setInventorySerialNumber(String inventorySerialNumber) {
+ this.inventorySerialNumber = inventorySerialNumber;
+ }
+
+ public String getChargeItemSerialNumber() {
+ return chargeItemSerialNumber;
+ }
+
+ public void setChargeItemSerialNumber(String chargeItemSerialNumber) {
+ this.chargeItemSerialNumber = chargeItemSerialNumber;
+ }
+
+ public boolean getIsChasMarker() {
+ return isChasMarker;
+ }
+
+ public void setIsChasMarker(boolean isChasMarker) {
+ this.isChasMarker = isChasMarker;
+ }
+
+}
Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java
===================================================================
diff -u -r41487 -r41557
--- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 41487)
+++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 41557)
@@ -93,7 +93,9 @@
import com.forgon.disinfectsystem.entity.stocktakerecordmanager.StockDiposableGoods;
import com.forgon.disinfectsystem.entity.systemwarning.SystemWarningItemVO;
import com.forgon.disinfectsystem.entity.tousseitem.TousseItem;
+import com.forgon.disinfectsystem.inventorymanagement.dao.DisposableGoodsChasMarkerDao;
import com.forgon.disinfectsystem.inventorymanagement.dao.InventoryDao;
+import com.forgon.disinfectsystem.inventorymanagement.model.DisposableGoodsChasMarkerVo;
import com.forgon.disinfectsystem.inventorymanagement.model.Inventory;
import com.forgon.disinfectsystem.vo.DisposableGoodsItemUsageVo;
import com.forgon.disinfectsystem.vo.PriceAmount;
@@ -118,6 +120,7 @@
import com.forgon.tools.hibernate.BasePoManagerImpl;
import com.forgon.tools.json.JSONUtil;
import com.forgon.tools.string.StringTools;
+import com.forgon.tools.util.ConfigUtils;
import com.forgon.tools.util.ForgonDateUtils;
import com.forgon.tools.util.SqlUtils;
@@ -155,6 +158,11 @@
private RunWithTransNewManager runWithTransNewManager;
+ private DisposableGoodsChasMarkerDao disposableGoodsChasMarkerDao;
+
+ public void setDisposableGoodsChasMarkerDao(DisposableGoodsChasMarkerDao disposableGoodsChasMarkerDao) {
+ this.disposableGoodsChasMarkerDao = disposableGoodsChasMarkerDao;
+ }
public void setRunWithTransNewManager(RunWithTransNewManager runWithTransNewManager) {
this.runWithTransNewManager = runWithTransNewManager;
}
@@ -313,6 +321,7 @@
curDisposableGoods.setConsumptiveMaterialUse(disposableGoods.getConsumptiveMaterialUse());
curDisposableGoods.setConsumptiveMaterialVolume(disposableGoods.getConsumptiveMaterialVolume());
curDisposableGoods.setBatchAndExpDateAllowBlank(disposableGoods.getBatchAndExpDateAllowBlank());
+ curDisposableGoods.setControlTagCHAS(disposableGoods.getControlTagCHAS());
}
/**
@@ -4051,4 +4060,120 @@
return disposableGoodsIdBatchNumberDisposableGoodsBatchMap;
}
+ @Override
+ public Integer syncDisposableGoodsControlTagCHAS() {
+ boolean enableChasSystemTagPush = ConfigUtils.getSystemSetConfigByNameBool("enableChasSystemTagPush");
+ if(!enableChasSystemTagPush){
+ throw new SystemException("未开启enableChasSystemTagPush配置项!");
+ }
+ if(disposableGoodsChasMarkerDao == null){
+ throw new SystemException("disposableGoodsChasMarkerDao为null!");
+ }
+ List disposableGoodsChasMarkerVoList = disposableGoodsChasMarkerDao.getAllDisposableGoodsChasMarker();
+ if(CollectionUtils.isEmpty(disposableGoodsChasMarkerVoList)){
+ throw new SystemException("视图查询返回结果为空,没有需要同步的数据!");
+ }
+ List disposableGoodsList = this.getByHql(" inventorySerialNumber is not null and inventorySerialNumber <> '' ");
+ if(CollectionUtils.isEmpty(disposableGoodsList)){
+ throw new SystemException("没有需要同步的一次性物品定义!");
+ }
+
+ Map inventorySerialNumberDisposableGoodsChasMarkerVoMap = new HashMap();
+ for (DisposableGoodsChasMarkerVo disposableGoodsChasMarkerVo : disposableGoodsChasMarkerVoList) {
+ String inventorySerialNumber = disposableGoodsChasMarkerVo.getInventorySerialNumber();
+ if(StringUtils.isNotBlank(inventorySerialNumber)){
+ inventorySerialNumber = inventorySerialNumber.trim();
+ disposableGoodsChasMarkerVo.setInventorySerialNumber(inventorySerialNumber);
+ }
+ String chargeItemSerialNumber = disposableGoodsChasMarkerVo.getChargeItemSerialNumber();
+ if(StringUtils.isNotBlank(chargeItemSerialNumber)){
+ chargeItemSerialNumber = chargeItemSerialNumber.trim();
+ disposableGoodsChasMarkerVo.setChargeItemSerialNumber(chargeItemSerialNumber);
+ }
+ if(StringUtils.isNotBlank(disposableGoodsChasMarkerVo.getInventorySerialNumber())){
+ inventorySerialNumberDisposableGoodsChasMarkerVoMap.put(disposableGoodsChasMarkerVo.getInventorySerialNumber(), disposableGoodsChasMarkerVo);
+ }
+ }
+
+ if(MapUtils.isEmpty(inventorySerialNumberDisposableGoodsChasMarkerVoMap)){
+ throw new SystemException("视图查询返回结果,物质编码都为空!");
+ }
+
+ StringBuffer updateSuccessLogBuffer = new StringBuffer();
+ //同步成功的物质编码
+ List successInventorySerialNumberList = new ArrayList();
+ int updateAmount = 0;
+ for (DisposableGoods disposableGoods : disposableGoodsList) {
+ String inventorySerialNumber = disposableGoods.getInventorySerialNumber();
+ DisposableGoodsChasMarkerVo disposableGoodsChasMarkerVo = inventorySerialNumberDisposableGoodsChasMarkerVoMap.get(inventorySerialNumber);
+ if(disposableGoodsChasMarkerVo == null){
+ if(StringUtils.equals(Constants.STR_YES, disposableGoods.getControlTagCHAS())){
+ disposableGoods.setControlTagCHAS(Constants.STR_NO);
+ objectDao.saveOrUpdate(disposableGoods);
+ updateSuccessLogBuffer.append(String.format("id=%s,CHAS管控标识修改为“否”;", disposableGoods.getId()));
+ updateAmount++;
+ }
+ }else{
+ //修改前
+ String oldControlTagCHAS = disposableGoods.getControlTagCHAS();
+ String oldChargeItemSerialNumber = disposableGoods.getChargeItemSerialNumber();
+ //修改后
+ String newControlTagCHAS = disposableGoodsChasMarkerVo.getIsChasMarker() ? Constants.STR_YES : Constants.STR_NO;
+ String newChargeItemSerialNumber = disposableGoodsChasMarkerVo.getChargeItemSerialNumber();
+ if(!StringUtils.equals(oldControlTagCHAS, newControlTagCHAS)
+ || !StringUtils.equals(oldChargeItemSerialNumber, newChargeItemSerialNumber)){
+ disposableGoods.setControlTagCHAS(newControlTagCHAS);
+ disposableGoods.setChargeItemSerialNumber(newChargeItemSerialNumber);
+ objectDao.saveOrUpdate(disposableGoods);
+ String logMsg = String.format("id=%s,物资编码=%s,"
+ + "修改前:CHAS管控标识修改为“%s”,费用项目编码为“%s”;"
+ + "修改后:CHAS管控标识修改为“%s”,费用项目编码为“%s”;",
+ disposableGoods.getId(), disposableGoods.getInventorySerialNumber(),
+ oldControlTagCHAS, oldChargeItemSerialNumber,
+ newControlTagCHAS, newChargeItemSerialNumber);
+ updateSuccessLogBuffer.append(logMsg);
+ updateAmount++;
+ }
+ successInventorySerialNumberList.add(inventorySerialNumber);
+ }
+ }
+
+ //记录同步失败的日志
+ /*StringBuffer failLogBuffer = new StringBuffer();
+ for (DisposableGoodsChasMarkerVo disposableGoodsChasMarkerVo : disposableGoodsChasMarkerVoList) {
+ if(!successInventorySerialNumberList.contains(disposableGoodsChasMarkerVo.getInventorySerialNumber())){
+ String controlTagCHAS = disposableGoodsChasMarkerVo.getIsChasMarker() ? Constants.STR_YES : Constants.STR_NO;
+ String logMsg = String.format("不存在物资编码为“%s”的一次性物品,CHAS管控标识为“%s”,费用项目编码为“%s”;",
+ disposableGoodsChasMarkerVo.getInventorySerialNumber(), controlTagCHAS, disposableGoodsChasMarkerVo.getChargeItemSerialNumber());
+ failLogBuffer.append(logMsg);
+ }
+ }*/
+
+ StringBuffer logBuffer = new StringBuffer(String.format("一次性物品CHAS标识同步完成,一次性物品定义修改数量%s。", updateAmount));
+ if(updateSuccessLogBuffer.length() > 0){
+ logBuffer.append("一次性物品修改明细:");
+ logBuffer.append(updateSuccessLogBuffer);
+ }
+ /*if(failLogBuffer.length() > 0){
+ logBuffer.append("同步失败的一次性物品:");
+ logBuffer.append(failLogBuffer);
+ }*/
+
+ appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DISPOSABLEGOODS, Log.LOGGER_TYPE_UPDATE, logBuffer.toString());
+
+ return updateAmount;
+ }
+
+ @Override
+ public void timingSyncDisposableGoodsControlTagCHAS() {
+ try {
+ logger.debug("开始定时同步一次性物品定义CHAS管控标识");
+ Integer updateAmount = this.syncDisposableGoodsControlTagCHAS();
+ logger.debug(String.format("完成定时同步一次性物品定义CHAS管控标识,一次性物品定义修改数量%s", updateAmount));
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.debug("定时同步一次性物品定义CHAS管控标识出现异常:" + e.getMessage());
+ }
+ }
+
}
Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java
===================================================================
diff -u -r40675 -r41557
--- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 40675)
+++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 41557)
@@ -19,7 +19,6 @@
import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods;
import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan;
import com.forgon.disinfectsystem.entity.invoicemanager.ThirdPartyChargeRecord;
-import com.forgon.disinfectsystem.entity.returngoodsrecord.ThirdPartyRefundRecord;
import com.forgon.disinfectsystem.inventorymanagement.model.Inventory;
import com.forgon.disinfectsystem.vo.DisposableGoodsItemUsageVo;
import com.forgon.disinfectsystem.vo.PriceAmount;
@@ -422,5 +421,15 @@
* 批次库存关联的批次定义不存在时,生成批次定义CSSZXYY-182
*/
public void updateDisposableGoodsBatchStockBatchIsNull();
+
+ /**
+ * 同步一次性物品定义CHAS管控标识 GDSZYY-268
+ */
+ public Integer syncDisposableGoodsControlTagCHAS();
+
+ /**
+ * 定时同步一次性物品定义CHAS管控标识 GDSZYY-268
+ */
+ public void timingSyncDisposableGoodsControlTagCHAS();
}
Index: ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/spring/timer.xml
===================================================================
diff -u -r28878 -r41557
--- ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/spring/timer.xml (.../timer.xml) (revision 28878)
+++ ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/spring/timer.xml (.../timer.xml) (revision 41557)
@@ -43,13 +43,35 @@
+
+
+
+
+
+
+ timingSyncDisposableGoodsControlTagCHAS
+
+
+
+
+
+
+
+
+
+ 0 0 0,12 * * ?
+
+
+
+
+