Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/GoodPurchaseTableManager.java =================================================================== diff -u -r20828 -r23133 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/GoodPurchaseTableManager.java (.../GoodPurchaseTableManager.java) (revision 20828) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/GoodPurchaseTableManager.java (.../GoodPurchaseTableManager.java) (revision 23133) @@ -24,6 +24,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; import com.forgon.search.service.TBarFilterManager; +import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; /** @@ -94,6 +95,8 @@ jsonObject.put("unit1", ""); jsonObject.put("supplier1", ""); jsonObject.put("manufacturer", ""); + jsonObject.put("supplierId", ""); + jsonObject.put("manufacturerId", ""); DisposableGoods disposableGoods = diposableGoodsManager.get(disposableGoodsId); @@ -138,6 +141,14 @@ if(StringUtils.isNotBlank(goodPurchaseItem.getManufacturer())){ jsonObject.put("manufacturer", goodPurchaseItem.getManufacturer()); } + //生产厂家id + if(goodPurchaseItem.getManufacturerId()!=null){ + jsonObject.put("manufacturerId", goodPurchaseItem.getManufacturerId()); + } + //供应商id + if(goodPurchaseItem.getSupplierId()!=null){ + jsonObject.put("supplierId", goodPurchaseItem.getSupplierId()); + } } } return jsonObject.toString(); @@ -156,6 +167,8 @@ jsonObject.put("unit1", ""); jsonObject.put("supplier1", ""); jsonObject.put("manufacturer", ""); + jsonObject.put("supplierId", ""); + jsonObject.put("manufacturerId", ""); MaterialDefinition materialDefinition = (MaterialDefinition)objectDao.getBySql(MaterialDefinition.class.getSimpleName(), "where id=" + materialDefinitionId); @@ -203,6 +216,14 @@ if(StringUtils.isNotBlank(goodPurchaseItem.getManufacturer())){ jsonObject.put("manufacturer", goodPurchaseItem.getManufacturer()); } + //生产厂家id + if(goodPurchaseItem.getManufacturerId()!=null){ + jsonObject.put("manufacturerId", goodPurchaseItem.getManufacturerId()); + } + //供应商id + if(goodPurchaseItem.getSupplierId()!=null){ + jsonObject.put("supplierId", goodPurchaseItem.getSupplierId()); + } } } return jsonObject.toString(); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GoodPurchasePlanManagerImpl.java =================================================================== diff -u -r19154 -r23133 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GoodPurchasePlanManagerImpl.java (.../GoodPurchasePlanManagerImpl.java) (revision 19154) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GoodPurchasePlanManagerImpl.java (.../GoodPurchasePlanManagerImpl.java) (revision 23133) @@ -10,6 +10,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import net.sf.json.JSONObject; @@ -26,12 +27,16 @@ import org.apache.poi.ss.usermodel.RichTextString; import com.forgon.Constants; +import com.forgon.disinfectsystem.basedatamanager.supplier.service.SupplierManager; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntry; +import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryItem; import com.forgon.disinfectsystem.entity.assestmanagement.GoodPurchaseItem; import com.forgon.disinfectsystem.entity.assestmanagement.GoodPurchasePlan; +import com.forgon.disinfectsystem.entity.assestmanagement.GoodPurchasePlanGangedInfo; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier; import com.forgon.disinfectsystem.vo.GodownEntryItemPrintVO; import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; @@ -41,6 +46,7 @@ import com.forgon.tools.excel.ExcelHelper; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.util.ForgonDateUtils; +import com.forgon.tools.util.SqlUtils; public class GoodPurchasePlanManagerImpl implements GoodPurchasePlanManager { @@ -50,7 +56,12 @@ private DiposableGoodsManager diposableGoodsManager; + private SupplierManager supplierManager; + public void setSupplierManager(SupplierManager supplierManager) { + this.supplierManager = supplierManager; + } + public void setDiposableGoodsManager(DiposableGoodsManager diposableGoodsManager) { this.diposableGoodsManager = diposableGoodsManager; } @@ -156,6 +167,8 @@ List itemList = entry.getItemsList(); List curItemList = curGoodPurchasePlan.getItemsList(); + boolean needChangePurchaseStockStatus = false;//是否需要修改入库状态 + // 处理修改 for (int i = 0; i < itemList.size(); ++i) { GoodPurchaseItem goodPurchaseItem = itemList.get(i); @@ -180,21 +193,45 @@ boolean updateBatchStock = false; boolean updateDiposableGoods = false; - // 供应商 - String originalSupplierName = originalGodownEntryItem.getSupplierName(); - String supplierName = goodPurchaseItem.getSupplierName(); - if(!StringUtils.equals(originalSupplierName, supplierName)){ - curGodownEntryItem.setSupplierName(supplierName); - updateBatchStock = true; + // 供应商Id + Long originalSupplierId = originalGodownEntryItem.getSupplierId(); + Long supplierId = goodPurchaseItem.getSupplierId(); + if(originalSupplierId != supplierId){ + Supplier sipplier = supplierManager.get(supplierId); + if(sipplier == null){ + throw new RuntimeException("获取不到id为"+supplierId+"的供应商对象!"); + } + curGodownEntryItem.setSupplierId(supplierId); + curGodownEntryItem.setSupplierName(sipplier.getCompanyName()); } +// // 供应商 +// String originalSupplierName = originalGodownEntryItem.getSupplierName(); +// String supplierName = goodPurchaseItem.getSupplierName(); +// if(!StringUtils.equals(originalSupplierName, supplierName)){ +// curGodownEntryItem.setSupplierName(supplierName); +// updateBatchStock = true; +// } - // 生产厂家 - String originalManufacturer = originalGodownEntryItem.getManufacturer(); - String manufacturer = goodPurchaseItem.getManufacturer(); - if(!StringUtils.equals(originalManufacturer, manufacturer)){ - curGodownEntryItem.setManufacturer(manufacturer); - updateBatchStock = true; + // 生产厂家id + Long originalManufacturerId = originalGodownEntryItem.getManufacturerId(); + Long manufacturerId = goodPurchaseItem.getManufacturerId(); + if(originalManufacturerId != manufacturerId){ + Supplier manuFacturer = supplierManager.get(manufacturerId); + if(manuFacturer == null){ + throw new RuntimeException("获取不到id为"+manufacturerId+"的生产厂家对象!"); + } + curGodownEntryItem.setManufacturer(manuFacturer.getCompanyName()); + curGodownEntryItem.setManufacturerId(manufacturerId); } + +// // 生产厂家 +// String originalManufacturer = originalGodownEntryItem.getManufacturer(); +// String manufacturer = goodPurchaseItem.getManufacturer(); +// if(!StringUtils.equals(originalManufacturer, manufacturer)){ +// curGodownEntryItem.setManufacturer(manufacturer); +// updateBatchStock = true; +// } + // 修改计划数 Integer originalAmount = originalGodownEntryItem.getScheduleAmout(); Integer amount = goodPurchaseItem.getScheduleAmout(); @@ -203,8 +240,8 @@ if(curAmount != null && !curAmount.equals(originalAmount)){// 有可能被并发修改了库存 throw new RuntimeException("计划数已被修改!"); } - Integer amountChange = amount - originalAmount; - +// Integer amountChange = amount - originalAmount; + needChangePurchaseStockStatus = true; curGodownEntryItem.setScheduleAmout(amount); } // 修改价格 @@ -236,12 +273,11 @@ if(itemID != null){// 有id就不是新增项 continue; } - - // 保存godownEntryItem godownEntryItem.setGoodPurchasePlan(curGoodPurchasePlan); curItemList.add(godownEntryItem); objectDao.save(godownEntryItem); + needChangePurchaseStockStatus = true; } // 处理删除项 for (int i = 0; i < originalItemList.size(); ++i) { @@ -264,10 +300,15 @@ // 删除godownEntryItem curItemList.remove(curGodownEntryItem); objectDao.delete(curGodownEntryItem); + needChangePurchaseStockStatus = true; } // 更新入库单属性 updateGoodPurchasePlanProperties(original, entry, curGoodPurchasePlan); + //若修改了计划数则修改入库状态 + if(needChangePurchaseStockStatus){ + changePurchaseStockStatus(curGoodPurchasePlan); + } // 更新入库单对象 saveOrUpdate(curGoodPurchasePlan); // 设置GodownEntryItem详细列表 @@ -511,4 +552,166 @@ } } } + + /** + * 一次性物品入库单联动一次性物品采购计划单 + */ + @Override + public void godownEntryLinkageGoodPurchase(GodownEntry godownEntry){ + if (godownEntry != null) { + List entryItemList = godownEntry.getItemsList(); + List gangedInfoList = new ArrayList();//用于记录联动记录 + List gangedGoodPurchaseList = new ArrayList();//用于记录联动的采购单 + //1.获得入库明细中的物品id + List disposableGoodsID = entryItemList.stream().map(GodownEntryItem::getDisposableGoodsID).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(disposableGoodsID)){ + //2.根据入库明细的物品id 和 已入库数小于计划数的采购明细单: 获得需要联动的未完全入库的采购计划单集合 + String hql = String.format("from %s po where po.stockStatus <>'%s' " + + "and po.id in (select goodPurchasePlan.id from GoodPurchaseItem where godownAmount < scheduleAmout and %s) order by po.time", + GoodPurchasePlan.class.getSimpleName(), + GoodPurchasePlan.STOCK_STATUS_GODOWNED, + SqlUtils.getNonStringFieldInCollectionsPredicate("disposableGoodsId", disposableGoodsID)); + @SuppressWarnings("unchecked") + List goodPurchasePlanList = objectDao.findByHql(hql); + //3.入库单明细和采购明细对比 + if (CollectionUtils.isNotEmpty(goodPurchasePlanList)) { + if (CollectionUtils.isNotEmpty(entryItemList)) { + //3-1遍历入库明细 + for (GodownEntryItem godownItem : entryItemList) { + Long godownDGID = godownItem.getDisposableGoodsID();//入库明细一次性物品id + int godownDGAmount = godownItem.getAmount().intValue();//入库明细一次性物品数量 + //3-2遍历采购单集合 + for (GoodPurchasePlan goodPurchasePlan : goodPurchasePlanList) { + Boolean isGangedInfo = false; + List gpItemList = goodPurchasePlan.getItemsList();//采购单明细集合 + //3-3遍历采购单明细集合 + for (GoodPurchaseItem gpItem : gpItemList) { + Long purchaseDGId = gpItem.getDisposableGoodsId();//采购单明细一次性物品id + int scheduleAmout = gpItem.getScheduleAmout();//采购单明细的采购数量 + int purchaseGodownAmount = gpItem.getGodownAmount();//采购单明细已入库的数量 + int needGangedAmount = scheduleAmout - purchaseGodownAmount;//采购单明细需要联动的入库数量 + //3-4若物品id相同 且 需要联动入库数量>0 且 物品数量>0 + if(godownDGID == purchaseDGId && needGangedAmount > 0 && godownDGAmount > 0){ + //3-4-1若物品数量大于等于采购单物品需要联动的入库数 则全部补全 + if(godownDGAmount >= needGangedAmount){ + isGangedInfo = true; + gpItem.setGodownAmount(purchaseGodownAmount + needGangedAmount);//更新采购明细入库数量 + //记录新的联动 + GoodPurchasePlanGangedInfo gppgi = newGoodPurchasePlanGangedInfo(gpItem,godownItem,needGangedAmount); + gangedInfoList.add(gppgi); + godownDGAmount = godownDGAmount - needGangedAmount;//物品数量为补全后剩余的 + break; + }//3-4-2若物品数量小于采购单物品需要联动的入库数且不为0 则加上明细数量补 + if(godownDGAmount < needGangedAmount && godownDGAmount > 0){ + isGangedInfo = true; + gpItem.setGodownAmount(purchaseGodownAmount + godownDGAmount);//更新采购明细入库数量 + //记录新的联动 + GoodPurchasePlanGangedInfo gppgi = newGoodPurchasePlanGangedInfo(gpItem,godownItem,godownDGAmount); + gangedInfoList.add(gppgi); + godownDGAmount = 0;//物品数量为0 + break ; + } + } + } + //3-5 判断是否有联动 + if(isGangedInfo){ + //修改采购入库状态 + GoodPurchasePlan gangedGPPlan = changePurchaseStockStatus(goodPurchasePlan); + //记录修改后了采购单 + gangedGoodPurchaseList.add(gangedGPPlan); + //该物品入库数量已为0则跳出 + if(godownDGAmount == 0){ + break; + } + } + } + } + } + //4.保存联动记录和联动的采购计划单 + saveNewgGangedInfoList(gangedInfoList); + saveGangedPurchaseList(gangedGoodPurchaseList); + } + } + } + } + + /** + * 保存联动记录 + * @param gangedGoodPurchaseList + */ + private void saveGangedPurchaseList(List gangedGoodPurchaseList){ + if(CollectionUtils.isNotEmpty(gangedGoodPurchaseList)){ + for (GoodPurchasePlan goodPurchasePlan : gangedGoodPurchaseList) { + objectDao.saveOrUpdate(goodPurchasePlan); + } + } + } + /** + * 保存联动的采购计划单 + * @param gIList + */ + private void saveNewgGangedInfoList(List gIList){ + if(CollectionUtils.isNotEmpty(gIList)){ + for (GoodPurchasePlanGangedInfo goodPurchasePlanGangedInfo : gIList) { + objectDao.saveOrUpdate(goodPurchasePlanGangedInfo); + } + } + } + + /** + * 创建新的采购单联动记录 + * @param gpItem + * @param godownItem + * @param godownDGAmount + * @return + */ + private GoodPurchasePlanGangedInfo newGoodPurchasePlanGangedInfo(GoodPurchaseItem gpItem,GodownEntryItem godownItem,int godownDGAmount){ + GoodPurchasePlanGangedInfo newGPPGangedIndfo = new GoodPurchasePlanGangedInfo(); + GoodPurchasePlan gp = gpItem.getGoodPurchasePlan(); + GodownEntry ge = godownItem.getGodownEntry(); + newGPPGangedIndfo.setGangedAmount(godownDGAmount);//联动数量 + newGPPGangedIndfo.setDisposableGoodsId(gpItem.getDisposableGoodsId());//物品id + newGPPGangedIndfo.setGoodName(gpItem.getName());//物品名称 + newGPPGangedIndfo.setGoodPurchasePlanId(gp.getId());//采购计划单id + newGPPGangedIndfo.setGoodPurchasePlanItemId(gpItem.getId());//采购计划单明细id + newGPPGangedIndfo.setGodownEntryId(ge.getId());//入库单id + newGPPGangedIndfo.setGodownEntryItemId(godownItem.getId());//入库明细id + newGPPGangedIndfo.setGangedTime(ge.getTime());//联动时间 + return newGPPGangedIndfo; + } + + /** + * 修改采购计划单入库状态 + * @param goodPurchasePlan + * @return + */ + private GoodPurchasePlan changePurchaseStockStatus(GoodPurchasePlan goodPurchasePlan){ + List gpItemList = goodPurchasePlan.getItemsList(); +// List unGodownList = new ArrayList();//未入库的采购明细 + List partGodownList = new ArrayList();//部分入库的采购明细 + List godownedList = new ArrayList();//已入库的采购明细 + for (GoodPurchaseItem gpItem : gpItemList) { + if(gpItem.getGodownAmount() >= gpItem.getScheduleAmout()){ + godownedList.add(gpItem); + continue; + } + if(gpItem.getScheduleAmout() > gpItem.getGodownAmount() && gpItem.getGodownAmount() > 0){ + partGodownList.add(gpItem); + } +// if(gpItem.getGodownAmount() == 0){ +// unGodownList.add(gpItem); +// } + } + //若部分入库的明细数量>0 则采购单状态为:部分入库 + if(partGodownList.size()>0){ + goodPurchasePlan.setStockStatus(goodPurchasePlan.STOCK_STATUS_PART_GODOWN); + } + //若已入库明细数量=采购明细数量 则采购单状态为:已入库 + else if(godownedList.size()== gpItemList.size()){ + goodPurchasePlan.setStockStatus(goodPurchasePlan.STOCK_STATUS_GODOWNED); + }else{ + goodPurchasePlan.setStockStatus(goodPurchasePlan.STOCK_STATUS_UNGODOWN); + } + return goodPurchasePlan; + } } Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GoodPurchasePlanManager.java =================================================================== diff -u -r13059 -r23133 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GoodPurchasePlanManager.java (.../GoodPurchasePlanManager.java) (revision 13059) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GoodPurchasePlanManager.java (.../GoodPurchasePlanManager.java) (revision 23133) @@ -5,6 +5,7 @@ import net.sf.json.JSONObject; +import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntry; import com.forgon.disinfectsystem.entity.assestmanagement.GoodPurchaseItem; import com.forgon.disinfectsystem.entity.assestmanagement.GoodPurchasePlan; @@ -51,4 +52,10 @@ * @param ids 要导出的采购计划单的id */ public void exportGoodPurchasePlan(OutputStream ops,String ids); + + /** + * 一次性物品入库单联动一次性物品采购计划单 + * @param godownEntry + */ + public void godownEntryLinkageGoodPurchase(GodownEntry godownEntry); } Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.jsp =================================================================== diff -u -r18597 -r23133 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.jsp (.../goodPurchasePlanView.jsp) (revision 18597) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.jsp (.../goodPurchasePlanView.jsp) (revision 23133) @@ -1,4 +1,5 @@ <%@page import="com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier,com.forgon.disinfectsystem.entity.assestmanagement.GodownEntry "%> +<%@page import="com.forgon.disinfectsystem.entity.assestmanagement.GoodPurchasePlan"%> <%@ page contentType="text/html; charset=UTF-8"%> <%@ include file="/common/taglibs.jsp"%> <%@ include file="/common/includeExtJsAndCss.jsp"%> @@ -65,6 +66,12 @@ var saveButton = SSTS_WarehouseEntry_Create && SSTS_WarehouseEntry_Update && SSTS_WarehouseEntry_Delete; + //采购单已有物品入库状态数组 + var purchaseStockStatusArr = new Array(); + purchaseStockStatusArr.push('<%=GoodPurchasePlan.STOCK_STATUS_UNGODOWN%>'); + purchaseStockStatusArr.push('<%=GoodPurchasePlan.STOCK_STATUS_PART_GODOWN%>'); + purchaseStockStatusArr.push('<%=GoodPurchasePlan.STOCK_STATUS_GODOWNED%>'); + Index: ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/config.js =================================================================== diff -u -r22653 -r23133 --- ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/config.js (.../config.js) (revision 22653) +++ ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/config.js (.../config.js) (revision 23133) @@ -67,5 +67,9 @@ //使用记录转申请单备注信息(如使用记录的备注;住院号) useRecordConvertRecyclingApplicationRemark : '@useRecordRemark;@hospitalNumber', //只有装配完成才能使用清洗篮筐回收 - recycleClassifyBasketAfterPacked:false + recycleClassifyBasketAfterPacked:false, + //一次性物品入库时是否需要联动采购计划单,默认为false + needGodownEntryLinkageGoodPurchase: true, + //采购计划显示入库状态,默认为false + showGoodPurchaseStockStatus: true } \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.js =================================================================== diff -u -r18597 -r23133 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.js (.../goodPurchasePlanView.js) (revision 18597) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.js (.../goodPurchasePlanView.js) (revision 23133) @@ -20,6 +20,8 @@ {name : 'id',mapping : 'id'}, {name : 'disposableGoodsId',mapping : 'disposableGoodsId'}, {name : 'materialDefinitionId',mapping : 'materialDefinitionId'}, + {name : 'supplierId',mapping : 'supplierId'}, + {name : 'manufacturerId',mapping : 'manufacturerId'}, {name : 'name',mapping : 'name'}, {name : 'displayName',mapping : 'displayName'}, {name : 'spelling',mapping : 'spelling'}, @@ -88,7 +90,9 @@ {name : 'identification'}, {name : 'manufacture'}, {name : 'disposableGoodsId'}, - {name : 'materialDefinitionId'} + {name : 'materialDefinitionId'}, + {name : 'manufacturerId'}, + {name : 'supplierId'} ]); //打印,目前只支持单个打印 @@ -204,6 +208,8 @@ top.Ext.getCmp('unit1').setValue(''); top.Ext.getCmp('disposableGoodsId').setValue(''); top.Ext.getCmp('materialDefinitionId').setValue(''); + top.Ext.getCmp('manufacturerId').setValue(''); + top.Ext.getCmp('supplierId').setValue(''); top.Ext.getCmp('specification1').setValue(''); top.Ext.getCmp('purchase').setValue(''); top.Ext.getCmp('supplier1').setValue(''); @@ -213,7 +219,7 @@ top.Ext.getCmp('name1').focus(); } function addItems(departName,departCoding,name,unit,specification,lastConsuption, - stockQuantity,scheduleAmount,purchase,manufacturer,supplierName,disposableGoodsId,materialDefinitionId){ + stockQuantity,scheduleAmount,purchase,manufacturer,supplierName,disposableGoodsId,materialDefinitionId,supplierId,manufacturerId){ for(var i = 0;i < top.Ext.getCmp('goodPurchaseItemGrid').getStore().getCount();i++){ if(top.Ext.getCmp('goodPurchaseItemGrid').getStore().getAt(i).data.name == name){ showResult("该物品已经存在,不能重复添加!"); @@ -261,7 +267,9 @@ manufacturer:manufacturer, supplierName : supplierName, disposableGoodsId : disposableGoodsId, - materialDefinitionId : materialDefinitionId + materialDefinitionId : materialDefinitionId, + supplierId : supplierId, + manufacturerId : manufacturerId }); //alert(purchase + " " + scheduleAmount + " " ); //alert("lastConsuption:" + lastConsuption); @@ -496,7 +504,9 @@ {name : 'supplierName'}, {name : 'deleteButton'}, {name : 'disposableGoodsId'}, - {name : 'materialDefinitionId'} + {name : 'materialDefinitionId'}, + {name : 'manufacturerId'}, + {name : 'supplierId'} ] }) }), @@ -559,6 +569,8 @@ listeners : { select : function(combo, record, index) { combo.setValue(record.data.name); + selectedRecord = top.Ext.getCmp('goodPurchaseItemGrid').getSelectionModel().getSelections()[0]; + selectedRecord.set("supplierId",record.data.id); } } }) @@ -580,6 +592,9 @@ listeners : { select : function(combo, record, index) { combo.setValue(record.data.name); + selectedRecord = top.Ext.getCmp('goodPurchaseItemGrid').getSelectionModel().getSelections()[0]; + selectedRecord.set("manufacturerId",record.data.id); +// console.log(selectedRecord); } } }) @@ -603,6 +618,14 @@ name : 'barcode', id : 'barcode' },{ + xtype : 'hidden', + name : 'supplierId', + id : 'supplierId' + },{ + xtype : 'hidden', + name : 'manufacturerId', + id : 'manufacturerId' + },{ text : '  物品名称:' },{ xtype : 'combo', @@ -655,6 +678,8 @@ top.Ext.getCmp('unit1').setValue(lastGoodPurchaseItem.unit1); top.Ext.getCmp('supplier1').setValue(lastGoodPurchaseItem.supplier1); top.Ext.getCmp('manufacturer').setValue(lastGoodPurchaseItem.manufacturer); + top.Ext.getCmp('supplierId').setValue(lastGoodPurchaseItem.supplierId); + top.Ext.getCmp('manufacturerId').setValue(lastGoodPurchaseItem.manufacturerId); } }); }else if(materialDefinitionId){ @@ -670,6 +695,8 @@ top.Ext.getCmp('unit1').setValue(lastGoodPurchaseItem.unit1); top.Ext.getCmp('supplier1').setValue(lastGoodPurchaseItem.supplier1); top.Ext.getCmp('manufacturer').setValue(lastGoodPurchaseItem.manufacturer); + top.Ext.getCmp('supplierId').setValue(lastGoodPurchaseItem.supplierId); + top.Ext.getCmp('manufacturerId').setValue(lastGoodPurchaseItem.manufacturerId); } }); } @@ -829,6 +856,7 @@ tabIndex : 8, listeners : { select : function(field, r) { + top.Ext.getCmp('supplierId').setValue(r.data.id); focusTo('manufacturer'); }, specialKey:function(f,e){ @@ -860,6 +888,9 @@ width : 300, tabIndex : 9, listeners : { + select : function(field, r) { + top.Ext.getCmp('manufacturerId').setValue(r.data.id); + }, 'keydown' : function(obj, e){ if (e.getKey() == e.BACKSPACE) {e.stopEvent();} } @@ -902,7 +933,7 @@ var name = top.Ext.getCmp('name1').getValue(); var items = buildJSONStringFromStore(top.Ext.getCmp('goodPurchaseItemGrid').getStore()); - + // console.log(items); // 设置表单参数json setFormParams(form,['id','remark','time']); top.Ext.getCmp("items").setValue(items); @@ -961,6 +992,8 @@ }*/ var disposableGoodsId = top.Ext.getCmp('disposableGoodsId').getValue(); var materialDefinitionId = top.Ext.getCmp('materialDefinitionId').getValue(); + var supplierId = top.Ext.getCmp('supplierId').getValue(); + var manufacturerId = top.Ext.getCmp('manufacturerId').getValue(); var name = top.Ext.getCmp('name1').getValue(); /*if(name.length==0){ showResult('请填写物品名称!'); @@ -1000,7 +1033,7 @@ var lastConsuption = top.Ext.getCmp('lastConsumption1').getValue(); //alert(departName + " " + departCoding); return addItems(departName,departCoding,name,unit,specification,lastConsuption, - stockQuantity,scheduleAmount,purchase,manufacturer,supplierName,disposableGoodsId,materialDefinitionId); + stockQuantity,scheduleAmount,purchase,manufacturer,supplierName,disposableGoodsId,materialDefinitionId,supplierId,manufacturerId); } // 删除 @@ -1092,6 +1125,8 @@ var disposableGoodsId = data.itemsList[i].disposableGoodsId; var materialDefinitionId = data.itemsList[i].materialDefinitionId; + var manufacturerId = data.itemsList[i].manufacturerId; + var supplierId = data.itemsList[i].supplierId; var goodPurchasePlanItem = new GoodPurchasePlanItemRecord({ localID:g_localID++, @@ -1110,9 +1145,11 @@ supplierName : data.itemsList[i].supplierName, totalPrice:parseFloat(Ext.util.Format.usMoney(scheduleAmount*purchase)), disposableGoodsId : disposableGoodsId, - materialDefinitionId : materialDefinitionId + materialDefinitionId : materialDefinitionId, + manufacturerId : manufacturerId, + supplierId : supplierId }); - +// console.log(goodPurchasePlanItem); top.Ext.getCmp('goodPurchaseItemGrid').getStore().add(goodPurchasePlanItem); } setTotalMoney(top.Ext.getCmp('goodPurchaseItemGrid')); @@ -1128,6 +1165,23 @@ } /** + *入库状态变色 + */ +function renderColor(v, p, record){ + if(sstsConfig.showGoodPurchaseStockStatus){ + var status = record.data['stockStatus']; + var color = ""; + if(purchaseStockStatusArr[1] == status){//部分入库 + color = "orange"; + } + if(purchaseStockStatusArr[0] == status){//未入库 + color = "red"; + } + return "

" + v + "

"; + } +} + +/** * 修改记录 * modifyRecord函数 触发modify函数调用,并传入当前列的值以及record.data对象 * 页面中需要定义 modify(v,data) 函数 @@ -1142,6 +1196,7 @@ {header : "单号",width : 200,dataIndex : 'serialNumber', renderer : modifyRecord}, {header : "操作员",width : 200,dataIndex : 'operator'}, {header : "操作时间",width : 200,dataIndex : 'time' , renderer : myDateFormatByMinute}, + {header : "入库状态",width : 100,dataIndex : 'stockStatus',renderer : renderColor,hidden: !sstsConfig.showGoodPurchaseStockStatus}, {id : 'operationRemark',header : "备注",width : 120,dataIndex : 'remark'} ]; @@ -1150,6 +1205,7 @@ {name : 'serialNumber'}, {name : 'operator'}, {name : 'time'}, + {name : 'stockStatus'}, {name : 'remark'} ]; @@ -1158,6 +1214,7 @@ {type: 'string', dataIndex: 'serialNumber'}, {type: 'string', dataIndex: 'operator'}, {type: 'date', dataIndex: 'time'}, + {type: 'string', dataIndex: 'stockStatus'}, {type: 'string', dataIndex: 'remark'} ]} ); @@ -1402,9 +1459,13 @@ */ Ext4.tip.QuickTipManager.init(); Ext4.apply(Ext4.tip.QuickTipManager.getQuickTip(), { - dismissDelay: 0, + maxWidth: 1200, + minWidth: 100, + dismissDelay: 0, showDelay: 0 }); + top.Ext4.tip.QuickTipManager.init(); + grid.on('mouseover',function(e){// 添加mouseover事件 var index = grid.getView().findRowIndex(e.getTarget());// 根据mouse所在的target可以取到列的位置 if (index !== false) {// 当取到了正确的列时,(因为如果传入的target列没有取到的时候会返回false) @@ -1428,38 +1489,62 @@ if(specification == null || specification.length <= 0){ b = false; } - var scheduleAmount = data.itemsList[i].scheduleAmout; + var scheduleAmount = data.itemsList[i].scheduleAmout;//采购计划数量 if(scheduleAmount == null || scheduleAmount == 'null'){ scheduleAmount = ''; } + var godownAmount = data.itemsList[i].godownAmount;//已入库数量 + if(godownAmount == null || godownAmount == 'null'){ + godownAmount = ''; + } + var purchase = parseFloat(data.itemsList[i].purchase); //预览表格行 - content +="" - +" " + data.itemsList[i].name+ (b == false?"":" ["+specification+"]") - +""+ data.itemsList[i].unit - +""+ scheduleAmount - +""+scheduleAmount*purchase + var rowContent =" " + data.itemsList[i].name+ (b == false?"":" ["+specification+"]") +// +""+ data.itemsList[i].unit +""+ data.itemsList[i].supplierName - +""+""; + +""+ data.itemsList[i].manufacturer + +""+scheduleAmount*purchase + +""+ scheduleAmount+""; + + if(sstsConfig.showGoodPurchaseStockStatus){//是否显示已入库数量 + if(godownAmount < scheduleAmount){//已入库数是否小于计划采购数 + rowContent +=""+ godownAmount+""; + }else{ + rowContent +=""+ godownAmount+""; + } + } + content += ""+rowContent+"" } } //预览表格头列 - tableContent = ("" - +"" - +"" - +"" - +"" - +"" ); + tableContent = ("

名称

单位

计划数

金额

供应商

" + +"" +// +"" + +"" + +"" + +"" + +""); + + if(sstsConfig.showGoodPurchaseStockStatus){//是否显示入库数量 + tableContent += ""; + } + tableContent +="" + content + "

名称

单位

供应商

生产厂家

金额

采购计划数

已入库数


"; - record.set("htmlContent",tableContent); - }, + if(grid.getStore().getCount() > index){ + record = grid.getStore().getAt(index); + if(id == record.data['id']){ + record.set("htmlContent",tableContent); + } + } + }, failure : function(response, options) {//请求失败的回调函数 } }); } e.getTarget().setAttribute('data-qtip', tableContent); - e.getTarget().setAttribute('data-qwidth', 500); +// e.getTarget().setAttribute('data-qwidth', 500); e.getTarget().setAttribute('data-qtitle', ' 采购单信息表:'); // var rowEl = Ext4.fly(e.getTarget()); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java =================================================================== diff -u -r22855 -r23133 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 22855) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 23133) @@ -29,6 +29,7 @@ import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.OrgUnitManager; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; +import com.forgon.disinfectsystem.basedatamanager.supplier.service.SupplierManager; import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.diposablegoods.util.DisposableGoodsUtils; @@ -44,6 +45,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryItem; import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryItemWB; import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryWB; +import com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.invoicemanager.DiposableGoodsItem; import com.forgon.disinfectsystem.entity.receiverecord.ReceiveRecordDiposableGoodsItem; @@ -102,6 +104,19 @@ private DateQueryAdapter dateQueryAdapter; + private GoodPurchasePlanManager goodPurchasePlanManager; + + private SupplierManager supplierManager; + + public void setSupplierManager(SupplierManager supplierManager) { + this.supplierManager = supplierManager; + } + + public void setGoodPurchasePlanManager( + GoodPurchasePlanManager goodPurchasePlanManager) { + this.goodPurchasePlanManager = goodPurchasePlanManager; + } + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { this.dateQueryAdapter = dateQueryAdapter; } @@ -475,7 +490,17 @@ private void saveGodownEntry_internal(GodownEntry godownEntry, Map result) { List entrys = new ArrayList(1); entrys.add(godownEntry); + //保存入库单 saveGodownEntry_internal(entrys, result); + + //保存后和采购计划单联动(配置项配needGodownEntryLinkageGoodPurchase:true) + if(CssdUtils.getSystemSetConfigByNameBool("needGodownEntryLinkageGoodPurchase", false)){ + for (GodownEntry gEntry : entrys) { + logger.debug("入库单:"+gEntry.getSerialNumber()+"联动采购计划单"); + //联动采购计划单 + goodPurchasePlanManager.godownEntryLinkageGoodPurchase(gEntry); + } + } } /** @@ -501,6 +526,10 @@ disposableGoodsBatch.setSterileBatchNumber(godownEntryItem.getSterileBatchNumber()); //供货商 disposableGoodsBatch.setSupplierName(godownEntryItem.getSupplierName()); + //供货商id + disposableGoodsBatch.setSupplierId(godownEntryItem.getSupplierId()); + //生产厂家id + disposableGoodsBatch.setManufacturerId(godownEntryItem.getManufacturerId());//供货商id //生产厂家 disposableGoodsBatch.setManufacturer(godownEntryItem.getManufacturer()); //产地 @@ -523,20 +552,16 @@ disposableGoodsStock.getGoodsBatchs().add(disposableGoodsBatchStock); disposableGoodsBatchStock.setBarcode(disposableGoodsBatch.getBarcode()); disposableGoodsBatchStock.setDisposableGoodsId(disposableGoods.getId()); - disposableGoodsBatchStock - .setDisposableGoodsBatchId(disposableGoodsBatch.getId()); - disposableGoodsBatchStock.setBatchNumber(godownEntryItem - .getBatchNumber()); + disposableGoodsBatchStock.setDisposableGoodsBatchId(disposableGoodsBatch.getId()); + disposableGoodsBatchStock.setBatchNumber(godownEntryItem.getBatchNumber()); disposableGoodsBatchStock.setCost(godownEntryItem.getCost()); disposableGoodsBatchStock.setExpDate(godownEntryItem.getExpDate()); - disposableGoodsBatchStock.setManufacturer(godownEntryItem - .getManufacturer()); - disposableGoodsBatchStock.setSterileBatchNumber(godownEntryItem - .getSterileBatchNumber()); - disposableGoodsBatchStock.setSupplierName(godownEntryItem - .getSupplierName()); - disposableGoodsBatchStock.setProducingArea(godownEntryItem - .getProducingArea()); + disposableGoodsBatchStock.setManufacturer(godownEntryItem.getManufacturer()); + disposableGoodsBatchStock.setManufacturerId(godownEntryItem.getManufacturerId());//生产厂家id + disposableGoodsBatchStock.setSterileBatchNumber(godownEntryItem.getSterileBatchNumber()); + disposableGoodsBatchStock.setSupplierName(godownEntryItem.getSupplierName()); + disposableGoodsBatchStock.setSupplierId(godownEntryItem.getSupplierId());//供应商id + disposableGoodsBatchStock.setProducingArea(godownEntryItem.getProducingArea()); disposableGoodsBatchStock.setWarehouseID(warehouseID); disposableGoodsBatchStock.setWarehouseName(warehouseName); diposableGoodBatchStockManager.saveOrUpdate(disposableGoodsBatchStock); @@ -622,6 +647,9 @@ boolean isBatchStockZeroBeforeEntry = false; Long disposableGoodsID = godownEntryItem.getDisposableGoodsID(); Long disposableGoodsStockID = godownEntryItem.getDisposableGoodsStockID(); + Long supplierId = godownEntryItem.getSupplierId();//供应商id + Long manufacturerId = godownEntryItem.getManufacturerId();//生产厂家id + DisposableGoods disposableGoods = idToDisposableGoodsMap.get(disposableGoodsID); DisposableGoodsStock disposableGoodsStock = null; @@ -676,6 +704,8 @@ disposableGoodsBatch.setManufacturer(godownEntryItem.getManufacturer()); disposableGoodsBatch.setSterileBatchNumber(godownEntryItem.getSterileBatchNumber()); disposableGoodsBatch.setSupplierName(godownEntryItem.getSupplierName()); + disposableGoodsBatch.setSupplierId(supplierId);//供应商id + disposableGoodsBatch.setManufacturerId(manufacturerId);//生产厂家id disposableGoodsBatch.setProducingArea(godownEntryItem.getProducingArea()); // 更新批次库存相关信息 // disposableGoodsBatchStock.setDisposableGoodsID(disposableGoodsID); @@ -687,6 +717,8 @@ disposableGoodsBatchStock.setSterileBatchNumber(godownEntryItem.getSterileBatchNumber()); disposableGoodsBatchStock.setSupplierName(godownEntryItem.getSupplierName()); disposableGoodsBatchStock.setProducingArea(godownEntryItem.getProducingArea()); + disposableGoodsBatchStock.setSupplierId(supplierId);//供应商id + disposableGoodsBatchStock.setManufacturerId(manufacturerId);//生产厂家id if(disposableGoods.expensiveDiposablegoods()){ Long amount = godownEntryItem.getAmount(); @@ -710,6 +742,8 @@ godownEntryItem.setDisposableGoodsBatchID(disposableGoodsBatch.getId()); godownEntryItem.setDisposableGoodsBatchStockID(disposableGoodsBatchStock.getId()); godownEntryItem.setDiposableGoods(disposableGoodsStock); + godownEntryItem.setSupplierId(supplierId);//供应商id + godownEntryItem.setManufacturerId(manufacturerId);//生产厂家id if(disposableGoods.expensiveDiposablegoods()){ if(!godownEntryItem.isAssociatedInfoValidForExpensiveDisposablegoodsInEntry()){ throw new RuntimeException("关联信息不正确!"); @@ -1176,14 +1210,32 @@ disposableGoodsBatchStock.setExpDate(expDate); disposableGoodsBatch.setExpDate(expDate); } - // 供应商 - String originalSupplierName = originalGodownEntryItem.getSupplierName(); - String supplierName = godownEntryItem.getSupplierName(); - if(!StringUtils.equals(originalSupplierName, supplierName)){ - curGodownEntryItem.setSupplierName(supplierName); - disposableGoodsBatchStock.setSupplierName(supplierName); - disposableGoodsBatch.setSupplierName(supplierName); + // 供应商Id + Long originalSupplierId = originalGodownEntryItem.getSupplierId(); + Long supplierId = godownEntryItem.getSupplierId(); + if(originalSupplierId != supplierId){ + Supplier sipplier = supplierManager.get(supplierId); + if(sipplier == null){ + throw new RuntimeException("获取不到id为"+supplierId+"的供应商对象!"); + } + //修改入库明细供应商 + curGodownEntryItem.setSupplierId(supplierId); + curGodownEntryItem.setSupplierName(sipplier.getCompanyName()); + //修改批次供应商 + disposableGoodsBatch.setSupplierId(supplierId); + disposableGoodsBatch.setSupplierName(sipplier.getCompanyName()); + //修改批次库存供应商 + disposableGoodsBatchStock.setSupplierId(supplierId); + disposableGoodsBatchStock.setSupplierName(sipplier.getCompanyName()); } + // 供应商 +// String originalSupplierName = originalGodownEntryItem.getSupplierName(); +// String supplierName = godownEntryItem.getSupplierName(); +// if(!StringUtils.equals(originalSupplierName, supplierName)){ +// curGodownEntryItem.setSupplierName(supplierName); +// disposableGoodsBatchStock.setSupplierName(supplierName); +// disposableGoodsBatch.setSupplierName(supplierName); +// } // 灭菌批次 String originalSterileBatchNumber = originalGodownEntryItem.getSterileBatchNumber(); String sterileBatchNumber = godownEntryItem.getSterileBatchNumber(); @@ -1192,14 +1244,32 @@ disposableGoodsBatchStock.setSterileBatchNumber(sterileBatchNumber); disposableGoodsBatch.setSterileBatchNumber(sterileBatchNumber); } - // 生产厂家 - String originalManufacturer = originalGodownEntryItem.getManufacturer(); - String manufacturer = godownEntryItem.getManufacturer(); - if(!StringUtils.equals(originalManufacturer, manufacturer)){ - curGodownEntryItem.setManufacturer(manufacturer); - disposableGoodsBatchStock.setManufacturer(manufacturer); - disposableGoodsBatch.setManufacturer(manufacturer); + // 生产厂家id + Long originalManufacturerId = originalGodownEntryItem.getManufacturerId(); + Long manufacturerId = godownEntryItem.getManufacturerId(); + if(originalManufacturerId != manufacturerId){ + Supplier manuFacturer = supplierManager.get(manufacturerId); + if(manuFacturer == null){ + throw new RuntimeException("获取不到id为"+supplierId+"的生产厂家对象!"); + } + //修改入库明细生产厂家 + curGodownEntryItem.setManufacturerId(manufacturerId); + curGodownEntryItem.setManufacturer(manuFacturer.getCompanyName()); + //修改批次生产厂家 + disposableGoodsBatch.setManufacturerId(manufacturerId); + disposableGoodsBatch.setManufacturer(manuFacturer.getCompanyName()); + //修改批次库存生产厂家 + disposableGoodsBatchStock.setManufacturerId(manufacturerId); + disposableGoodsBatchStock.setManufacturer(manuFacturer.getCompanyName()); } + // 生产厂家 +// String originalManufacturer = originalGodownEntryItem.getManufacturer(); +// String manufacturer = godownEntryItem.getManufacturer(); +// if(!StringUtils.equals(originalManufacturer, manufacturer)){ +// curGodownEntryItem.setManufacturer(manufacturer); +// disposableGoodsBatchStock.setManufacturer(manufacturer); +// disposableGoodsBatch.setManufacturer(manufacturer); +// } // 修改库存 Long originalAmount = originalGodownEntryItem.getAmount(); Long amount = godownEntryItem.getAmount(); @@ -2839,6 +2909,10 @@ throw new RuntimeException(String.format("id为%s的物品的失效期为空!", itemId)); } + //供应商id + Long supplierId = JSONUtil.optLong(item,"supplierId", null); + //生产厂家id + Long manufacturerId = JSONUtil.optLong(item,"manufacturerId", null); //灭菌批号 String sterileBatchNumber = JSONUtil.optString(item, "sterileBatchNumber", null); //生产厂家 @@ -2855,9 +2929,11 @@ godownEntryItem.setExpDate(expDate); godownEntryItem.setGrade(grade); godownEntryItem.setManufacturer(manufacturer); + godownEntryItem.setManufacturerId(manufacturerId);//生产厂家id godownEntryItem.setProducingArea(producingArea); godownEntryItem.setSterileBatchNumber(sterileBatchNumber); godownEntryItem.setSupplierName(supplierName); + godownEntryItem.setSupplierId(supplierId);//供应商id godownEntryItem.setBatchNumber(batchNumber); objectDao.saveOrUpdate(godownEntryItem); @@ -2871,6 +2947,8 @@ disposableGoodsBatch.setProducingArea(producingArea); disposableGoodsBatch.setSterileBatchNumber(sterileBatchNumber); disposableGoodsBatch.setSupplierName(supplierName); + disposableGoodsBatch.setSupplierId(supplierId);//生产厂家id + disposableGoodsBatch.setManufacturerId(manufacturerId);//供应商id objectDao.saveOrUpdate(disposableGoodsBatch); DisposableGoodsBatchStock batchStock = (DisposableGoodsBatchStock)objectDao.getBySql(DisposableGoodsBatchStock.class.getSimpleName(), " where disposableGoodsBatchId=" + batchID); @@ -2881,6 +2959,8 @@ batchStock.setProducingArea(producingArea); batchStock.setSterileBatchNumber(sterileBatchNumber); batchStock.setSupplierName(supplierName); + batchStock.setSupplierId(supplierId);//生产厂家id + batchStock.setManufacturerId(manufacturerId);//供应商id objectDao.saveOrUpdate(batchStock); } } @@ -2978,8 +3058,10 @@ } Item.put("失效日期",expDateStr); Item.put("供应商", godownEntryItem.getSupplierName()); + Item.put("供应商Id", godownEntryItem.getSupplierId()); Item.put("灭菌批号", godownEntryItem.getSterileBatchNumber()); Item.put("生产厂家", godownEntryItem.getManufacturer()); + Item.put("生产厂家Id", godownEntryItem.getManufacturerId()); Item.put("产地", godownEntryItem.getProducingArea()); Item.put("注册证号", godownEntryItem.getCertification()); Item.put("类别", godownEntryItem.getGrade()); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/GoodPurchaseAction.java =================================================================== diff -u -r21968 -r23133 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/GoodPurchaseAction.java (.../GoodPurchaseAction.java) (revision 21968) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/GoodPurchaseAction.java (.../GoodPurchaseAction.java) (revision 23133) @@ -172,6 +172,8 @@ String supplierName = obj.optString("supplierName");// 供应商 String manufacturer = obj.optString("manufacturer");// 生产厂家 + String supplierId= obj.optString("supplierId");// 供应商Id + String manufacturerId = obj.optString("manufacturerId");// 生产厂家Id String disposableGoodsId = obj.optString("disposableGoodsId"); String materialDefinitionId = obj.optString("materialDefinitionId"); if(DatabaseUtil.isPoIdValid(disposableGoodsId)){ @@ -180,6 +182,12 @@ if(DatabaseUtil.isPoIdValid(materialDefinitionId)){ goodPurchaseItem.setMaterialDefinitionId(Long.parseLong(materialDefinitionId)); } + if(DatabaseUtil.isPoIdValid(supplierId)){ + goodPurchaseItem.setSupplierId(Long.parseLong(supplierId)); + } + if(DatabaseUtil.isPoIdValid(manufacturerId)){ + goodPurchaseItem.setManufacturerId(Long.parseLong(manufacturerId)); + } goodPurchaseItem.setGoodPurchasePlan(goodPurchasePlan); goodPurchaseItem.setOrgUnit(orgUnit); @@ -289,6 +297,9 @@ obj.put("totalPrice", item.getTotalPrice()); obj.put("disposableGoodsId", item.getDisposableGoodsId()); obj.put("materialDefinitionId", item.getMaterialDefinitionId()); + obj.put("manufacturerId", item.getManufacturerId());//生产厂家id + obj.put("supplierId", item.getSupplierId());//供应商id + obj.put("godownAmount", item.getGodownAmount());//已入库数量 jsonArray.add(obj); }