Commit 693b4cd0aa709c135350f29af7f84d0d8ed7434e
1 parent
931c454f
feat:1、库存交易记录新增库区;2、母件编码和母件名称去重复;3、出库单新增颜色信息字段。
Showing
17 changed files
with
524 additions
and
392 deletions
src/main/java/com/huaheng/api/mes/service/MesServiceImpl.java
... | ... | @@ -31,7 +31,9 @@ import org.springframework.transaction.annotation.Transactional; |
31 | 31 | import javax.annotation.Resource; |
32 | 32 | import java.math.BigDecimal; |
33 | 33 | import java.util.ArrayList; |
34 | +import java.util.HashSet; | |
34 | 35 | import java.util.List; |
36 | +import java.util.Set; | |
35 | 37 | import java.util.stream.Collectors; |
36 | 38 | |
37 | 39 | @Service |
... | ... | @@ -186,20 +188,19 @@ public class MesServiceImpl implements IMesService { |
186 | 188 | public AjaxResult shipment(ReceiptDTO receiptDTO) { |
187 | 189 | Header header = receiptDTO.getShipmentHeader(); |
188 | 190 | List<Detail> details = receiptDTO.getShipemtnDetails(); |
189 | - | |
190 | - LambdaQueryWrapper<ShipmentHeader> query = Wrappers.lambdaQuery(); | |
191 | - query.eq(ShipmentHeader::getCode, header.getReferCode()).eq(ShipmentHeader::getShipmentType, header.getRefeCodeType()); | |
192 | - List<ShipmentHeader> list = shipmentHeaderService.list(query); | |
193 | - if (list.size() > 0) { | |
191 | + List<ShipmentHeader> list = shipmentHeaderService.list(new LambdaQueryWrapper<ShipmentHeader>() | |
192 | + .eq(ShipmentHeader::getCode, header.getReferCode()) | |
193 | + .eq(ShipmentHeader::getShipmentType, header.getRefeCodeType())); | |
194 | + if (!list.isEmpty()) { | |
194 | 195 | return AjaxResult.error("添加出库单: 上游单号referCode重复[ " + header.getReferCode() + " ],请勿重复添加。"); |
195 | 196 | } |
196 | 197 | AjaxResult ajaxResult = new AjaxResult(); |
198 | + //校验参数 | |
197 | 199 | boolean inNull = enterIsNull(ajaxResult, header, details); |
198 | 200 | if (inNull) { |
199 | 201 | return ajaxResult; |
200 | 202 | } |
201 | 203 | ShipmentHeader shipmentHeader = new ShipmentHeader(); |
202 | - // shipmentHeader.setId(header.getId()); | |
203 | 204 | if (StringUtils.isNotEmpty(header.getMOMID())) { |
204 | 205 | shipmentHeader.setMOMID(header.getMOMID()); |
205 | 206 | } |
... | ... | @@ -219,14 +220,30 @@ public class MesServiceImpl implements IMesService { |
219 | 220 | shipmentHeader.setCreatorCode(header.getCreatorCode()); |
220 | 221 | shipmentHeader.setCreatorName(header.getCreatorName()); |
221 | 222 | shipmentHeader.setRequestedStartDate(header.getRequestedStartDate()); |
222 | - shipmentHeader.setSuperiorCode(header.getSuperiorCode()); | |
223 | + | |
224 | + //母件编码和母件名称去重复 | |
225 | + String[] superiorCodeValue = header.getSuperiorCode().split(","); | |
226 | + String[] superiorNameValue = header.getSuperiorName().split(","); | |
227 | + Set<String> uniqueSuperiorCodeValue = new HashSet<>(); | |
228 | + Set<String> uniqueSuperiorNameValue = new HashSet<>(); | |
229 | + for (String value : superiorCodeValue) { | |
230 | + uniqueSuperiorCodeValue.add(value.trim()); | |
231 | + } | |
232 | + for (String value : superiorNameValue) { | |
233 | + uniqueSuperiorNameValue.add(value.trim()); | |
234 | + } | |
235 | + String superiorCode = String.join(",", uniqueSuperiorCodeValue); | |
236 | + String superiorName = String.join(",", uniqueSuperiorNameValue); | |
237 | + shipmentHeader.setSuperiorCode(superiorCode); | |
238 | + shipmentHeader.setSuperiorName(superiorName); | |
239 | + | |
240 | + | |
223 | 241 | if (StringUtils.isNotEmpty(header.getTransferWarehouseName())) { |
224 | 242 | shipmentHeader.setTransferWarehouseName(header.getTransferWarehouseName()); |
225 | 243 | } |
226 | 244 | if (StringUtils.isNotEmpty(header.getTransferWarehouseCode())) { |
227 | 245 | shipmentHeader.setTransferWarehouseCode(header.getTransferWarehouseCode()); |
228 | 246 | } |
229 | - shipmentHeader.setSuperiorName(header.getSuperiorName()); | |
230 | 247 | shipmentHeader.setShipmentNote(header.getShipmentNote()); |
231 | 248 | shipmentHeader.setRequestedDeliveryDate(header.getRequestedDeliveryDate()); |
232 | 249 | if (StringUtils.isNotEmpty(header.getTransferWarehouseCode())) { |
... | ... | @@ -295,6 +312,10 @@ public class MesServiceImpl implements IMesService { |
295 | 312 | if (!success) { |
296 | 313 | throw new ServiceException("生成出库单详情失败"); |
297 | 314 | } |
315 | + | |
316 | + | |
317 | + //如果通知单号和车间、仓库相同,自动合并单据 | |
318 | + | |
298 | 319 | return AjaxResult.success(receiptDTO); |
299 | 320 | } |
300 | 321 | |
... | ... |
src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java
... | ... | @@ -40,7 +40,6 @@ import java.util.List; |
40 | 40 | public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, AdjustDetail> implements AdjustDetailService { |
41 | 41 | |
42 | 42 | |
43 | - | |
44 | 43 | @Resource |
45 | 44 | private CycleCountDetailService cycleCountDetailService; |
46 | 45 | @Resource |
... | ... | @@ -61,12 +60,9 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
61 | 60 | private ContainerService containerService; |
62 | 61 | |
63 | 62 | |
64 | - | |
65 | - | |
66 | - | |
67 | - | |
68 | 63 | /** |
69 | - *新增调整明细 | |
64 | + * 新增调整明细 | |
65 | + * | |
70 | 66 | * @param adjustDetail |
71 | 67 | * @return |
72 | 68 | */ |
... | ... | @@ -82,38 +78,38 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
82 | 78 | LambdaQueryWrapper<AdjustHeader> lambdaQueryWrapper = Wrappers.lambdaQuery(adjustHeader); |
83 | 79 | adjustHeader = adjustHeaderService.getOne(lambdaQueryWrapper); |
84 | 80 | //检查库存 |
85 | - if((adjustDetail.getInventoryDetailId()) != null){ | |
81 | + if ((adjustDetail.getInventoryDetailId()) != null) { | |
86 | 82 | InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); |
87 | - if(inventoryDetail == null){ | |
83 | + if (inventoryDetail == null) { | |
88 | 84 | return AjaxResult.error("没有该条库存明细"); |
89 | 85 | } |
90 | 86 | } |
91 | 87 | //明细单据的上层单编码需要和主单一直,主单空值则不判断 |
92 | - if(StringUtils.isNotEmpty(adjustHeader.getCycleCountHeaderCode()) || StringUtils.isNotEmpty(adjustHeader.getCheckCode())){ | |
88 | + if (StringUtils.isNotEmpty(adjustHeader.getCycleCountHeaderCode()) || StringUtils.isNotEmpty(adjustHeader.getCheckCode())) { | |
93 | 89 | adjustDetail.setCycleCountHeaderCode(adjustHeader.getCycleCountHeaderCode()); |
94 | 90 | adjustDetail.setCheckCode(adjustHeader.getCheckCode()); |
95 | 91 | } |
96 | 92 | //检查盘点单 |
97 | - if(StringUtils.isNotEmpty(adjustDetail.getCycleCountHeaderCode())){ | |
98 | - CycleCountDetail cycleCountDetail = cycleCountDetailService.getById(adjustDetail.getCheckDetailId()); | |
99 | - if(cycleCountDetail == null || !cycleCountDetail.getCycleCountHeadCode().equals(adjustDetail.getCycleCountHeaderCode())){ | |
100 | - return AjaxResult.error("盘点单错误,请核对盘点单据!"); | |
93 | + if (StringUtils.isNotEmpty(adjustDetail.getCycleCountHeaderCode())) { | |
94 | + CycleCountDetail cycleCountDetail = cycleCountDetailService.getById(adjustDetail.getCheckDetailId()); | |
95 | + if (cycleCountDetail == null || !cycleCountDetail.getCycleCountHeadCode().equals(adjustDetail.getCycleCountHeaderCode())) { | |
96 | + return AjaxResult.error("盘点单错误,请核对盘点单据!"); | |
101 | 97 | } |
102 | 98 | } |
103 | 99 | //检查质检单 |
104 | - if(StringUtils.isNotEmpty(adjustDetail.getCheckCode())){ | |
100 | + if (StringUtils.isNotEmpty(adjustDetail.getCheckCode())) { | |
105 | 101 | CheckDetail checkDetail = checkDetailService.getById(adjustDetail.getCheckDetailId()); |
106 | - if(checkDetail == null || !checkDetail.getCheckCode().equals(adjustDetail.getCheckCode())){ | |
102 | + if (checkDetail == null || !checkDetail.getCheckCode().equals(adjustDetail.getCheckCode())) { | |
107 | 103 | return AjaxResult.error("质检单错误,请核对质检单据!"); |
108 | 104 | } |
109 | 105 | } |
110 | 106 | //检查物料 |
111 | 107 | Material material = materialService.getMaterialByCode(adjustDetail.getMaterialCode()); |
112 | - if(material != null){ | |
113 | - if(!material.getName().equals(adjustDetail.getMaterialName())){ | |
114 | - return AjaxResult.error("物料名称错误!"); | |
108 | + if (material != null) { | |
109 | + if (!material.getName().equals(adjustDetail.getMaterialName())) { | |
110 | + return AjaxResult.error("物料名称错误!"); | |
115 | 111 | } |
116 | - }else{ | |
112 | + } else { | |
117 | 113 | return AjaxResult.error("物料编码错误!"); |
118 | 114 | } |
119 | 115 | //调整数量 |
... | ... | @@ -133,6 +129,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
133 | 129 | |
134 | 130 | /** |
135 | 131 | * 调整审批 |
132 | + * | |
136 | 133 | * @param adjustDetail |
137 | 134 | * @return |
138 | 135 | */ |
... | ... | @@ -140,7 +137,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
140 | 137 | @Override |
141 | 138 | public AjaxResult adjustAgree(AdjustDetail adjustDetail) { |
142 | 139 | //修改状态,审批人栏填入名称,修改状态 |
143 | - if(adjustDetail.getStatus() > 1){ | |
140 | + if (adjustDetail.getStatus() > 1) { | |
144 | 141 | return AjaxResult.error("单据状态无法审批!"); |
145 | 142 | } |
146 | 143 | adjustDetail.setAgreeBy(ShiroUtils.getName()); |
... | ... | @@ -155,17 +152,17 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
155 | 152 | |
156 | 153 | /** |
157 | 154 | * 修改调整数量 |
158 | - * */ | |
155 | + */ | |
159 | 156 | @Override |
160 | 157 | public AjaxResult editSave(AdjustDetail adjustDetail) { |
161 | - //调整数量和货主,供应商 | |
162 | - //根据ID修改 | |
158 | + //调整数量和货主,供应商 | |
159 | + //根据ID修改 | |
163 | 160 | BigDecimal t = adjustDetail.getToQty().subtract(adjustDetail.getFromQty()); |
164 | 161 | adjustDetail.setGapQty(t); |
165 | - Boolean j = this.updateById(adjustDetail); | |
166 | - if(!j){ | |
167 | - throw new ServiceException("修改调账明细失败!"); | |
168 | - } | |
162 | + Boolean j = this.updateById(adjustDetail); | |
163 | + if (!j) { | |
164 | + throw new ServiceException("修改调账明细失败!"); | |
165 | + } | |
169 | 166 | return AjaxResult.success("修改成功"); |
170 | 167 | } |
171 | 168 | |
... | ... | @@ -174,157 +171,160 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
174 | 171 | * 调整库存 |
175 | 172 | * 调整数量,调整库存状态 |
176 | 173 | * 调整插入库存 |
174 | + * | |
177 | 175 | * @param adjustDetail |
178 | 176 | * @return |
179 | 177 | */ |
180 | 178 | @Transactional |
181 | 179 | @Override |
182 | 180 | public AjaxResult updateAdjustDetail(AdjustDetail adjustDetail) { |
183 | - if(adjustDetail.getStatus() == 1){ | |
184 | - AjaxResult.error("该单据已调整,不允许再次调整!" ); | |
185 | - } | |
181 | + if (adjustDetail.getStatus() == 1) { | |
182 | + AjaxResult.error("该单据已调整,不允许再次调整!"); | |
183 | + } | |
186 | 184 | String containerCode = adjustDetail.getContainerCode(); |
187 | 185 | Container container = containerService.getContainerByCode(containerCode); |
188 | 186 | adjustDetail.setLocationCode(container.getLocationCode()); |
189 | 187 | //调整单中不带库存明细时不查询 |
190 | - if(adjustDetail.getInventoryDetailId() != null && adjustDetail.getInventoryDetailId() != 0) { | |
191 | - InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); | |
192 | - if (!adjustDetail.getLocationCode().equals(inventoryDetail.getLocationCode()) || | |
193 | - !adjustDetail.getContainerCode().equals(inventoryDetail.getContainerCode())) { | |
194 | - return AjaxResult.error("调整单和所调整库存的库位容器不符,前检查数据"); | |
195 | - } | |
196 | - //验证该条库存是不是正在使用,验证库存明细 | |
197 | - Location location = new Location(); | |
198 | - location.setCode(inventoryDetail.getLocationCode()); | |
199 | - location.setWarehouseCode(inventoryDetail.getWarehouseCode()); | |
200 | - LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(location); | |
201 | - location = locationService.getOne(lambdaQueryWrapper); | |
202 | - if (!QuantityConstant.STATUS_LOCATION_EMPTY.equals(location.getStatus())) { | |
203 | - return AjaxResult.error (inventoryDetail.getId() + "库位非空闲,请等待其他任务完成再进行调整!"); | |
204 | - } | |
205 | - //判断调整库存状态还是数量 | |
206 | - if ((adjustDetail.getToQty() != null || adjustDetail.getGapQty() != null) &&!"manual".equals(adjustDetail.getUserDef3())) { | |
207 | - //调整数量 | |
208 | - this.updateAdjustDetailNumber(adjustDetail, inventoryDetail); | |
209 | - } | |
210 | - if (!adjustDetail.getFromInventorySts().equals(adjustDetail.getToInventorySts())) { | |
211 | - //调整库存状态 | |
212 | - this.updateAdjustDetailState(adjustDetail, inventoryDetail); | |
213 | - } | |
214 | - }else{ | |
215 | - String fromQtyString = adjustDetail.getFromQty().toString(); //调整前库存数量 | |
216 | - if(StringUtils.isNotEmpty(fromQtyString) && !"manual".equals(adjustDetail.getUserDef3())){ | |
217 | - //调整插入库存 | |
218 | - updateAdjustDetailInsert(adjustDetail); | |
219 | - } | |
188 | + if (adjustDetail.getInventoryDetailId() != null && adjustDetail.getInventoryDetailId() != 0) { | |
189 | + InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); | |
190 | + if (!adjustDetail.getLocationCode().equals(inventoryDetail.getLocationCode()) || | |
191 | + !adjustDetail.getContainerCode().equals(inventoryDetail.getContainerCode())) { | |
192 | + return AjaxResult.error("调整单和所调整库存的库位容器不符,前检查数据"); | |
220 | 193 | } |
221 | - | |
222 | - if ("manual".equals(adjustDetail.getUserDef3())){ | |
223 | - LambdaQueryWrapper<InventoryDetail>queryWrapper=Wrappers.lambdaQuery(); | |
224 | - queryWrapper.eq(InventoryDetail::getContainerCode,adjustDetail.getContainerCode()) | |
225 | - .eq(InventoryDetail::getLocationCode,adjustDetail.getLocationCode()) | |
226 | - .eq(InventoryDetail::getCompanyCode,adjustDetail.getCompanyCode()).last("limit 1"); | |
227 | - InventoryDetail inventoryDetail=inventoryDetailService.getOne(queryWrapper); | |
228 | - if (StringUtils.isNotNull(inventoryDetail)){ | |
229 | - //新增库存 | |
230 | - InventoryDetail insertDetail=new InventoryDetail(); | |
231 | - insertDetail.setMaterialCode(adjustDetail.getMaterialCode()); | |
232 | - insertDetail.setMaterialUnit(adjustDetail.getMaterialUnit()); | |
233 | - insertDetail.setMaterialName(adjustDetail.getMaterialName()); | |
234 | - insertDetail.setQty(adjustDetail.getToQty()); | |
235 | - insertDetail.setMaterialSpec(adjustDetail.getMaterialSpec()); | |
236 | - insertDetail.setContainerCode(inventoryDetail.getContainerCode()); | |
237 | - insertDetail.setLocationCode(inventoryDetail.getLocationCode()); | |
238 | - insertDetail.setInventoryHeaderId(inventoryDetail.getInventoryHeaderId()); | |
239 | - insertDetail.setCompanyCode(inventoryDetail.getCompanyCode()); | |
240 | - insertDetail.setInventorySts(inventoryDetail.getInventorySts()); | |
241 | - insertDetail.setWarehouseCode(inventoryDetail.getWarehouseCode()); | |
242 | - insertDetail.setZoneCode(inventoryDetail.getZoneCode()); | |
243 | - insertDetail.setCreatedBy(ShiroUtils.getName()); | |
244 | - insertDetail.setLastUpdatedBy(ShiroUtils.getName()); | |
245 | - insertDetail.setLastUpdatedByName(ShiroUtils.getName()); | |
246 | - insertDetail.setZoneCode(inventoryDetail.getZoneCode()); | |
247 | - insertDetail.setTaskQty(new BigDecimal(0)); | |
248 | - insertDetail.setReceiptDetailId(0); | |
249 | - insertDetail.setReceiptCode("0"); | |
250 | - insertDetail.setInventorySts(QuantityConstant.GOOD); | |
251 | - inventoryDetailService.save(insertDetail); | |
252 | - adjustDetail.setInventoryDetailId(insertDetail.getId()); | |
253 | - | |
254 | - //写入库存交易 | |
255 | - //调整入 | |
256 | - InventoryTransaction inventoryTransaction = new InventoryTransaction(); | |
257 | - inventoryTransaction.setAdjustCode(adjustDetail.getAdjustCode()); | |
258 | - inventoryTransaction.setWarehouseCode(insertDetail.getWarehouseCode()); | |
259 | - inventoryTransaction.setCompanyCode(insertDetail.getCompanyCode()); | |
260 | - inventoryTransaction.setLocationCode(insertDetail.getLocationCode()); | |
261 | - inventoryTransaction.setContainerCode(insertDetail.getContainerCode()); | |
262 | - inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTINTO); | |
263 | - inventoryTransaction.setMaterialCode(insertDetail.getMaterialCode()); | |
264 | - inventoryTransaction.setMaterialName(insertDetail.getMaterialName()); | |
265 | - inventoryTransaction.setMaterialSpec(insertDetail.getMaterialSpec()); | |
266 | - inventoryTransaction.setMaterialUnit(insertDetail.getMaterialUnit()); | |
267 | - inventoryTransaction.setTaskQty(adjustDetail.getToQty()); | |
268 | - inventoryTransaction.setInventorySts(insertDetail.getInventorySts());//状态 | |
269 | - inventoryTransaction.setReferCode(insertDetail.getReferCode()); | |
270 | - inventoryTransaction.setReferDetailId(insertDetail.getReferDetailId()); | |
271 | - inventoryTransaction.setBatch(insertDetail.getBatch()); | |
272 | - inventoryTransaction.setLot(insertDetail.getLot()); | |
273 | - inventoryTransaction.setProjectNo(insertDetail.getProjectNo()); | |
274 | - inventoryTransaction.setQcCheck(insertDetail.getQcCheck()); | |
275 | - inventoryTransaction.setWeight(insertDetail.getWeight()); | |
276 | - inventoryTransaction.setManufactureDate(insertDetail.getManufactureDate()); | |
277 | - inventoryTransaction.setExpirationDate(insertDetail.getExpirationDate()); | |
278 | - inventoryTransaction.setAgingDate(insertDetail.getCreated()); | |
279 | - inventoryTransaction.setAttributeId(insertDetail.getAttributeId()); | |
280 | - inventoryTransaction.setAttribute1(insertDetail.getAttribute1()); | |
281 | - inventoryTransaction.setAttribute2(insertDetail.getAttribute2()); | |
282 | - inventoryTransaction.setAttribute3(insertDetail.getAttribute3()); | |
283 | - inventoryTransaction.setCreated(new Date()); | |
284 | - inventoryTransaction.setCreatedBy(ShiroUtils.getName()); | |
285 | - inventoryTransaction.setBillDetailId(insertDetail.getReceiptDetailId()); | |
286 | - inventoryTransaction.setSupplierCode(insertDetail.getSupplierCode()); | |
287 | - inventoryTransactionService.saveOrUpdate(inventoryTransaction); | |
288 | - } | |
194 | + //验证该条库存是不是正在使用,验证库存明细 | |
195 | + Location location = new Location(); | |
196 | + location.setCode(inventoryDetail.getLocationCode()); | |
197 | + location.setWarehouseCode(inventoryDetail.getWarehouseCode()); | |
198 | + LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(location); | |
199 | + location = locationService.getOne(lambdaQueryWrapper); | |
200 | + if (!QuantityConstant.STATUS_LOCATION_EMPTY.equals(location.getStatus())) { | |
201 | + return AjaxResult.error(inventoryDetail.getId() + "库位非空闲,请等待其他任务完成再进行调整!"); | |
202 | + } | |
203 | + //判断调整库存状态还是数量 | |
204 | + if ((adjustDetail.getToQty() != null || adjustDetail.getGapQty() != null) && !"manual".equals(adjustDetail.getUserDef3())) { | |
205 | + //调整数量 | |
206 | + this.updateAdjustDetailNumber(adjustDetail, inventoryDetail); | |
207 | + } | |
208 | + if (!adjustDetail.getFromInventorySts().equals(adjustDetail.getToInventorySts())) { | |
209 | + //调整库存状态 | |
210 | + this.updateAdjustDetailState(adjustDetail, inventoryDetail); | |
211 | + } | |
212 | + } else { | |
213 | + String fromQtyString = adjustDetail.getFromQty().toString(); //调整前库存数量 | |
214 | + if (StringUtils.isNotEmpty(fromQtyString) && !"manual".equals(adjustDetail.getUserDef3())) { | |
215 | + //调整插入库存 | |
216 | + updateAdjustDetailInsert(adjustDetail); | |
289 | 217 | } |
290 | - //修改调整单明细状态 | |
291 | - adjustDetail.setStatus(3); | |
292 | - adjustDetail.setLastUpdatedBy(ShiroUtils.getName()); | |
293 | - adjustDetail.setLastUpdated(new Date()); | |
294 | - this.saveOrUpdate(adjustDetail); | |
295 | - //判断调整单明细是否全部已批准 | |
296 | - List<AdjustDetail> list = this.list(new LambdaQueryWrapper<AdjustDetail>() | |
297 | - .eq(AdjustDetail::getAdjustCode, adjustDetail.getAdjustCode())); | |
298 | - boolean isFlag = false; | |
299 | - for (AdjustDetail detail : list) { | |
300 | - if(detail.getStatus()!=3){ | |
301 | - isFlag = true; | |
302 | - } | |
218 | + } | |
219 | + | |
220 | + if ("manual".equals(adjustDetail.getUserDef3())) { | |
221 | + LambdaQueryWrapper<InventoryDetail> queryWrapper = Wrappers.lambdaQuery(); | |
222 | + queryWrapper.eq(InventoryDetail::getContainerCode, adjustDetail.getContainerCode()) | |
223 | + .eq(InventoryDetail::getLocationCode, adjustDetail.getLocationCode()) | |
224 | + .eq(InventoryDetail::getCompanyCode, adjustDetail.getCompanyCode()).last("limit 1"); | |
225 | + InventoryDetail inventoryDetail = inventoryDetailService.getOne(queryWrapper); | |
226 | + if (StringUtils.isNotNull(inventoryDetail)) { | |
227 | + //新增库存 | |
228 | + InventoryDetail insertDetail = new InventoryDetail(); | |
229 | + insertDetail.setMaterialCode(adjustDetail.getMaterialCode()); | |
230 | + insertDetail.setMaterialUnit(adjustDetail.getMaterialUnit()); | |
231 | + insertDetail.setMaterialName(adjustDetail.getMaterialName()); | |
232 | + insertDetail.setQty(adjustDetail.getToQty()); | |
233 | + insertDetail.setMaterialSpec(adjustDetail.getMaterialSpec()); | |
234 | + insertDetail.setContainerCode(inventoryDetail.getContainerCode()); | |
235 | + insertDetail.setLocationCode(inventoryDetail.getLocationCode()); | |
236 | + insertDetail.setInventoryHeaderId(inventoryDetail.getInventoryHeaderId()); | |
237 | + insertDetail.setCompanyCode(inventoryDetail.getCompanyCode()); | |
238 | + insertDetail.setInventorySts(inventoryDetail.getInventorySts()); | |
239 | + insertDetail.setWarehouseCode(inventoryDetail.getWarehouseCode()); | |
240 | + insertDetail.setZoneCode(inventoryDetail.getZoneCode()); | |
241 | + insertDetail.setCreatedBy(ShiroUtils.getName()); | |
242 | + insertDetail.setLastUpdatedBy(ShiroUtils.getName()); | |
243 | + insertDetail.setLastUpdatedByName(ShiroUtils.getName()); | |
244 | + insertDetail.setZoneCode(inventoryDetail.getZoneCode()); | |
245 | + insertDetail.setTaskQty(new BigDecimal(0)); | |
246 | + insertDetail.setReceiptDetailId(0); | |
247 | + insertDetail.setReceiptCode("0"); | |
248 | + insertDetail.setInventorySts(QuantityConstant.GOOD); | |
249 | + inventoryDetailService.save(insertDetail); | |
250 | + adjustDetail.setInventoryDetailId(insertDetail.getId()); | |
251 | + | |
252 | + //写入库存交易 | |
253 | + //调整入 | |
254 | + InventoryTransaction inventoryTransaction = new InventoryTransaction(); | |
255 | + inventoryTransaction.setAdjustCode(adjustDetail.getAdjustCode()); | |
256 | + inventoryTransaction.setWarehouseCode(insertDetail.getWarehouseCode()); | |
257 | + inventoryTransaction.setCompanyCode(insertDetail.getCompanyCode()); | |
258 | + inventoryTransaction.setLocationCode(insertDetail.getLocationCode()); | |
259 | + inventoryTransaction.setContainerCode(insertDetail.getContainerCode()); | |
260 | + inventoryTransaction.setZoneCode(inventoryDetail.getZoneCode()); | |
261 | + inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTINTO); | |
262 | + inventoryTransaction.setMaterialCode(insertDetail.getMaterialCode()); | |
263 | + inventoryTransaction.setMaterialName(insertDetail.getMaterialName()); | |
264 | + inventoryTransaction.setMaterialSpec(insertDetail.getMaterialSpec()); | |
265 | + inventoryTransaction.setMaterialUnit(insertDetail.getMaterialUnit()); | |
266 | + inventoryTransaction.setTaskQty(adjustDetail.getToQty()); | |
267 | + inventoryTransaction.setInventorySts(insertDetail.getInventorySts());//状态 | |
268 | + inventoryTransaction.setReferCode(insertDetail.getReferCode()); | |
269 | + inventoryTransaction.setReferDetailId(insertDetail.getReferDetailId()); | |
270 | + inventoryTransaction.setBatch(insertDetail.getBatch()); | |
271 | + inventoryTransaction.setLot(insertDetail.getLot()); | |
272 | + inventoryTransaction.setProjectNo(insertDetail.getProjectNo()); | |
273 | + inventoryTransaction.setQcCheck(insertDetail.getQcCheck()); | |
274 | + inventoryTransaction.setWeight(insertDetail.getWeight()); | |
275 | + inventoryTransaction.setManufactureDate(insertDetail.getManufactureDate()); | |
276 | + inventoryTransaction.setExpirationDate(insertDetail.getExpirationDate()); | |
277 | + inventoryTransaction.setAgingDate(insertDetail.getCreated()); | |
278 | + inventoryTransaction.setAttributeId(insertDetail.getAttributeId()); | |
279 | + inventoryTransaction.setAttribute1(insertDetail.getAttribute1()); | |
280 | + inventoryTransaction.setAttribute2(insertDetail.getAttribute2()); | |
281 | + inventoryTransaction.setAttribute3(insertDetail.getAttribute3()); | |
282 | + inventoryTransaction.setCreated(new Date()); | |
283 | + inventoryTransaction.setCreatedBy(ShiroUtils.getName()); | |
284 | + inventoryTransaction.setBillDetailId(insertDetail.getReceiptDetailId()); | |
285 | + inventoryTransaction.setSupplierCode(insertDetail.getSupplierCode()); | |
286 | + inventoryTransactionService.saveOrUpdate(inventoryTransaction); | |
303 | 287 | } |
304 | - if(isFlag){ | |
305 | - return AjaxResult.success("调整库存成功!"); | |
288 | + } | |
289 | + //修改调整单明细状态 | |
290 | + adjustDetail.setStatus(3); | |
291 | + adjustDetail.setLastUpdatedBy(ShiroUtils.getName()); | |
292 | + adjustDetail.setLastUpdated(new Date()); | |
293 | + this.saveOrUpdate(adjustDetail); | |
294 | + //判断调整单明细是否全部已批准 | |
295 | + List<AdjustDetail> list = this.list(new LambdaQueryWrapper<AdjustDetail>() | |
296 | + .eq(AdjustDetail::getAdjustCode, adjustDetail.getAdjustCode())); | |
297 | + boolean isFlag = false; | |
298 | + for (AdjustDetail detail : list) { | |
299 | + if (detail.getStatus() != 3) { | |
300 | + isFlag = true; | |
306 | 301 | } |
307 | - //已批准更新 调整单头 | |
308 | - AdjustHeader adjustHeader = adjustHeaderService.getOne(new LambdaQueryWrapper<AdjustHeader>() | |
309 | - .eq(AdjustHeader::getCode, adjustDetail.getAdjustCode())); | |
310 | - adjustHeader.setProcessStamp("100"); | |
311 | - adjustHeaderService.updateById(adjustHeader); | |
302 | + } | |
303 | + if (isFlag) { | |
312 | 304 | return AjaxResult.success("调整库存成功!"); |
305 | + } | |
306 | + //已批准更新 调整单头 | |
307 | + AdjustHeader adjustHeader = adjustHeaderService.getOne(new LambdaQueryWrapper<AdjustHeader>() | |
308 | + .eq(AdjustHeader::getCode, adjustDetail.getAdjustCode())); | |
309 | + adjustHeader.setProcessStamp("100"); | |
310 | + adjustHeaderService.updateById(adjustHeader); | |
311 | + return AjaxResult.success("调整库存成功!"); | |
313 | 312 | } |
314 | 313 | |
315 | 314 | |
316 | 315 | /** |
317 | 316 | * 调整修改库存数量 |
317 | + * | |
318 | 318 | * @param adjustDetail |
319 | 319 | */ |
320 | 320 | @Transactional |
321 | - public void updateAdjustDetailNumber (AdjustDetail adjustDetail, InventoryDetail inventoryDetail){ | |
321 | + public void updateAdjustDetailNumber(AdjustDetail adjustDetail, InventoryDetail inventoryDetail) { | |
322 | 322 | /*修改库存数量,调整单据状态,写入库存交易*/ |
323 | 323 | |
324 | 324 | /*调整后的数量写入库存*/ |
325 | 325 | //比较大小可以用 .compareTo()返回值 -1 小于 0 等于 1 大于 |
326 | 326 | //Bigdecimal 自带运算方法.add加法 .subtract减法 |
327 | - if(adjustDetail.getToQty().compareTo(BigDecimal.ZERO) == 0){ | |
327 | + if (adjustDetail.getToQty().compareTo(BigDecimal.ZERO) == 0) { | |
328 | 328 | //当调整后数量为0时,直接删除该条库存,并写入库存交易 |
329 | 329 | //删除库存,并查询当前库位还有没有其他物料,没有则删除库存头,恢复容器和库位状态 |
330 | 330 | InventoryDetail inv = new InventoryDetail(); |
... | ... | @@ -334,36 +334,38 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
334 | 334 | LambdaQueryWrapper<InventoryDetail> lamdDetail = Wrappers.lambdaQuery(inv); |
335 | 335 | List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(lamdDetail); |
336 | 336 | inventoryDetailService.removeById(adjustDetail.getInventoryDetailId());//删除实际库存数量为0的库存明细 |
337 | - if(inventoryDetailList.size() == 0){ | |
337 | + if (inventoryDetailList.size() == 0) { | |
338 | 338 | //恢复库位和容器状态,删除库存头 |
339 | 339 | inventoryHeaderService.removeById(inventoryDetail.getInventoryHeaderId()); |
340 | 340 | locationService.updateContainerCodeAndStatus(inventoryDetail.getLocationCode(), |
341 | - "",QuantityConstant.STATUS_LOCATION_EMPTY); | |
341 | + "", QuantityConstant.STATUS_LOCATION_EMPTY); | |
342 | 342 | containerService.updateLocationCodeAndStatus(inventoryDetail.getContainerCode(), |
343 | - "",QuantityConstant.STATUS_CONTAINER_EMPTY); | |
343 | + "", QuantityConstant.STATUS_CONTAINER_EMPTY); | |
344 | 344 | } |
345 | - }else{ | |
345 | + } else { | |
346 | 346 | //修改库存 |
347 | 347 | //BigDecimal temp =(adjustDetail.getFromQty()).add(adjustDetail.getGapQty()); |
348 | 348 | inventoryDetail.setQty(adjustDetail.getToQty());//调整后的数量 |
349 | 349 | inventoryDetail.setLastUpdatedBy(ShiroUtils.getName()); |
350 | 350 | inventoryDetail.setLastUpdatedByName(ShiroUtils.getName()); |
351 | 351 | inventoryDetail.setLastUpdated(new Date()); |
352 | - Boolean j = inventoryDetailService.saveOrUpdate(inventoryDetail); | |
353 | - if(j == false){ | |
352 | + Boolean j = inventoryDetailService.saveOrUpdate(inventoryDetail); | |
353 | + if (j == false) { | |
354 | 354 | throw new SecurityException("调整修改库存失败!"); |
355 | - } } | |
355 | + } | |
356 | + } | |
356 | 357 | //写入库存交易记录 |
357 | 358 | InventoryTransaction inventoryTransaction = new InventoryTransaction(); |
358 | 359 | inventoryTransaction.setWarehouseCode(inventoryDetail.getWarehouseCode()); |
359 | 360 | inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); |
360 | 361 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); |
361 | 362 | inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); |
362 | - if(adjustDetail.getGapQty().compareTo(BigDecimal.ZERO) > 0) { | |
363 | - inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTINTO ); | |
363 | + if (adjustDetail.getGapQty().compareTo(BigDecimal.ZERO) > 0) { | |
364 | + inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTINTO); | |
364 | 365 | } else { |
365 | - inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTOUT ); | |
366 | + inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTOUT); | |
366 | 367 | } |
368 | + inventoryTransaction.setZoneCode(inventoryDetail.getZoneCode()); | |
367 | 369 | inventoryTransaction.setAdjustCode(adjustDetail.getAdjustCode()); |
368 | 370 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); |
369 | 371 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); |
... | ... | @@ -390,18 +392,19 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
390 | 392 | inventoryTransaction.setBillDetailId(inventoryDetail.getReceiptDetailId()); |
391 | 393 | inventoryTransaction.setSupplierCode(inventoryDetail.getSupplierCode()); |
392 | 394 | Boolean k = inventoryTransactionService.saveOrUpdate(inventoryTransaction); |
393 | - if(k == false){ | |
395 | + if (k == false) { | |
394 | 396 | throw new SecurityException("调整单库存交易生成失败!"); |
395 | 397 | } |
396 | 398 | } |
397 | 399 | |
398 | 400 | /** |
399 | 401 | * 调整库存属性 |
402 | + * | |
400 | 403 | * @param adjustDetail |
401 | 404 | */ |
402 | 405 | @Transactional |
403 | - public void updateAdjustDetailState (AdjustDetail adjustDetail, InventoryDetail inventoryDetail) { | |
404 | - /*不考虑其他只改变库存状态即可,也需要写入库存交易。*/ | |
406 | + public void updateAdjustDetailState(AdjustDetail adjustDetail, InventoryDetail inventoryDetail) { | |
407 | + /*不考虑其他只改变库存状态即可,也需要写入库存交易。*/ | |
405 | 408 | |
406 | 409 | //修改库存的状态 |
407 | 410 | inventoryDetail.setInventorySts(adjustDetail.getToInventorySts());//修改为调整库存 |
... | ... | @@ -420,7 +423,8 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
420 | 423 | inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); |
421 | 424 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); |
422 | 425 | inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); |
423 | - inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTOUT ); | |
426 | + inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTOUT); | |
427 | + inventoryTransaction.setZoneCode(inventoryDetail.getZoneCode()); | |
424 | 428 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); |
425 | 429 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); |
426 | 430 | inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec()); |
... | ... | @@ -485,10 +489,11 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
485 | 489 | |
486 | 490 | /** |
487 | 491 | * 调整插入库存 |
492 | + * | |
488 | 493 | * @param adjustDetail |
489 | 494 | */ |
490 | 495 | @Transactional |
491 | - public void updateAdjustDetailInsert (AdjustDetail adjustDetail) { | |
496 | + public void updateAdjustDetailInsert(AdjustDetail adjustDetail) { | |
492 | 497 | /*当系统库存为0时,调整单触发插入新库存状态*/ |
493 | 498 | //新生成库存头时,库位,容器都需要更新数据 |
494 | 499 | |
... | ... | @@ -499,7 +504,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
499 | 504 | ih.setContainerCode(adjustDetail.getContainerCode()); |
500 | 505 | LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(ih); |
501 | 506 | InventoryHeader inventoryHeader = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper); |
502 | - if(inventoryHeader == null){ | |
507 | + if (inventoryHeader == null) { | |
503 | 508 | //库存头为空,生成库存头 |
504 | 509 | inventoryHeader.setWarehouseCode(adjustDetail.getWarehouseCode()); |
505 | 510 | inventoryHeader.setLocationCode(adjustDetail.getLocationCode()); |
... | ... | @@ -515,9 +520,9 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
515 | 520 | inventoryHeaderService.saveOrUpdate(inventoryHeader); |
516 | 521 | //更新库位和容器 |
517 | 522 | locationService.updateContainerCodeAndStatus(inventoryHeader.getLocationCode(), |
518 | - inventoryHeader.getContainerCode(),QuantityConstant.STATUS_LOCATION_EMPTY); | |
523 | + inventoryHeader.getContainerCode(), QuantityConstant.STATUS_LOCATION_EMPTY); | |
519 | 524 | containerService.updateLocationCodeAndStatus(inventoryHeader.getContainerCode(), |
520 | - inventoryHeader.getLocationCode(),QuantityConstant.STATUS_CONTAINER_EMPTY); | |
525 | + inventoryHeader.getLocationCode(), QuantityConstant.STATUS_CONTAINER_EMPTY); | |
521 | 526 | |
522 | 527 | } |
523 | 528 | //生成库存明细 |
... | ... | @@ -567,6 +572,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
567 | 572 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); |
568 | 573 | inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); |
569 | 574 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTINTO); |
575 | + inventoryTransaction.setZoneCode(inventoryDetail.getZoneCode()); | |
570 | 576 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); |
571 | 577 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); |
572 | 578 | inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec()); |
... | ... | @@ -596,7 +602,4 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj |
596 | 602 | } |
597 | 603 | |
598 | 604 | |
599 | - | |
600 | - | |
601 | - | |
602 | 605 | } |
... | ... |
src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java
... | ... | @@ -98,7 +98,7 @@ public class InventoryHeaderController extends BaseController { |
98 | 98 | lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), InventoryHeader::getCreated, createdBegin) |
99 | 99 | .le(StringUtils.isNotEmpty(createdEnd), InventoryHeader::getCreated, createdEnd)//创建时间范围 |
100 | 100 | .eq(InventoryHeader::getWarehouseCode, ShiroUtils.getWarehouseCode())//仓库 |
101 | - .eq(StringUtils.isNotEmpty(inventoryHeader.getZoneCode()), InventoryHeader::getZoneCode, inventoryHeader.getZoneCode()) //库位 | |
101 | + .eq(StringUtils.isNotEmpty(inventoryHeader.getZoneCode()), InventoryHeader::getZoneCode, inventoryHeader.getZoneCode()) //库区 | |
102 | 102 | .eq(StringUtils.isNotEmpty(inventoryHeader.getLocationCode()), InventoryHeader::getLocationCode, inventoryHeader.getLocationCode()) //库位 |
103 | 103 | .like(StringUtils.isNotEmpty(inventoryHeader.getContainerCode()), InventoryHeader::getContainerCode, inventoryHeader.getContainerCode())//容器 |
104 | 104 | .eq(StringUtils.isNotEmpty(inventoryHeader.getCreatedBy()), InventoryHeader::getCreatedBy, inventoryHeader.getCreatedBy())//创建用户 |
... | ... | @@ -162,7 +162,7 @@ public class InventoryHeaderController extends BaseController { |
162 | 162 | BigDecimal materialQuantity = BigDecimal.ZERO; |
163 | 163 | BigDecimal materialWeight = BigDecimal.ZERO; |
164 | 164 | |
165 | - if(StrUtil.isNotBlank(dimension) && ReUtil.isMatch(pattern, dimension)){ | |
165 | + if (StrUtil.isNotBlank(dimension) && ReUtil.isMatch(pattern, dimension)) { | |
166 | 166 | String[] parts = dimension.split("x"); |
167 | 167 | double length = Double.parseDouble(parts[0]); |
168 | 168 | double width = Double.parseDouble(parts[1]); |
... | ... | @@ -177,12 +177,12 @@ public class InventoryHeaderController extends BaseController { |
177 | 177 | } |
178 | 178 | |
179 | 179 | |
180 | - if(materialQuantity.compareTo(BigDecimal.ZERO) > 0){ | |
181 | - if(materialVolume.compareTo(BigDecimal.ZERO) > 0){ | |
180 | + if (materialQuantity.compareTo(BigDecimal.ZERO) > 0) { | |
181 | + if (materialVolume.compareTo(BigDecimal.ZERO) > 0) { | |
182 | 182 | materialVolumeList.add(NumberUtil.mul(materialVolume, materialQuantity)); |
183 | 183 | |
184 | 184 | } |
185 | - if(materialWeight.compareTo(BigDecimal.ZERO) > 0 ){ | |
185 | + if (materialWeight.compareTo(BigDecimal.ZERO) > 0) { | |
186 | 186 | materialWeightList.add(NumberUtil.mul(materialWeight, materialQuantity)); |
187 | 187 | } |
188 | 188 | } |
... | ... | @@ -191,11 +191,11 @@ public class InventoryHeaderController extends BaseController { |
191 | 191 | |
192 | 192 | BigDecimal materialVolume = materialVolumeList.stream() |
193 | 193 | .reduce(BigDecimal.ZERO, BigDecimal::add) |
194 | - .divide(palletVolume,4,RoundingMode.HALF_UP); | |
194 | + .divide(palletVolume, 4, RoundingMode.HALF_UP); | |
195 | 195 | |
196 | 196 | BigDecimal materialWeight = materialWeightList.stream() |
197 | 197 | .reduce(BigDecimal.ZERO, BigDecimal::add) |
198 | - .divide(palletWeightCapacity,4,RoundingMode.HALF_UP); | |
198 | + .divide(palletWeightCapacity, 4, RoundingMode.HALF_UP); | |
199 | 199 | |
200 | 200 | String materialVolumePercentage = percentageFormat.format(materialVolume); |
201 | 201 | String materialWeightPercentage = percentageFormat.format(materialWeight); |
... | ... | @@ -213,7 +213,6 @@ public class InventoryHeaderController extends BaseController { |
213 | 213 | } |
214 | 214 | |
215 | 215 | |
216 | - | |
217 | 216 | /** |
218 | 217 | * 盘点库存主列表 |
219 | 218 | */ |
... | ... |
src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java
... | ... | @@ -14,6 +14,7 @@ import com.huaheng.framework.web.page.TableDataInfo; |
14 | 14 | import com.huaheng.framework.web.page.TableSupport; |
15 | 15 | import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; |
16 | 16 | import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; |
17 | +import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; | |
17 | 18 | import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; |
18 | 19 | import com.huaheng.pc.inventory.inventoryTransaction.domain.InventoryTransaction; |
19 | 20 | import com.huaheng.pc.inventory.inventoryTransaction.service.InventoryTransactionService; |
... | ... | @@ -87,6 +88,7 @@ public class InventoryTransactionController extends BaseController { |
87 | 88 | .like(StringUtils.isNotEmpty(inventoryTransaction.getCreatedBy()), InventoryTransaction::getCreatedBy, inventoryTransaction.getCreatedBy())//创建用户 |
88 | 89 | .eq(StringUtils.isNotEmpty(inventoryTransaction.getWarehouse()), InventoryTransaction::getWarehouse, inventoryTransaction.getWarehouse()) //原仓库编码 |
89 | 90 | .like(StringUtils.isNotEmpty(inventoryTransaction.getWarehouseName()), InventoryTransaction::getWarehouseName, inventoryTransaction.getWarehouseName()) //原仓库名称 |
91 | + .eq(StringUtils.isNotEmpty(inventoryTransaction.getZoneCode()), InventoryTransaction::getZoneCode, inventoryTransaction.getZoneCode()) //库区 | |
90 | 92 | //货主 |
91 | 93 | .in(InventoryTransaction::getCompanyCode, ShiroUtils.getCompanyCodeList()) |
92 | 94 | .orderByDesc(InventoryTransaction::getId); |
... | ... |
src/main/java/com/huaheng/pc/inventory/inventoryTransaction/domain/InventoryTransaction.java
... | ... | @@ -330,5 +330,10 @@ public class InventoryTransaction implements Serializable { |
330 | 330 | @TableField(value = "isFlatWarehouse") |
331 | 331 | @ApiModelProperty(value = "是否平库,1为平库") |
332 | 332 | private Integer isFlatWarehouse; |
333 | - | |
333 | + /** | |
334 | + * 库区 | |
335 | + */ | |
336 | + @TableField(value = "zoneCode") | |
337 | + @ApiModelProperty(value = "库区") | |
338 | + private String zoneCode; | |
334 | 339 | } |
... | ... |
src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
... | ... | @@ -110,7 +110,7 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei |
110 | 110 | SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); |
111 | 111 | LambdaQueryWrapper<ReceiptHeader> lambda = Wrappers.lambdaQuery(); |
112 | 112 | lambda.select(ReceiptHeader::getCode).eq(ReceiptHeader::getReceiptType, receiptType) |
113 | - .inSql(ReceiptHeader::getCode, "select code from receipt_header where code like '"+receiptType+"%'") | |
113 | + .inSql(ReceiptHeader::getCode, "select code from receipt_header where code like '" + receiptType + "%'") | |
114 | 114 | .orderByDesc(ReceiptHeader::getId).last("Limit 1"); |
115 | 115 | //如果指定类型的最后的code存在,并且日期一致。那么 code = 入库单类型 + 年月日 + (排序号 + 1) |
116 | 116 | String maxCode = null; |
... | ... | @@ -127,12 +127,12 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei |
127 | 127 | Integer Count = Integer.valueOf(maxCode.substring(maxCode.length() - 5, maxCode.length())); |
128 | 128 | code = receiptType + df.format(now) + String.format("%05d", Count + i++); |
129 | 129 | } else { |
130 | - code = receiptType + df.format(now) + String.format("%05d", 0000+i++); | |
130 | + code = receiptType + df.format(now) + String.format("%05d", 0000 + i++); | |
131 | 131 | } |
132 | 132 | aa.select(ReceiptHeaderHistory::getCode).eq(ReceiptHeaderHistory::getCode, code); |
133 | 133 | List<ReceiptHeaderHistory> list = receiptheaderhistoryMapper.selectList(aa); |
134 | 134 | if (list.size() <= 0) { |
135 | - i=0; | |
135 | + i = 0; | |
136 | 136 | } |
137 | 137 | } |
138 | 138 | return code; |
... | ... | @@ -484,6 +484,7 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei |
484 | 484 | inventoryTransaction.setLocationCode(locationCode); |
485 | 485 | inventoryTransaction.setContainerCode(containerCode); |
486 | 486 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_RECEIPT); |
487 | + inventoryTransaction.setZoneCode("未知库区"); | |
487 | 488 | inventoryTransaction.setMaterialCode(receiptDetail.getMaterialCode()); |
488 | 489 | inventoryTransaction.setMaterialName(receiptDetail.getMaterialName()); |
489 | 490 | inventoryTransaction.setMaterialSpec(receiptDetail.getMaterialSpec()); |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentHeader/controller/ShipmentHeaderController.java
... | ... | @@ -26,6 +26,7 @@ import com.huaheng.pc.config.waveMaster.service.WaveMasterService; |
26 | 26 | import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; |
27 | 27 | import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; |
28 | 28 | import com.huaheng.pc.momLog.service.IMomLogService; |
29 | +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | |
29 | 30 | import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; |
30 | 31 | import com.huaheng.pc.shipment.shipmentContainerDetail.service.ShipmentContainerDetailService; |
31 | 32 | import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; |
... | ... | @@ -47,10 +48,7 @@ import javax.annotation.Resource; |
47 | 48 | import java.lang.reflect.InvocationTargetException; |
48 | 49 | import java.math.BigDecimal; |
49 | 50 | import java.text.SimpleDateFormat; |
50 | -import java.util.ArrayList; | |
51 | -import java.util.Arrays; | |
52 | -import java.util.Date; | |
53 | -import java.util.List; | |
51 | +import java.util.*; | |
54 | 52 | |
55 | 53 | |
56 | 54 | /** |
... | ... | @@ -182,6 +180,7 @@ public class ShipmentHeaderController extends BaseController { |
182 | 180 | .eq(shipmentHeader.getFirstStatus() != null, ShipmentHeader::getFirstStatus, shipmentHeader.getFirstStatus()) |
183 | 181 | .eq(shipmentHeader.getLastStatus() != null, ShipmentHeader::getLastStatus, shipmentHeader.getLastStatus()) |
184 | 182 | .eq(StringUtils.isNotNull(shipmentHeader.getPushSuccessStatus()), ShipmentHeader::getPushSuccessStatus, shipmentHeader.getPushSuccessStatus()) |
183 | + .like(StringUtils.isNotEmpty(shipmentHeader.getMaterialColor()), ShipmentHeader::getMaterialColor, shipmentHeader.getMaterialColor()) | |
185 | 184 | .eq(ShipmentHeader::getDeleted, 0) |
186 | 185 | .orderByAsc(ShipmentHeader::getLastStatus) |
187 | 186 | .orderByAsc(ShipmentHeader::getRequestedStartDate) |
... | ... | @@ -511,7 +510,7 @@ public class ShipmentHeaderController extends BaseController { |
511 | 510 | LambdaQueryWrapper<ShipmentHeader> headerWrapper = Wrappers.lambdaQuery(); |
512 | 511 | headerWrapper.in(ShipmentHeader::getId, headerIdArr); |
513 | 512 | List<ShipmentHeader> shipmentHeaderList = shipmentHeaderService.list(headerWrapper); |
514 | - if (shipmentHeaderList.size() < 1) { | |
513 | + if (shipmentHeaderList.isEmpty()) { | |
515 | 514 | throw new ServiceException("单据主表不存在!!!"); |
516 | 515 | } |
517 | 516 | shipmentHeaderList.forEach(shipmentHeader -> { |
... | ... | @@ -540,7 +539,17 @@ public class ShipmentHeaderController extends BaseController { |
540 | 539 | shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_BUILD); |
541 | 540 | StringBuilder recordID = new StringBuilder(); |
542 | 541 | StringBuilder workShops = new StringBuilder(); |
543 | - shipmentHeaderList.forEach(header -> workShops.append(header.getWorkshop()).append(",")); | |
542 | + Set<String> uniqueWorkshops = new HashSet<>(); | |
543 | + for (ShipmentHeader header : shipmentHeaderList) { | |
544 | + uniqueWorkshops.add(header.getWorkshop()); | |
545 | + } | |
546 | + for (String workshop : uniqueWorkshops) { | |
547 | + workShops.append(workshop).append(","); | |
548 | + } | |
549 | + // 移除最后一个逗号 | |
550 | + if (workShops.length() > 0) { | |
551 | + workShops.setLength(workShops.length() - 1); | |
552 | + } | |
544 | 553 | shipmentHeaderList.forEach(header -> recordID.append(header.getId()).append(",")); |
545 | 554 | shipmentHeader.setWorkshop(workShops.toString()); |
546 | 555 | shipmentHeader.setRecordID(recordID.toString()); |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentHeader/domain/ShipmentHeader.java
... | ... | @@ -529,4 +529,11 @@ public class ShipmentHeader implements Serializable { |
529 | 529 | @TableField(value = "ISMOM") |
530 | 530 | @ApiModelProperty(value = "ISMOM") |
531 | 531 | private String ISMOM; |
532 | + | |
533 | + /** | |
534 | + * 物料颜色 | |
535 | + */ | |
536 | + @TableField(value = "materialColor") | |
537 | + @ApiModelProperty(value = "物料颜色") | |
538 | + public String materialColor; | |
532 | 539 | } |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentHeaderHistory/controller/ShipmentHeaderHistoryController.java
... | ... | @@ -40,183 +40,181 @@ import java.util.List; |
40 | 40 | */ |
41 | 41 | @Controller |
42 | 42 | @RequestMapping("/shipment/shipmentHeaderHistory") |
43 | -public class ShipmentHeaderHistoryController extends BaseController | |
44 | -{ | |
43 | +public class ShipmentHeaderHistoryController extends BaseController { | |
45 | 44 | private String prefix = "shipment/shipmentHeaderHistory"; |
46 | 45 | |
47 | - @Autowired | |
48 | - private ShipmentHeaderHistoryService shipmentHeaderHistoryService; | |
49 | - @Autowired | |
50 | - private ShipmentDetailHistoryService shipmentDetailHistoryService; | |
51 | - | |
52 | - | |
53 | - @RequiresPermissions("shipment:bill:view") | |
54 | - @GetMapping() | |
55 | - public String shipmentHeaderHistory() | |
56 | - { | |
57 | - return prefix + "/shipmentHeaderHistory"; | |
58 | - } | |
59 | - | |
60 | - /** | |
61 | - * 查询出库单主列表 | |
62 | - */ | |
63 | - @RequiresPermissions("shipment:bill:list") | |
64 | - @Log(title = "出库-出库单历史", operating="查看历史出库主单", action = BusinessType.GRANT) | |
65 | - @PostMapping("/list") | |
66 | - @ResponseBody | |
67 | - public TableDataInfo list(ShipmentHeaderHistory shipmentHeader, String createdBegin, String createdEnd, String deliveryDate, String startDate,String importDate) { | |
68 | - LambdaQueryWrapper<ShipmentHeaderHistory> lambdaQueryWrapper = Wrappers.lambdaQuery(); | |
69 | - PageDomain pageDomain = TableSupport.buildPageRequest(); | |
70 | - Integer pageNum = pageDomain.getPageNum(); | |
71 | - Integer pageSize = pageDomain.getPageSize(); | |
72 | - Date date1 = null; | |
73 | - Date date2 = null; | |
74 | - Date date3 = null; | |
75 | - try { | |
76 | - if (StringUtils.isNotNull(deliveryDate)) { | |
77 | - date1 = new SimpleDateFormat("yyyy-MM-dd").parse(deliveryDate); | |
78 | - }else { | |
79 | - date1 = null; | |
80 | - } | |
81 | - } catch (java.text.ParseException e) { | |
82 | - //LOGGER.error("时间转换错误, string = {}", deliveryDate, e); | |
83 | - } | |
84 | - | |
85 | - try { | |
86 | - if (StringUtils.isNotNull(startDate)) { | |
87 | - date2 = new SimpleDateFormat("yyyy-MM-dd").parse(startDate); | |
88 | - }else { | |
89 | - date2 = null; | |
90 | - } | |
91 | - } catch (java.text.ParseException e) { | |
92 | - } | |
93 | - try { | |
94 | - if (StringUtils.isNotNull(importDate)) { | |
95 | - date3 = new SimpleDateFormat("yyyy-MM-dd").parse(importDate); | |
96 | - } else { | |
97 | - date3 = null; | |
98 | - } | |
99 | - } catch (java.text.ParseException e) { | |
100 | - } | |
101 | - Date startTime1 = date1; | |
102 | - Date endTime1 = null; | |
103 | - if(startTime1!=null){ | |
104 | - //获取当前时间 | |
105 | - endTime1 = DateUtils.dateAddNum(startTime1, 1,0,-1); | |
106 | - } | |
107 | - | |
108 | - Date startTime2 = date2; | |
109 | - Date endTime2 = null; | |
110 | - if(startTime2!=null){ | |
111 | - //获取当前时间 | |
112 | - endTime2 = DateUtils.dateAddNum(startTime2, 1,0,-1); | |
113 | - } | |
114 | - Date startTime3 = date3; | |
115 | - Date endTime3 = null; | |
116 | - if (startTime3 != null) { | |
117 | - //获取当前时间 | |
118 | - endTime3 = DateUtils.dateAddNum(startTime3, 1, 0, -1); | |
119 | - } | |
120 | - | |
121 | - lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin),ShipmentHeaderHistory::getCreated, createdBegin) | |
122 | - .le(StringUtils.isNotEmpty(createdEnd), ShipmentHeaderHistory::getCreated, createdEnd) | |
123 | - .eq(ShipmentHeaderHistory::getWarehouseCode,ShiroUtils.getWarehouseCode()) | |
124 | - .eq(ShipmentHeaderHistory::getDeleted,false) | |
46 | + @Autowired | |
47 | + private ShipmentHeaderHistoryService shipmentHeaderHistoryService; | |
48 | + @Autowired | |
49 | + private ShipmentDetailHistoryService shipmentDetailHistoryService; | |
50 | + | |
51 | + | |
52 | + @RequiresPermissions("shipment:bill:view") | |
53 | + @GetMapping() | |
54 | + public String shipmentHeaderHistory() { | |
55 | + return prefix + "/shipmentHeaderHistory"; | |
56 | + } | |
57 | + | |
58 | + /** | |
59 | + * 查询出库单主列表 | |
60 | + */ | |
61 | + @RequiresPermissions("shipment:bill:list") | |
62 | + @Log(title = "出库-出库单历史", operating = "查看历史出库主单", action = BusinessType.GRANT) | |
63 | + @PostMapping("/list") | |
64 | + @ResponseBody | |
65 | + public TableDataInfo list(ShipmentHeaderHistory shipmentHeader, String createdBegin, String createdEnd, String deliveryDate, String startDate, String importDate) { | |
66 | + LambdaQueryWrapper<ShipmentHeaderHistory> lambdaQueryWrapper = Wrappers.lambdaQuery(); | |
67 | + PageDomain pageDomain = TableSupport.buildPageRequest(); | |
68 | + Integer pageNum = pageDomain.getPageNum(); | |
69 | + Integer pageSize = pageDomain.getPageSize(); | |
70 | + Date date1 = null; | |
71 | + Date date2 = null; | |
72 | + Date date3 = null; | |
73 | + try { | |
74 | + if (StringUtils.isNotNull(deliveryDate)) { | |
75 | + date1 = new SimpleDateFormat("yyyy-MM-dd").parse(deliveryDate); | |
76 | + } else { | |
77 | + date1 = null; | |
78 | + } | |
79 | + } catch (java.text.ParseException e) { | |
80 | + //LOGGER.error("时间转换错误, string = {}", deliveryDate, e); | |
81 | + } | |
82 | + | |
83 | + try { | |
84 | + if (StringUtils.isNotNull(startDate)) { | |
85 | + date2 = new SimpleDateFormat("yyyy-MM-dd").parse(startDate); | |
86 | + } else { | |
87 | + date2 = null; | |
88 | + } | |
89 | + } catch (java.text.ParseException e) { | |
90 | + } | |
91 | + try { | |
92 | + if (StringUtils.isNotNull(importDate)) { | |
93 | + date3 = new SimpleDateFormat("yyyy-MM-dd").parse(importDate); | |
94 | + } else { | |
95 | + date3 = null; | |
96 | + } | |
97 | + } catch (java.text.ParseException e) { | |
98 | + } | |
99 | + Date startTime1 = date1; | |
100 | + Date endTime1 = null; | |
101 | + if (startTime1 != null) { | |
102 | + //获取当前时间 | |
103 | + endTime1 = DateUtils.dateAddNum(startTime1, 1, 0, -1); | |
104 | + } | |
105 | + | |
106 | + Date startTime2 = date2; | |
107 | + Date endTime2 = null; | |
108 | + if (startTime2 != null) { | |
109 | + //获取当前时间 | |
110 | + endTime2 = DateUtils.dateAddNum(startTime2, 1, 0, -1); | |
111 | + } | |
112 | + Date startTime3 = date3; | |
113 | + Date endTime3 = null; | |
114 | + if (startTime3 != null) { | |
115 | + //获取当前时间 | |
116 | + endTime3 = DateUtils.dateAddNum(startTime3, 1, 0, -1); | |
117 | + } | |
118 | + | |
119 | + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), ShipmentHeaderHistory::getCreated, createdBegin) | |
120 | + .le(StringUtils.isNotEmpty(createdEnd), ShipmentHeaderHistory::getCreated, createdEnd) | |
121 | + .eq(ShipmentHeaderHistory::getWarehouseCode, ShiroUtils.getWarehouseCode()) | |
122 | + .eq(ShipmentHeaderHistory::getDeleted, false) | |
125 | 123 | // .eq(date != null,ShipmentHeader::getRequestedDeliveryDate,date) |
126 | - .inSql(StringUtils.isNotEmpty(shipmentHeader.getNoticeNo()),ShipmentHeaderHistory::getId,"select DISTINCT shipmentId from shipment_detail_history where noticeNo like '%"+shipmentHeader.getNoticeNo()+"%'") | |
127 | - .in(StringUtils.isNotEmpty(shipmentHeader.getCompanyCode()),ShipmentHeaderHistory::getCompanyCode, shipmentHeader.getCompanyCode()) | |
128 | - .in(StringUtils.isEmpty(shipmentHeader.getCompanyCode()), ShipmentHeaderHistory::getCompanyCode, ShiroUtils.getCompanyCodeList()) | |
129 | - .inSql(StringUtils.isNotEmpty(shipmentHeader.getCode()),ShipmentHeaderHistory::getCode,"select DISTINCT shipmentCode from shipment_detail_history where recordCode = '"+shipmentHeader.getCode()+"' UNION SELECT DISTINCT shipmentCode FROM shipment_detail_history WHERE shipmentCode like '%" + shipmentHeader.getCode() + "%'") | |
130 | - //.inSql(StringUtils.isNotEmpty(shipmentHeader.getWorkshop()), ShipmentHeaderHistory::getId, "select DISTINCT shipmentId from shipment_detail_history where preMergerWorkshop like '%" + shipmentHeader.getWorkshop() + "%'") | |
131 | - //.or() | |
132 | - .like(StringUtils.isNotEmpty(shipmentHeader.getWorkshop()), ShipmentHeaderHistory::getWorkshop, shipmentHeader.getWorkshop()) | |
133 | - .like(StringUtils.isNotEmpty(shipmentHeader.getLastUpdatedBy()), ShipmentHeaderHistory::getLastUpdatedBy, shipmentHeader.getLastUpdatedBy()) | |
134 | - .like(StringUtils.isNotEmpty(shipmentHeader.getShipmentNote()), ShipmentHeaderHistory::getShipmentNote, shipmentHeader.getShipmentNote()) | |
135 | - .eq(StringUtils.isNotEmpty(shipmentHeader.getShipmentType()),ShipmentHeaderHistory::getShipmentType,shipmentHeader.getShipmentType()) | |
136 | - .like(StringUtils.isNotEmpty(shipmentHeader.getProcessType()), ShipmentHeaderHistory::getProcessType, shipmentHeader.getProcessType()) | |
137 | - .eq(StringUtils.isNotEmpty(shipmentHeader.getReferCode()), ShipmentHeaderHistory::getReferCode, shipmentHeader.getReferCode()) | |
138 | - .like(StringUtils.isNotEmpty(shipmentHeader.getTransferWarehouseName()), ShipmentHeaderHistory::getTransferWarehouseName, shipmentHeader.getTransferWarehouseName()) | |
139 | - .eq(StringUtils.isNotEmpty(shipmentHeader.getReferCodeType()), ShipmentHeaderHistory::getReferCodeType, shipmentHeader.getReferCodeType()) | |
140 | - .like(StringUtils.isNotEmpty(shipmentHeader.getOrigin()), ShipmentHeaderHistory::getOrigin, shipmentHeader.getOrigin()) | |
141 | - .between(StringUtils.isNotNull(startTime1), ShipmentHeaderHistory::getRequestedDeliveryDate, startTime1,endTime1) | |
142 | - .between(StringUtils.isNotNull(startTime2), ShipmentHeaderHistory::getRequestedStartDate, startTime2,endTime2) | |
143 | - .between(StringUtils.isNotNull(startTime3), ShipmentHeaderHistory::getDailyScheduleImportDate, startTime3, endTime3) | |
144 | - .eq(shipmentHeader.getFirstStatus()!=null, ShipmentHeaderHistory::getFirstStatus, shipmentHeader.getFirstStatus()) | |
145 | - .eq(shipmentHeader.getLastStatus()!=null, ShipmentHeaderHistory::getLastStatus, shipmentHeader.getLastStatus()) | |
146 | - .eq(StringUtils.isNotNull(shipmentHeader.getPushSuccessStatus()),ShipmentHeaderHistory::getPushSuccessStatus,shipmentHeader.getPushSuccessStatus()) | |
147 | - .eq(ShipmentHeaderHistory::getDeleted,0) | |
148 | - //.orderByAsc(ShipmentHeaderHistory::getLastUpdated) | |
149 | - //.orderByAsc(ShipmentHeaderHistory::getLastStatus) | |
150 | - //.orderByAsc(ShipmentHeaderHistory::getRequestedStartDate) | |
151 | - //.orderByAsc(ShipmentHeaderHistory::getCreated); | |
152 | - .orderByDesc(ShipmentHeaderHistory::getLastUpdated); | |
153 | - | |
154 | - if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ | |
155 | - /** | |
156 | - * 使用分页查询 | |
157 | - */ | |
158 | - Page<ShipmentHeaderHistory> page = new Page<>(pageNum, pageSize); | |
159 | - IPage<ShipmentHeaderHistory> iPage = shipmentHeaderHistoryService.page(page, lambdaQueryWrapper); | |
160 | - return getMpDataTable(iPage.getRecords(),iPage.getTotal()); | |
161 | - } else { | |
162 | - List<ShipmentHeaderHistory> list = shipmentHeaderHistoryService.list(lambdaQueryWrapper); | |
163 | - return getDataTable(list); | |
164 | - } | |
165 | - } | |
166 | - | |
167 | - | |
168 | - /** | |
169 | - * 删除出库单主 | |
170 | - */ | |
171 | - @RequiresPermissions("shipment:bill:remove") | |
172 | - @Log(title = "出库-历史出库单", operating="删除历史出库主单", action = BusinessType.DELETE) | |
173 | - @PostMapping( "/remove") | |
174 | - @ResponseBody | |
175 | - public AjaxResult remove(String ids) { | |
176 | - if (StringUtils.isEmpty(ids)) { | |
124 | + .inSql(StringUtils.isNotEmpty(shipmentHeader.getNoticeNo()), ShipmentHeaderHistory::getId, "select DISTINCT shipmentId from shipment_detail_history where noticeNo like '%" + shipmentHeader.getNoticeNo() + "%'") | |
125 | + .in(StringUtils.isNotEmpty(shipmentHeader.getCompanyCode()), ShipmentHeaderHistory::getCompanyCode, shipmentHeader.getCompanyCode()) | |
126 | + .in(StringUtils.isEmpty(shipmentHeader.getCompanyCode()), ShipmentHeaderHistory::getCompanyCode, ShiroUtils.getCompanyCodeList()) | |
127 | + .inSql(StringUtils.isNotEmpty(shipmentHeader.getCode()), ShipmentHeaderHistory::getCode, "select DISTINCT shipmentCode from shipment_detail_history where recordCode = '" + shipmentHeader.getCode() + "' UNION SELECT DISTINCT shipmentCode FROM shipment_detail_history WHERE shipmentCode like '%" + shipmentHeader.getCode() + "%'") | |
128 | + //.inSql(StringUtils.isNotEmpty(shipmentHeader.getWorkshop()), ShipmentHeaderHistory::getId, "select DISTINCT shipmentId from shipment_detail_history where preMergerWorkshop like '%" + shipmentHeader.getWorkshop() + "%'") | |
129 | + //.or() | |
130 | + .like(StringUtils.isNotEmpty(shipmentHeader.getWorkshop()), ShipmentHeaderHistory::getWorkshop, shipmentHeader.getWorkshop()) | |
131 | + .like(StringUtils.isNotEmpty(shipmentHeader.getLastUpdatedBy()), ShipmentHeaderHistory::getLastUpdatedBy, shipmentHeader.getLastUpdatedBy()) | |
132 | + .like(StringUtils.isNotEmpty(shipmentHeader.getShipmentNote()), ShipmentHeaderHistory::getShipmentNote, shipmentHeader.getShipmentNote()) | |
133 | + .eq(StringUtils.isNotEmpty(shipmentHeader.getShipmentType()), ShipmentHeaderHistory::getShipmentType, shipmentHeader.getShipmentType()) | |
134 | + .like(StringUtils.isNotEmpty(shipmentHeader.getProcessType()), ShipmentHeaderHistory::getProcessType, shipmentHeader.getProcessType()) | |
135 | + .eq(StringUtils.isNotEmpty(shipmentHeader.getReferCode()), ShipmentHeaderHistory::getReferCode, shipmentHeader.getReferCode()) | |
136 | + .like(StringUtils.isNotEmpty(shipmentHeader.getTransferWarehouseName()), ShipmentHeaderHistory::getTransferWarehouseName, shipmentHeader.getTransferWarehouseName()) | |
137 | + .eq(StringUtils.isNotEmpty(shipmentHeader.getReferCodeType()), ShipmentHeaderHistory::getReferCodeType, shipmentHeader.getReferCodeType()) | |
138 | + .like(StringUtils.isNotEmpty(shipmentHeader.getOrigin()), ShipmentHeaderHistory::getOrigin, shipmentHeader.getOrigin()) | |
139 | + .between(StringUtils.isNotNull(startTime1), ShipmentHeaderHistory::getRequestedDeliveryDate, startTime1, endTime1) | |
140 | + .between(StringUtils.isNotNull(startTime2), ShipmentHeaderHistory::getRequestedStartDate, startTime2, endTime2) | |
141 | + .between(StringUtils.isNotNull(startTime3), ShipmentHeaderHistory::getDailyScheduleImportDate, startTime3, endTime3) | |
142 | + .eq(shipmentHeader.getFirstStatus() != null, ShipmentHeaderHistory::getFirstStatus, shipmentHeader.getFirstStatus()) | |
143 | + .eq(shipmentHeader.getLastStatus() != null, ShipmentHeaderHistory::getLastStatus, shipmentHeader.getLastStatus()) | |
144 | + .eq(StringUtils.isNotNull(shipmentHeader.getPushSuccessStatus()), ShipmentHeaderHistory::getPushSuccessStatus, shipmentHeader.getPushSuccessStatus()) | |
145 | + .like(StringUtils.isNotEmpty(shipmentHeader.getMaterialColor()), ShipmentHeaderHistory::getMaterialColor, shipmentHeader.getMaterialColor()) | |
146 | + .eq(ShipmentHeaderHistory::getDeleted, 0) | |
147 | + //.orderByAsc(ShipmentHeaderHistory::getLastUpdated) | |
148 | + //.orderByAsc(ShipmentHeaderHistory::getLastStatus) | |
149 | + //.orderByAsc(ShipmentHeaderHistory::getRequestedStartDate) | |
150 | + //.orderByAsc(ShipmentHeaderHistory::getCreated); | |
151 | + .orderByDesc(ShipmentHeaderHistory::getLastUpdated); | |
152 | + | |
153 | + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) { | |
154 | + /** | |
155 | + * 使用分页查询 | |
156 | + */ | |
157 | + Page<ShipmentHeaderHistory> page = new Page<>(pageNum, pageSize); | |
158 | + IPage<ShipmentHeaderHistory> iPage = shipmentHeaderHistoryService.page(page, lambdaQueryWrapper); | |
159 | + return getMpDataTable(iPage.getRecords(), iPage.getTotal()); | |
160 | + } else { | |
161 | + List<ShipmentHeaderHistory> list = shipmentHeaderHistoryService.list(lambdaQueryWrapper); | |
162 | + return getDataTable(list); | |
163 | + } | |
164 | + } | |
165 | + | |
166 | + | |
167 | + /** | |
168 | + * 删除出库单主 | |
169 | + */ | |
170 | + @RequiresPermissions("shipment:bill:remove") | |
171 | + @Log(title = "出库-历史出库单", operating = "删除历史出库主单", action = BusinessType.DELETE) | |
172 | + @PostMapping("/remove") | |
173 | + @ResponseBody | |
174 | + public AjaxResult remove(String ids) { | |
175 | + if (StringUtils.isEmpty(ids)) { | |
177 | 176 | return AjaxResult.error("id不能为空"); |
178 | 177 | } |
179 | - for (Integer id : Convert.toIntArray(ids)) | |
180 | - { | |
181 | - boolean result=shipmentHeaderHistoryService.removeById(id); | |
182 | - LambdaQueryWrapper<ShipmentDetailHistory> lambdaQueryWrapper=Wrappers.lambdaQuery(); | |
183 | - lambdaQueryWrapper.eq(ShipmentDetailHistory::getShipmentId,id) | |
184 | - .eq(ShipmentDetailHistory::getWarehouseCode,ShiroUtils.getWarehouseCode()); | |
185 | - Boolean flag=true; | |
186 | - flag=shipmentDetailHistoryService.remove(lambdaQueryWrapper); | |
187 | - if(result==false){ | |
188 | - return AjaxResult.error("删除失败"); | |
189 | - } | |
190 | - } | |
191 | - return AjaxResult.success("删除成功!"); | |
192 | - } | |
193 | - | |
194 | - /** | |
195 | - * 出库单报表打印 | |
196 | - * @return | |
197 | - */ | |
198 | - @RequiresPermissions("shipment:bill:report") | |
199 | - @Log(title = "出库-历史出库单", operating="打印历史出库单报表", action = BusinessType.OTHER) | |
200 | - @GetMapping("/report/{id}") | |
201 | - public String report(@PathVariable("id") Integer id, ModelMap mmap) | |
202 | - { | |
203 | - ShipmentHeaderHistory shipmentHeaderHistory = shipmentHeaderHistoryService.getById(id); | |
204 | - mmap.put("shipmentHeader", shipmentHeaderHistory); | |
205 | - | |
206 | - LambdaQueryWrapper<ShipmentDetailHistory> lambdaQueryWrapper = Wrappers.lambdaQuery(); | |
207 | - lambdaQueryWrapper.eq(ShipmentDetailHistory::getShipmentId,id) | |
208 | - .eq(ShipmentDetailHistory::getWarehouseCode,ShiroUtils.getWarehouseCode()); | |
209 | - List<ShipmentDetailHistory> details = shipmentDetailHistoryService.list(lambdaQueryWrapper); | |
210 | - mmap.put("details", details); | |
211 | - | |
212 | - return prefix + "/report"; | |
213 | - } | |
214 | - | |
215 | - @PostMapping("/getShipmentHeader") | |
216 | - @ResponseBody | |
217 | - public AjaxResult<ShipmentHeaderHistory> getShipmentHeader(int id){ | |
218 | - return AjaxResult.success(shipmentHeaderHistoryService.getById(id)); | |
219 | - } | |
178 | + for (Integer id : Convert.toIntArray(ids)) { | |
179 | + boolean result = shipmentHeaderHistoryService.removeById(id); | |
180 | + LambdaQueryWrapper<ShipmentDetailHistory> lambdaQueryWrapper = Wrappers.lambdaQuery(); | |
181 | + lambdaQueryWrapper.eq(ShipmentDetailHistory::getShipmentId, id) | |
182 | + .eq(ShipmentDetailHistory::getWarehouseCode, ShiroUtils.getWarehouseCode()); | |
183 | + Boolean flag = true; | |
184 | + flag = shipmentDetailHistoryService.remove(lambdaQueryWrapper); | |
185 | + if (result == false) { | |
186 | + return AjaxResult.error("删除失败"); | |
187 | + } | |
188 | + } | |
189 | + return AjaxResult.success("删除成功!"); | |
190 | + } | |
191 | + | |
192 | + /** | |
193 | + * 出库单报表打印 | |
194 | + * | |
195 | + * @return | |
196 | + */ | |
197 | + @RequiresPermissions("shipment:bill:report") | |
198 | + @Log(title = "出库-历史出库单", operating = "打印历史出库单报表", action = BusinessType.OTHER) | |
199 | + @GetMapping("/report/{id}") | |
200 | + public String report(@PathVariable("id") Integer id, ModelMap mmap) { | |
201 | + ShipmentHeaderHistory shipmentHeaderHistory = shipmentHeaderHistoryService.getById(id); | |
202 | + mmap.put("shipmentHeader", shipmentHeaderHistory); | |
203 | + | |
204 | + LambdaQueryWrapper<ShipmentDetailHistory> lambdaQueryWrapper = Wrappers.lambdaQuery(); | |
205 | + lambdaQueryWrapper.eq(ShipmentDetailHistory::getShipmentId, id) | |
206 | + .eq(ShipmentDetailHistory::getWarehouseCode, ShiroUtils.getWarehouseCode()); | |
207 | + List<ShipmentDetailHistory> details = shipmentDetailHistoryService.list(lambdaQueryWrapper); | |
208 | + mmap.put("details", details); | |
209 | + | |
210 | + return prefix + "/report"; | |
211 | + } | |
212 | + | |
213 | + @PostMapping("/getShipmentHeader") | |
214 | + @ResponseBody | |
215 | + public AjaxResult<ShipmentHeaderHistory> getShipmentHeader(int id) { | |
216 | + return AjaxResult.success(shipmentHeaderHistoryService.getById(id)); | |
217 | + } | |
220 | 218 | |
221 | 219 | |
222 | 220 | } |
... | ... |
src/main/java/com/huaheng/pc/shipment/shipmentHeaderHistory/domain/ShipmentHeaderHistory.java
... | ... | @@ -485,31 +485,32 @@ public class ShipmentHeaderHistory implements Serializable { |
485 | 485 | |
486 | 486 | /** |
487 | 487 | * 回传错误次数 |
488 | + * | |
488 | 489 | * @return |
489 | 490 | */ |
490 | 491 | @TableField(value = "pushErrorCount") |
491 | - @ApiModelProperty(value="回传错误次数") | |
492 | + @ApiModelProperty(value = "回传错误次数") | |
492 | 493 | public Integer pushErrorCount; |
493 | 494 | |
494 | 495 | /** |
495 | 496 | * 错误消息 |
496 | 497 | */ |
497 | 498 | @TableField(value = "ErrorMsg") |
498 | - @ApiModelProperty(value="错误消息") | |
499 | + @ApiModelProperty(value = "错误消息") | |
499 | 500 | public String errorMsg; |
500 | 501 | |
501 | 502 | /** |
502 | 503 | * 回传状态,0默认,1成功,2失败 |
503 | 504 | */ |
504 | 505 | @TableField(value = "pushSuccessStatus") |
505 | - @ApiModelProperty(value="回传状态,0默认,1成功,2失败,3提前过账") | |
506 | + @ApiModelProperty(value = "回传状态,0默认,1成功,2失败,3提前过账") | |
506 | 507 | public Integer pushSuccessStatus; |
507 | 508 | |
508 | 509 | /** |
509 | 510 | * 来源 |
510 | 511 | */ |
511 | 512 | @TableField(value = "origin") |
512 | - @ApiModelProperty(value="来源") | |
513 | + @ApiModelProperty(value = "来源") | |
513 | 514 | public String origin; |
514 | 515 | |
515 | 516 | /** |
... | ... | @@ -530,6 +531,13 @@ public class ShipmentHeaderHistory implements Serializable { |
530 | 531 | * 入库单的最后更新时间 |
531 | 532 | */ |
532 | 533 | @TableField(value = "lastUpdateTime") |
533 | - @ApiModelProperty(value="入库单的最后更新时间") | |
534 | + @ApiModelProperty(value = "入库单的最后更新时间") | |
534 | 535 | private Date lastUpdateTime; |
536 | + | |
537 | + /** | |
538 | + * 物料颜色 | |
539 | + */ | |
540 | + @TableField(value = "materialColor") | |
541 | + @ApiModelProperty(value = "物料颜色") | |
542 | + public String materialColor; | |
535 | 543 | } |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java
... | ... | @@ -558,6 +558,7 @@ public class ReceiptTaskService { |
558 | 558 | //记录库存交易记录 |
559 | 559 | InventoryTransaction inventoryTransaction = new InventoryTransaction(); |
560 | 560 | ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId()); |
561 | + inventoryTransaction.setZoneCode(inventoryHeader.getZoneCode()); | |
561 | 562 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_RECEIPT); |
562 | 563 | inventoryTransaction.setWarehouseCode(taskDetail.getWarehouseCode()); |
563 | 564 | inventoryTransaction.setCompanyCode(taskDetail.getCompanyCode()); |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java
... | ... | @@ -359,6 +359,7 @@ public class ShipmentTaskService { |
359 | 359 | inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); |
360 | 360 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); |
361 | 361 | inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); |
362 | + inventoryTransaction.setZoneCode(inventoryHeader.getZoneCode()); | |
362 | 363 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_SHIPMENT); |
363 | 364 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); |
364 | 365 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java
... | ... | @@ -159,7 +159,7 @@ public class TransferTaskService { |
159 | 159 | // locationService.updateStatus(desLocationCode, QuantityConstant.STATUS_LOCATION_LOCK, warehouseCode); |
160 | 160 | int updateCount = locationService.updateStatusNew(desLocationCode, warehouseCode, |
161 | 161 | QuantityConstant.STATUS_LOCATION_LOCK, QuantityConstant.STATUS_LOCATION_EMPTY); |
162 | - if(updateCount != 1) { | |
162 | + if (updateCount != 1) { | |
163 | 163 | throw new ServiceException("库位已经锁定,不允许再分到这个库位"); |
164 | 164 | } |
165 | 165 | containerService.updateLocationCodeAndStatus(sourceLocation.getContainerCode(), |
... | ... | @@ -236,6 +236,7 @@ public class TransferTaskService { |
236 | 236 | inventoryTransaction.setLocationCode(taskDetail.getToLocation()); |
237 | 237 | inventoryTransaction.setContainerCode(taskDetail.getContainerCode()); |
238 | 238 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_TRANSFERINTO); |
239 | + inventoryTransaction.setZoneCode(inventoryDetail.getZoneCode()); | |
239 | 240 | inventoryTransaction.setMaterialCode(taskDetail.getMaterialCode()); |
240 | 241 | inventoryTransaction.setMaterialName(taskDetail.getMaterialName()); |
241 | 242 | inventoryTransaction.setMaterialSpec(taskDetail.getMaterialSpec()); |
... | ... | @@ -259,6 +260,7 @@ public class TransferTaskService { |
259 | 260 | inventoryTransactionService.save(inventoryTransaction); |
260 | 261 | inventoryTransaction.setLocationCode(taskDetail.getFromLocation()); |
261 | 262 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_TRANSFEROUT); |
263 | + inventoryTransaction.setZoneCode(inventoryDetail.getZoneCode()); | |
262 | 264 | inventoryTransactionService.save(inventoryTransaction); |
263 | 265 | } |
264 | 266 | if (taskDetailList.size() != 0) { |
... | ... |
src/main/resources/templates/inventory/inventoryTransaction/inventoryTransaction.html
... | ... | @@ -10,6 +10,15 @@ |
10 | 10 | <div class="select-list"> |
11 | 11 | <ul> |
12 | 12 | <li> |
13 | + 库区: | |
14 | + <select id="zoneCode" name="zoneCode" th:with="list=${@zone.getCode()}"> | |
15 | + <option value="">所有</option> | |
16 | + <option th:each="item : ${list}" th:text="${item['name']}" | |
17 | + th:value="${item['code']}" | |
18 | + th:attr=" code = ${item['code']}"></option> | |
19 | + </select> | |
20 | + </li> | |
21 | + <li> | |
13 | 22 | 库位编码:<input type="text" name="locationCode"/> |
14 | 23 | </li> |
15 | 24 | <li> |
... | ... | @@ -102,6 +111,7 @@ |
102 | 111 | var prefix = ctx + "inventory/inventoryTransaction"; |
103 | 112 | var inventoryStatus = [[${@dict.getType('inventorySts')}]]; |
104 | 113 | var warehouses = [[${@WarehouseService.getCode()}]]; |
114 | + var zone = [[${@zone.getCode()}]]; | |
105 | 115 | var inventoryTransactionType = [[${@dict.getType('inventoryTransactionType')}]]; |
106 | 116 | $(function () { |
107 | 117 | var options = { |
... | ... | @@ -148,6 +158,21 @@ |
148 | 158 | } |
149 | 159 | }, |
150 | 160 | { |
161 | + field: 'zoneCode', | |
162 | + title: '库区', | |
163 | + align: 'center', | |
164 | + formatter: function (value, row, index) { | |
165 | + var actions = []; | |
166 | + $.each(zone, function (index, dict) { | |
167 | + if (dict.code == value) { | |
168 | + actions.push("<span class='badge badge-info'>" + dict.name + "</span>"); | |
169 | + return false; | |
170 | + } | |
171 | + }); | |
172 | + return actions.join(''); | |
173 | + } | |
174 | + }, | |
175 | + { | |
151 | 176 | field: 'locationCode', |
152 | 177 | title: '库位编号' |
153 | 178 | }, |
... | ... |
src/main/resources/templates/receipt/receiving/receiving.html
... | ... | @@ -327,6 +327,19 @@ |
327 | 327 | field: 'materialUnit', |
328 | 328 | title: '单位' |
329 | 329 | }, |
330 | + { | |
331 | + field: 'isFlatWarehouse', | |
332 | + title: '仓库类型', | |
333 | + visible: true, | |
334 | + align: 'center', | |
335 | + formatter: function (value, row, index) { | |
336 | + if (value == 1) { | |
337 | + return '<span style="color:#51855c">平库</span>' | |
338 | + } else { | |
339 | + return '<span style="color:black">立库</span>' | |
340 | + } | |
341 | + } | |
342 | + }, | |
330 | 343 | |
331 | 344 | ] |
332 | 345 | }); |
... | ... |
src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html
... | ... | @@ -104,6 +104,9 @@ |
104 | 104 | </select> |
105 | 105 | </li> |
106 | 106 | <li> |
107 | + 颜色信息:<input type="text" name="materialColor"/> | |
108 | + </li> | |
109 | + <li> | |
107 | 110 | 备注:<input type="text" name="shipmentNote"/> |
108 | 111 | </li> |
109 | 112 | <li class="time"> |
... | ... | @@ -499,19 +502,22 @@ |
499 | 502 | field: 'requestedDeliveryDate', |
500 | 503 | title: '计划完成日期', |
501 | 504 | }, |
505 | + // { | |
506 | + // field: 'workshop', | |
507 | + // title: '生产车间', | |
508 | + // formatter: function (value, row, index) { | |
509 | + // var actions = []; | |
510 | + // if (value == undefined || value == '') | |
511 | + // value = " " | |
512 | + // else | |
513 | + // actions.push("<div class='textEllipsis'>" + value + "</div>") | |
514 | + // return actions.join(" ") | |
515 | + // } | |
516 | + // }, | |
502 | 517 | { |
503 | 518 | field: 'workshop', |
504 | 519 | title: '生产车间', |
505 | - formatter: function (value, row, index) { | |
506 | - var actions = []; | |
507 | - if (value == undefined || value == '') | |
508 | - value = " " | |
509 | - else | |
510 | - actions.push("<div class='textEllipsis'>" + value + "</div>") | |
511 | - return actions.join(" ") | |
512 | - } | |
513 | 520 | }, |
514 | - | |
515 | 521 | { |
516 | 522 | field: 'shipmentNote', |
517 | 523 | title: '备注', |
... | ... | @@ -591,6 +597,18 @@ |
591 | 597 | visible: true |
592 | 598 | }, |
593 | 599 | { |
600 | + field: 'materialColor', | |
601 | + title: '颜色信息', | |
602 | + formatter: function (value, row, index) { | |
603 | + var actions = []; | |
604 | + if (value == undefined || value == '') | |
605 | + value = " " | |
606 | + else | |
607 | + actions.push('<pre style="max-height:50px; white-space: pre-wrap; width:500px">' + value + '</pre>') | |
608 | + return actions.join(" ") | |
609 | + } | |
610 | + }, | |
611 | + { | |
594 | 612 | field: 'errorMsg', |
595 | 613 | title: '错误信息', |
596 | 614 | formatter: function (value, row, index) { |
... | ... |
src/main/resources/templates/shipment/shipmentHeaderHistory/shipmentHeaderHistory.html
... | ... | @@ -98,6 +98,9 @@ |
98 | 98 | </li> |
99 | 99 | </li> |
100 | 100 | <li> |
101 | + 颜色信息:<input type="text" name="materialColor"/> | |
102 | + </li> | |
103 | + <li> | |
101 | 104 | 备注:<input type="text" name="shipmentNote"/> |
102 | 105 | </li> |
103 | 106 | <li class="time"> |
... | ... | @@ -454,17 +457,21 @@ |
454 | 457 | field: 'requestedDeliveryDate', |
455 | 458 | title: '计划完成日期', |
456 | 459 | }, |
460 | + // { | |
461 | + // field: 'workshop', | |
462 | + // title: '生产车间', | |
463 | + // formatter: function(value, row, index) { | |
464 | + // var actions = []; | |
465 | + // if(value == undefined || value == '') | |
466 | + // value = " " | |
467 | + // else | |
468 | + // actions.push("<div class='textEllipsis'>"+value+"</div>") | |
469 | + // return actions.join(" ") | |
470 | + // } | |
471 | + // }, | |
457 | 472 | { |
458 | 473 | field: 'workshop', |
459 | 474 | title: '生产车间', |
460 | - formatter: function(value, row, index) { | |
461 | - var actions = []; | |
462 | - if(value == undefined || value == '') | |
463 | - value = " " | |
464 | - else | |
465 | - actions.push("<div class='textEllipsis'>"+value+"</div>") | |
466 | - return actions.join(" ") | |
467 | - } | |
468 | 475 | }, |
469 | 476 | { |
470 | 477 | field: 'shipmentNote', |
... | ... | @@ -553,6 +560,18 @@ |
553 | 560 | visible: true |
554 | 561 | }, |
555 | 562 | { |
563 | + field: 'materialColor', | |
564 | + title: '颜色信息', | |
565 | + formatter: function (value, row, index) { | |
566 | + var actions = []; | |
567 | + if (value == undefined || value == '') | |
568 | + value = " " | |
569 | + else | |
570 | + actions.push('<pre style="max-height:50px; white-space: pre-wrap; width:500px">' + value + '</pre>') | |
571 | + return actions.join(" ") | |
572 | + } | |
573 | + }, | |
574 | + { | |
556 | 575 | field: 'errorMsg', |
557 | 576 | title: '错误信息', |
558 | 577 | formatter: function (value, row, index) { |
... | ... |