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,7 +31,9 @@ import org.springframework.transaction.annotation.Transactional; | ||
31 | import javax.annotation.Resource; | 31 | import javax.annotation.Resource; |
32 | import java.math.BigDecimal; | 32 | import java.math.BigDecimal; |
33 | import java.util.ArrayList; | 33 | import java.util.ArrayList; |
34 | +import java.util.HashSet; | ||
34 | import java.util.List; | 35 | import java.util.List; |
36 | +import java.util.Set; | ||
35 | import java.util.stream.Collectors; | 37 | import java.util.stream.Collectors; |
36 | 38 | ||
37 | @Service | 39 | @Service |
@@ -186,20 +188,19 @@ public class MesServiceImpl implements IMesService { | @@ -186,20 +188,19 @@ public class MesServiceImpl implements IMesService { | ||
186 | public AjaxResult shipment(ReceiptDTO receiptDTO) { | 188 | public AjaxResult shipment(ReceiptDTO receiptDTO) { |
187 | Header header = receiptDTO.getShipmentHeader(); | 189 | Header header = receiptDTO.getShipmentHeader(); |
188 | List<Detail> details = receiptDTO.getShipemtnDetails(); | 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 | return AjaxResult.error("添加出库单: 上游单号referCode重复[ " + header.getReferCode() + " ],请勿重复添加。"); | 195 | return AjaxResult.error("添加出库单: 上游单号referCode重复[ " + header.getReferCode() + " ],请勿重复添加。"); |
195 | } | 196 | } |
196 | AjaxResult ajaxResult = new AjaxResult(); | 197 | AjaxResult ajaxResult = new AjaxResult(); |
198 | + //校验参数 | ||
197 | boolean inNull = enterIsNull(ajaxResult, header, details); | 199 | boolean inNull = enterIsNull(ajaxResult, header, details); |
198 | if (inNull) { | 200 | if (inNull) { |
199 | return ajaxResult; | 201 | return ajaxResult; |
200 | } | 202 | } |
201 | ShipmentHeader shipmentHeader = new ShipmentHeader(); | 203 | ShipmentHeader shipmentHeader = new ShipmentHeader(); |
202 | - // shipmentHeader.setId(header.getId()); | ||
203 | if (StringUtils.isNotEmpty(header.getMOMID())) { | 204 | if (StringUtils.isNotEmpty(header.getMOMID())) { |
204 | shipmentHeader.setMOMID(header.getMOMID()); | 205 | shipmentHeader.setMOMID(header.getMOMID()); |
205 | } | 206 | } |
@@ -219,14 +220,30 @@ public class MesServiceImpl implements IMesService { | @@ -219,14 +220,30 @@ public class MesServiceImpl implements IMesService { | ||
219 | shipmentHeader.setCreatorCode(header.getCreatorCode()); | 220 | shipmentHeader.setCreatorCode(header.getCreatorCode()); |
220 | shipmentHeader.setCreatorName(header.getCreatorName()); | 221 | shipmentHeader.setCreatorName(header.getCreatorName()); |
221 | shipmentHeader.setRequestedStartDate(header.getRequestedStartDate()); | 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 | if (StringUtils.isNotEmpty(header.getTransferWarehouseName())) { | 241 | if (StringUtils.isNotEmpty(header.getTransferWarehouseName())) { |
224 | shipmentHeader.setTransferWarehouseName(header.getTransferWarehouseName()); | 242 | shipmentHeader.setTransferWarehouseName(header.getTransferWarehouseName()); |
225 | } | 243 | } |
226 | if (StringUtils.isNotEmpty(header.getTransferWarehouseCode())) { | 244 | if (StringUtils.isNotEmpty(header.getTransferWarehouseCode())) { |
227 | shipmentHeader.setTransferWarehouseCode(header.getTransferWarehouseCode()); | 245 | shipmentHeader.setTransferWarehouseCode(header.getTransferWarehouseCode()); |
228 | } | 246 | } |
229 | - shipmentHeader.setSuperiorName(header.getSuperiorName()); | ||
230 | shipmentHeader.setShipmentNote(header.getShipmentNote()); | 247 | shipmentHeader.setShipmentNote(header.getShipmentNote()); |
231 | shipmentHeader.setRequestedDeliveryDate(header.getRequestedDeliveryDate()); | 248 | shipmentHeader.setRequestedDeliveryDate(header.getRequestedDeliveryDate()); |
232 | if (StringUtils.isNotEmpty(header.getTransferWarehouseCode())) { | 249 | if (StringUtils.isNotEmpty(header.getTransferWarehouseCode())) { |
@@ -295,6 +312,10 @@ public class MesServiceImpl implements IMesService { | @@ -295,6 +312,10 @@ public class MesServiceImpl implements IMesService { | ||
295 | if (!success) { | 312 | if (!success) { |
296 | throw new ServiceException("生成出库单详情失败"); | 313 | throw new ServiceException("生成出库单详情失败"); |
297 | } | 314 | } |
315 | + | ||
316 | + | ||
317 | + //如果通知单号和车间、仓库相同,自动合并单据 | ||
318 | + | ||
298 | return AjaxResult.success(receiptDTO); | 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,7 +40,6 @@ import java.util.List; | ||
40 | public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, AdjustDetail> implements AdjustDetailService { | 40 | public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, AdjustDetail> implements AdjustDetailService { |
41 | 41 | ||
42 | 42 | ||
43 | - | ||
44 | @Resource | 43 | @Resource |
45 | private CycleCountDetailService cycleCountDetailService; | 44 | private CycleCountDetailService cycleCountDetailService; |
46 | @Resource | 45 | @Resource |
@@ -61,12 +60,9 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -61,12 +60,9 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
61 | private ContainerService containerService; | 60 | private ContainerService containerService; |
62 | 61 | ||
63 | 62 | ||
64 | - | ||
65 | - | ||
66 | - | ||
67 | - | ||
68 | /** | 63 | /** |
69 | - *新增调整明细 | 64 | + * 新增调整明细 |
65 | + * | ||
70 | * @param adjustDetail | 66 | * @param adjustDetail |
71 | * @return | 67 | * @return |
72 | */ | 68 | */ |
@@ -82,38 +78,38 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -82,38 +78,38 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
82 | LambdaQueryWrapper<AdjustHeader> lambdaQueryWrapper = Wrappers.lambdaQuery(adjustHeader); | 78 | LambdaQueryWrapper<AdjustHeader> lambdaQueryWrapper = Wrappers.lambdaQuery(adjustHeader); |
83 | adjustHeader = adjustHeaderService.getOne(lambdaQueryWrapper); | 79 | adjustHeader = adjustHeaderService.getOne(lambdaQueryWrapper); |
84 | //检查库存 | 80 | //检查库存 |
85 | - if((adjustDetail.getInventoryDetailId()) != null){ | 81 | + if ((adjustDetail.getInventoryDetailId()) != null) { |
86 | InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); | 82 | InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); |
87 | - if(inventoryDetail == null){ | 83 | + if (inventoryDetail == null) { |
88 | return AjaxResult.error("没有该条库存明细"); | 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 | adjustDetail.setCycleCountHeaderCode(adjustHeader.getCycleCountHeaderCode()); | 89 | adjustDetail.setCycleCountHeaderCode(adjustHeader.getCycleCountHeaderCode()); |
94 | adjustDetail.setCheckCode(adjustHeader.getCheckCode()); | 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 | CheckDetail checkDetail = checkDetailService.getById(adjustDetail.getCheckDetailId()); | 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 | return AjaxResult.error("质检单错误,请核对质检单据!"); | 103 | return AjaxResult.error("质检单错误,请核对质检单据!"); |
108 | } | 104 | } |
109 | } | 105 | } |
110 | //检查物料 | 106 | //检查物料 |
111 | Material material = materialService.getMaterialByCode(adjustDetail.getMaterialCode()); | 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 | return AjaxResult.error("物料编码错误!"); | 113 | return AjaxResult.error("物料编码错误!"); |
118 | } | 114 | } |
119 | //调整数量 | 115 | //调整数量 |
@@ -133,6 +129,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -133,6 +129,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
133 | 129 | ||
134 | /** | 130 | /** |
135 | * 调整审批 | 131 | * 调整审批 |
132 | + * | ||
136 | * @param adjustDetail | 133 | * @param adjustDetail |
137 | * @return | 134 | * @return |
138 | */ | 135 | */ |
@@ -140,7 +137,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -140,7 +137,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
140 | @Override | 137 | @Override |
141 | public AjaxResult adjustAgree(AdjustDetail adjustDetail) { | 138 | public AjaxResult adjustAgree(AdjustDetail adjustDetail) { |
142 | //修改状态,审批人栏填入名称,修改状态 | 139 | //修改状态,审批人栏填入名称,修改状态 |
143 | - if(adjustDetail.getStatus() > 1){ | 140 | + if (adjustDetail.getStatus() > 1) { |
144 | return AjaxResult.error("单据状态无法审批!"); | 141 | return AjaxResult.error("单据状态无法审批!"); |
145 | } | 142 | } |
146 | adjustDetail.setAgreeBy(ShiroUtils.getName()); | 143 | adjustDetail.setAgreeBy(ShiroUtils.getName()); |
@@ -155,17 +152,17 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -155,17 +152,17 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
155 | 152 | ||
156 | /** | 153 | /** |
157 | * 修改调整数量 | 154 | * 修改调整数量 |
158 | - * */ | 155 | + */ |
159 | @Override | 156 | @Override |
160 | public AjaxResult editSave(AdjustDetail adjustDetail) { | 157 | public AjaxResult editSave(AdjustDetail adjustDetail) { |
161 | - //调整数量和货主,供应商 | ||
162 | - //根据ID修改 | 158 | + //调整数量和货主,供应商 |
159 | + //根据ID修改 | ||
163 | BigDecimal t = adjustDetail.getToQty().subtract(adjustDetail.getFromQty()); | 160 | BigDecimal t = adjustDetail.getToQty().subtract(adjustDetail.getFromQty()); |
164 | adjustDetail.setGapQty(t); | 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 | return AjaxResult.success("修改成功"); | 166 | return AjaxResult.success("修改成功"); |
170 | } | 167 | } |
171 | 168 | ||
@@ -174,157 +171,160 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -174,157 +171,160 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
174 | * 调整库存 | 171 | * 调整库存 |
175 | * 调整数量,调整库存状态 | 172 | * 调整数量,调整库存状态 |
176 | * 调整插入库存 | 173 | * 调整插入库存 |
174 | + * | ||
177 | * @param adjustDetail | 175 | * @param adjustDetail |
178 | * @return | 176 | * @return |
179 | */ | 177 | */ |
180 | @Transactional | 178 | @Transactional |
181 | @Override | 179 | @Override |
182 | public AjaxResult updateAdjustDetail(AdjustDetail adjustDetail) { | 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 | String containerCode = adjustDetail.getContainerCode(); | 184 | String containerCode = adjustDetail.getContainerCode(); |
187 | Container container = containerService.getContainerByCode(containerCode); | 185 | Container container = containerService.getContainerByCode(containerCode); |
188 | adjustDetail.setLocationCode(container.getLocationCode()); | 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 | return AjaxResult.success("调整库存成功!"); | 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 | * @param adjustDetail | 318 | * @param adjustDetail |
319 | */ | 319 | */ |
320 | @Transactional | 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 | //比较大小可以用 .compareTo()返回值 -1 小于 0 等于 1 大于 | 325 | //比较大小可以用 .compareTo()返回值 -1 小于 0 等于 1 大于 |
326 | //Bigdecimal 自带运算方法.add加法 .subtract减法 | 326 | //Bigdecimal 自带运算方法.add加法 .subtract减法 |
327 | - if(adjustDetail.getToQty().compareTo(BigDecimal.ZERO) == 0){ | 327 | + if (adjustDetail.getToQty().compareTo(BigDecimal.ZERO) == 0) { |
328 | //当调整后数量为0时,直接删除该条库存,并写入库存交易 | 328 | //当调整后数量为0时,直接删除该条库存,并写入库存交易 |
329 | //删除库存,并查询当前库位还有没有其他物料,没有则删除库存头,恢复容器和库位状态 | 329 | //删除库存,并查询当前库位还有没有其他物料,没有则删除库存头,恢复容器和库位状态 |
330 | InventoryDetail inv = new InventoryDetail(); | 330 | InventoryDetail inv = new InventoryDetail(); |
@@ -334,36 +334,38 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -334,36 +334,38 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
334 | LambdaQueryWrapper<InventoryDetail> lamdDetail = Wrappers.lambdaQuery(inv); | 334 | LambdaQueryWrapper<InventoryDetail> lamdDetail = Wrappers.lambdaQuery(inv); |
335 | List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(lamdDetail); | 335 | List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(lamdDetail); |
336 | inventoryDetailService.removeById(adjustDetail.getInventoryDetailId());//删除实际库存数量为0的库存明细 | 336 | inventoryDetailService.removeById(adjustDetail.getInventoryDetailId());//删除实际库存数量为0的库存明细 |
337 | - if(inventoryDetailList.size() == 0){ | 337 | + if (inventoryDetailList.size() == 0) { |
338 | //恢复库位和容器状态,删除库存头 | 338 | //恢复库位和容器状态,删除库存头 |
339 | inventoryHeaderService.removeById(inventoryDetail.getInventoryHeaderId()); | 339 | inventoryHeaderService.removeById(inventoryDetail.getInventoryHeaderId()); |
340 | locationService.updateContainerCodeAndStatus(inventoryDetail.getLocationCode(), | 340 | locationService.updateContainerCodeAndStatus(inventoryDetail.getLocationCode(), |
341 | - "",QuantityConstant.STATUS_LOCATION_EMPTY); | 341 | + "", QuantityConstant.STATUS_LOCATION_EMPTY); |
342 | containerService.updateLocationCodeAndStatus(inventoryDetail.getContainerCode(), | 342 | containerService.updateLocationCodeAndStatus(inventoryDetail.getContainerCode(), |
343 | - "",QuantityConstant.STATUS_CONTAINER_EMPTY); | 343 | + "", QuantityConstant.STATUS_CONTAINER_EMPTY); |
344 | } | 344 | } |
345 | - }else{ | 345 | + } else { |
346 | //修改库存 | 346 | //修改库存 |
347 | //BigDecimal temp =(adjustDetail.getFromQty()).add(adjustDetail.getGapQty()); | 347 | //BigDecimal temp =(adjustDetail.getFromQty()).add(adjustDetail.getGapQty()); |
348 | inventoryDetail.setQty(adjustDetail.getToQty());//调整后的数量 | 348 | inventoryDetail.setQty(adjustDetail.getToQty());//调整后的数量 |
349 | inventoryDetail.setLastUpdatedBy(ShiroUtils.getName()); | 349 | inventoryDetail.setLastUpdatedBy(ShiroUtils.getName()); |
350 | inventoryDetail.setLastUpdatedByName(ShiroUtils.getName()); | 350 | inventoryDetail.setLastUpdatedByName(ShiroUtils.getName()); |
351 | inventoryDetail.setLastUpdated(new Date()); | 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 | throw new SecurityException("调整修改库存失败!"); | 354 | throw new SecurityException("调整修改库存失败!"); |
355 | - } } | 355 | + } |
356 | + } | ||
356 | //写入库存交易记录 | 357 | //写入库存交易记录 |
357 | InventoryTransaction inventoryTransaction = new InventoryTransaction(); | 358 | InventoryTransaction inventoryTransaction = new InventoryTransaction(); |
358 | inventoryTransaction.setWarehouseCode(inventoryDetail.getWarehouseCode()); | 359 | inventoryTransaction.setWarehouseCode(inventoryDetail.getWarehouseCode()); |
359 | inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); | 360 | inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); |
360 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); | 361 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); |
361 | inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); | 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 | } else { | 365 | } else { |
365 | - inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTOUT ); | 366 | + inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTOUT); |
366 | } | 367 | } |
368 | + inventoryTransaction.setZoneCode(inventoryDetail.getZoneCode()); | ||
367 | inventoryTransaction.setAdjustCode(adjustDetail.getAdjustCode()); | 369 | inventoryTransaction.setAdjustCode(adjustDetail.getAdjustCode()); |
368 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); | 370 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); |
369 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); | 371 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); |
@@ -390,18 +392,19 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -390,18 +392,19 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
390 | inventoryTransaction.setBillDetailId(inventoryDetail.getReceiptDetailId()); | 392 | inventoryTransaction.setBillDetailId(inventoryDetail.getReceiptDetailId()); |
391 | inventoryTransaction.setSupplierCode(inventoryDetail.getSupplierCode()); | 393 | inventoryTransaction.setSupplierCode(inventoryDetail.getSupplierCode()); |
392 | Boolean k = inventoryTransactionService.saveOrUpdate(inventoryTransaction); | 394 | Boolean k = inventoryTransactionService.saveOrUpdate(inventoryTransaction); |
393 | - if(k == false){ | 395 | + if (k == false) { |
394 | throw new SecurityException("调整单库存交易生成失败!"); | 396 | throw new SecurityException("调整单库存交易生成失败!"); |
395 | } | 397 | } |
396 | } | 398 | } |
397 | 399 | ||
398 | /** | 400 | /** |
399 | * 调整库存属性 | 401 | * 调整库存属性 |
402 | + * | ||
400 | * @param adjustDetail | 403 | * @param adjustDetail |
401 | */ | 404 | */ |
402 | @Transactional | 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 | inventoryDetail.setInventorySts(adjustDetail.getToInventorySts());//修改为调整库存 | 410 | inventoryDetail.setInventorySts(adjustDetail.getToInventorySts());//修改为调整库存 |
@@ -420,7 +423,8 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -420,7 +423,8 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
420 | inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); | 423 | inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); |
421 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); | 424 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); |
422 | inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); | 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 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); | 428 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); |
425 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); | 429 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); |
426 | inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec()); | 430 | inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec()); |
@@ -485,10 +489,11 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -485,10 +489,11 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
485 | 489 | ||
486 | /** | 490 | /** |
487 | * 调整插入库存 | 491 | * 调整插入库存 |
492 | + * | ||
488 | * @param adjustDetail | 493 | * @param adjustDetail |
489 | */ | 494 | */ |
490 | @Transactional | 495 | @Transactional |
491 | - public void updateAdjustDetailInsert (AdjustDetail adjustDetail) { | 496 | + public void updateAdjustDetailInsert(AdjustDetail adjustDetail) { |
492 | /*当系统库存为0时,调整单触发插入新库存状态*/ | 497 | /*当系统库存为0时,调整单触发插入新库存状态*/ |
493 | //新生成库存头时,库位,容器都需要更新数据 | 498 | //新生成库存头时,库位,容器都需要更新数据 |
494 | 499 | ||
@@ -499,7 +504,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -499,7 +504,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
499 | ih.setContainerCode(adjustDetail.getContainerCode()); | 504 | ih.setContainerCode(adjustDetail.getContainerCode()); |
500 | LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(ih); | 505 | LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(ih); |
501 | InventoryHeader inventoryHeader = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper); | 506 | InventoryHeader inventoryHeader = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper); |
502 | - if(inventoryHeader == null){ | 507 | + if (inventoryHeader == null) { |
503 | //库存头为空,生成库存头 | 508 | //库存头为空,生成库存头 |
504 | inventoryHeader.setWarehouseCode(adjustDetail.getWarehouseCode()); | 509 | inventoryHeader.setWarehouseCode(adjustDetail.getWarehouseCode()); |
505 | inventoryHeader.setLocationCode(adjustDetail.getLocationCode()); | 510 | inventoryHeader.setLocationCode(adjustDetail.getLocationCode()); |
@@ -515,9 +520,9 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -515,9 +520,9 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
515 | inventoryHeaderService.saveOrUpdate(inventoryHeader); | 520 | inventoryHeaderService.saveOrUpdate(inventoryHeader); |
516 | //更新库位和容器 | 521 | //更新库位和容器 |
517 | locationService.updateContainerCodeAndStatus(inventoryHeader.getLocationCode(), | 522 | locationService.updateContainerCodeAndStatus(inventoryHeader.getLocationCode(), |
518 | - inventoryHeader.getContainerCode(),QuantityConstant.STATUS_LOCATION_EMPTY); | 523 | + inventoryHeader.getContainerCode(), QuantityConstant.STATUS_LOCATION_EMPTY); |
519 | containerService.updateLocationCodeAndStatus(inventoryHeader.getContainerCode(), | 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,6 +572,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
567 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); | 572 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); |
568 | inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); | 573 | inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); |
569 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTINTO); | 574 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTINTO); |
575 | + inventoryTransaction.setZoneCode(inventoryDetail.getZoneCode()); | ||
570 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); | 576 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); |
571 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); | 577 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); |
572 | inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec()); | 578 | inventoryTransaction.setMaterialSpec(inventoryDetail.getMaterialSpec()); |
@@ -596,7 +602,4 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -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,7 +98,7 @@ public class InventoryHeaderController extends BaseController { | ||
98 | lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), InventoryHeader::getCreated, createdBegin) | 98 | lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), InventoryHeader::getCreated, createdBegin) |
99 | .le(StringUtils.isNotEmpty(createdEnd), InventoryHeader::getCreated, createdEnd)//创建时间范围 | 99 | .le(StringUtils.isNotEmpty(createdEnd), InventoryHeader::getCreated, createdEnd)//创建时间范围 |
100 | .eq(InventoryHeader::getWarehouseCode, ShiroUtils.getWarehouseCode())//仓库 | 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 | .eq(StringUtils.isNotEmpty(inventoryHeader.getLocationCode()), InventoryHeader::getLocationCode, inventoryHeader.getLocationCode()) //库位 | 102 | .eq(StringUtils.isNotEmpty(inventoryHeader.getLocationCode()), InventoryHeader::getLocationCode, inventoryHeader.getLocationCode()) //库位 |
103 | .like(StringUtils.isNotEmpty(inventoryHeader.getContainerCode()), InventoryHeader::getContainerCode, inventoryHeader.getContainerCode())//容器 | 103 | .like(StringUtils.isNotEmpty(inventoryHeader.getContainerCode()), InventoryHeader::getContainerCode, inventoryHeader.getContainerCode())//容器 |
104 | .eq(StringUtils.isNotEmpty(inventoryHeader.getCreatedBy()), InventoryHeader::getCreatedBy, inventoryHeader.getCreatedBy())//创建用户 | 104 | .eq(StringUtils.isNotEmpty(inventoryHeader.getCreatedBy()), InventoryHeader::getCreatedBy, inventoryHeader.getCreatedBy())//创建用户 |
@@ -162,7 +162,7 @@ public class InventoryHeaderController extends BaseController { | @@ -162,7 +162,7 @@ public class InventoryHeaderController extends BaseController { | ||
162 | BigDecimal materialQuantity = BigDecimal.ZERO; | 162 | BigDecimal materialQuantity = BigDecimal.ZERO; |
163 | BigDecimal materialWeight = BigDecimal.ZERO; | 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 | String[] parts = dimension.split("x"); | 166 | String[] parts = dimension.split("x"); |
167 | double length = Double.parseDouble(parts[0]); | 167 | double length = Double.parseDouble(parts[0]); |
168 | double width = Double.parseDouble(parts[1]); | 168 | double width = Double.parseDouble(parts[1]); |
@@ -177,12 +177,12 @@ public class InventoryHeaderController extends BaseController { | @@ -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 | materialVolumeList.add(NumberUtil.mul(materialVolume, materialQuantity)); | 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 | materialWeightList.add(NumberUtil.mul(materialWeight, materialQuantity)); | 186 | materialWeightList.add(NumberUtil.mul(materialWeight, materialQuantity)); |
187 | } | 187 | } |
188 | } | 188 | } |
@@ -191,11 +191,11 @@ public class InventoryHeaderController extends BaseController { | @@ -191,11 +191,11 @@ public class InventoryHeaderController extends BaseController { | ||
191 | 191 | ||
192 | BigDecimal materialVolume = materialVolumeList.stream() | 192 | BigDecimal materialVolume = materialVolumeList.stream() |
193 | .reduce(BigDecimal.ZERO, BigDecimal::add) | 193 | .reduce(BigDecimal.ZERO, BigDecimal::add) |
194 | - .divide(palletVolume,4,RoundingMode.HALF_UP); | 194 | + .divide(palletVolume, 4, RoundingMode.HALF_UP); |
195 | 195 | ||
196 | BigDecimal materialWeight = materialWeightList.stream() | 196 | BigDecimal materialWeight = materialWeightList.stream() |
197 | .reduce(BigDecimal.ZERO, BigDecimal::add) | 197 | .reduce(BigDecimal.ZERO, BigDecimal::add) |
198 | - .divide(palletWeightCapacity,4,RoundingMode.HALF_UP); | 198 | + .divide(palletWeightCapacity, 4, RoundingMode.HALF_UP); |
199 | 199 | ||
200 | String materialVolumePercentage = percentageFormat.format(materialVolume); | 200 | String materialVolumePercentage = percentageFormat.format(materialVolume); |
201 | String materialWeightPercentage = percentageFormat.format(materialWeight); | 201 | String materialWeightPercentage = percentageFormat.format(materialWeight); |
@@ -213,7 +213,6 @@ public class InventoryHeaderController extends BaseController { | @@ -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,6 +14,7 @@ import com.huaheng.framework.web.page.TableDataInfo; | ||
14 | import com.huaheng.framework.web.page.TableSupport; | 14 | import com.huaheng.framework.web.page.TableSupport; |
15 | import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | 15 | import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; |
16 | import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; | 16 | import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; |
17 | +import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; | ||
17 | import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; | 18 | import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; |
18 | import com.huaheng.pc.inventory.inventoryTransaction.domain.InventoryTransaction; | 19 | import com.huaheng.pc.inventory.inventoryTransaction.domain.InventoryTransaction; |
19 | import com.huaheng.pc.inventory.inventoryTransaction.service.InventoryTransactionService; | 20 | import com.huaheng.pc.inventory.inventoryTransaction.service.InventoryTransactionService; |
@@ -87,6 +88,7 @@ public class InventoryTransactionController extends BaseController { | @@ -87,6 +88,7 @@ public class InventoryTransactionController extends BaseController { | ||
87 | .like(StringUtils.isNotEmpty(inventoryTransaction.getCreatedBy()), InventoryTransaction::getCreatedBy, inventoryTransaction.getCreatedBy())//创建用户 | 88 | .like(StringUtils.isNotEmpty(inventoryTransaction.getCreatedBy()), InventoryTransaction::getCreatedBy, inventoryTransaction.getCreatedBy())//创建用户 |
88 | .eq(StringUtils.isNotEmpty(inventoryTransaction.getWarehouse()), InventoryTransaction::getWarehouse, inventoryTransaction.getWarehouse()) //原仓库编码 | 89 | .eq(StringUtils.isNotEmpty(inventoryTransaction.getWarehouse()), InventoryTransaction::getWarehouse, inventoryTransaction.getWarehouse()) //原仓库编码 |
89 | .like(StringUtils.isNotEmpty(inventoryTransaction.getWarehouseName()), InventoryTransaction::getWarehouseName, inventoryTransaction.getWarehouseName()) //原仓库名称 | 90 | .like(StringUtils.isNotEmpty(inventoryTransaction.getWarehouseName()), InventoryTransaction::getWarehouseName, inventoryTransaction.getWarehouseName()) //原仓库名称 |
91 | + .eq(StringUtils.isNotEmpty(inventoryTransaction.getZoneCode()), InventoryTransaction::getZoneCode, inventoryTransaction.getZoneCode()) //库区 | ||
90 | //货主 | 92 | //货主 |
91 | .in(InventoryTransaction::getCompanyCode, ShiroUtils.getCompanyCodeList()) | 93 | .in(InventoryTransaction::getCompanyCode, ShiroUtils.getCompanyCodeList()) |
92 | .orderByDesc(InventoryTransaction::getId); | 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,5 +330,10 @@ public class InventoryTransaction implements Serializable { | ||
330 | @TableField(value = "isFlatWarehouse") | 330 | @TableField(value = "isFlatWarehouse") |
331 | @ApiModelProperty(value = "是否平库,1为平库") | 331 | @ApiModelProperty(value = "是否平库,1为平库") |
332 | private Integer isFlatWarehouse; | 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,7 +110,7 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei | ||
110 | SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); | 110 | SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); |
111 | LambdaQueryWrapper<ReceiptHeader> lambda = Wrappers.lambdaQuery(); | 111 | LambdaQueryWrapper<ReceiptHeader> lambda = Wrappers.lambdaQuery(); |
112 | lambda.select(ReceiptHeader::getCode).eq(ReceiptHeader::getReceiptType, receiptType) | 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 | .orderByDesc(ReceiptHeader::getId).last("Limit 1"); | 114 | .orderByDesc(ReceiptHeader::getId).last("Limit 1"); |
115 | //如果指定类型的最后的code存在,并且日期一致。那么 code = 入库单类型 + 年月日 + (排序号 + 1) | 115 | //如果指定类型的最后的code存在,并且日期一致。那么 code = 入库单类型 + 年月日 + (排序号 + 1) |
116 | String maxCode = null; | 116 | String maxCode = null; |
@@ -127,12 +127,12 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei | @@ -127,12 +127,12 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei | ||
127 | Integer Count = Integer.valueOf(maxCode.substring(maxCode.length() - 5, maxCode.length())); | 127 | Integer Count = Integer.valueOf(maxCode.substring(maxCode.length() - 5, maxCode.length())); |
128 | code = receiptType + df.format(now) + String.format("%05d", Count + i++); | 128 | code = receiptType + df.format(now) + String.format("%05d", Count + i++); |
129 | } else { | 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 | aa.select(ReceiptHeaderHistory::getCode).eq(ReceiptHeaderHistory::getCode, code); | 132 | aa.select(ReceiptHeaderHistory::getCode).eq(ReceiptHeaderHistory::getCode, code); |
133 | List<ReceiptHeaderHistory> list = receiptheaderhistoryMapper.selectList(aa); | 133 | List<ReceiptHeaderHistory> list = receiptheaderhistoryMapper.selectList(aa); |
134 | if (list.size() <= 0) { | 134 | if (list.size() <= 0) { |
135 | - i=0; | 135 | + i = 0; |
136 | } | 136 | } |
137 | } | 137 | } |
138 | return code; | 138 | return code; |
@@ -484,6 +484,7 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei | @@ -484,6 +484,7 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei | ||
484 | inventoryTransaction.setLocationCode(locationCode); | 484 | inventoryTransaction.setLocationCode(locationCode); |
485 | inventoryTransaction.setContainerCode(containerCode); | 485 | inventoryTransaction.setContainerCode(containerCode); |
486 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_RECEIPT); | 486 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_RECEIPT); |
487 | + inventoryTransaction.setZoneCode("未知库区"); | ||
487 | inventoryTransaction.setMaterialCode(receiptDetail.getMaterialCode()); | 488 | inventoryTransaction.setMaterialCode(receiptDetail.getMaterialCode()); |
488 | inventoryTransaction.setMaterialName(receiptDetail.getMaterialName()); | 489 | inventoryTransaction.setMaterialName(receiptDetail.getMaterialName()); |
489 | inventoryTransaction.setMaterialSpec(receiptDetail.getMaterialSpec()); | 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,6 +26,7 @@ import com.huaheng.pc.config.waveMaster.service.WaveMasterService; | ||
26 | import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | 26 | import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; |
27 | import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; | 27 | import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; |
28 | import com.huaheng.pc.momLog.service.IMomLogService; | 28 | import com.huaheng.pc.momLog.service.IMomLogService; |
29 | +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | ||
29 | import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; | 30 | import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; |
30 | import com.huaheng.pc.shipment.shipmentContainerDetail.service.ShipmentContainerDetailService; | 31 | import com.huaheng.pc.shipment.shipmentContainerDetail.service.ShipmentContainerDetailService; |
31 | import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; | 32 | import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; |
@@ -47,10 +48,7 @@ import javax.annotation.Resource; | @@ -47,10 +48,7 @@ import javax.annotation.Resource; | ||
47 | import java.lang.reflect.InvocationTargetException; | 48 | import java.lang.reflect.InvocationTargetException; |
48 | import java.math.BigDecimal; | 49 | import java.math.BigDecimal; |
49 | import java.text.SimpleDateFormat; | 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,6 +180,7 @@ public class ShipmentHeaderController extends BaseController { | ||
182 | .eq(shipmentHeader.getFirstStatus() != null, ShipmentHeader::getFirstStatus, shipmentHeader.getFirstStatus()) | 180 | .eq(shipmentHeader.getFirstStatus() != null, ShipmentHeader::getFirstStatus, shipmentHeader.getFirstStatus()) |
183 | .eq(shipmentHeader.getLastStatus() != null, ShipmentHeader::getLastStatus, shipmentHeader.getLastStatus()) | 181 | .eq(shipmentHeader.getLastStatus() != null, ShipmentHeader::getLastStatus, shipmentHeader.getLastStatus()) |
184 | .eq(StringUtils.isNotNull(shipmentHeader.getPushSuccessStatus()), ShipmentHeader::getPushSuccessStatus, shipmentHeader.getPushSuccessStatus()) | 182 | .eq(StringUtils.isNotNull(shipmentHeader.getPushSuccessStatus()), ShipmentHeader::getPushSuccessStatus, shipmentHeader.getPushSuccessStatus()) |
183 | + .like(StringUtils.isNotEmpty(shipmentHeader.getMaterialColor()), ShipmentHeader::getMaterialColor, shipmentHeader.getMaterialColor()) | ||
185 | .eq(ShipmentHeader::getDeleted, 0) | 184 | .eq(ShipmentHeader::getDeleted, 0) |
186 | .orderByAsc(ShipmentHeader::getLastStatus) | 185 | .orderByAsc(ShipmentHeader::getLastStatus) |
187 | .orderByAsc(ShipmentHeader::getRequestedStartDate) | 186 | .orderByAsc(ShipmentHeader::getRequestedStartDate) |
@@ -511,7 +510,7 @@ public class ShipmentHeaderController extends BaseController { | @@ -511,7 +510,7 @@ public class ShipmentHeaderController extends BaseController { | ||
511 | LambdaQueryWrapper<ShipmentHeader> headerWrapper = Wrappers.lambdaQuery(); | 510 | LambdaQueryWrapper<ShipmentHeader> headerWrapper = Wrappers.lambdaQuery(); |
512 | headerWrapper.in(ShipmentHeader::getId, headerIdArr); | 511 | headerWrapper.in(ShipmentHeader::getId, headerIdArr); |
513 | List<ShipmentHeader> shipmentHeaderList = shipmentHeaderService.list(headerWrapper); | 512 | List<ShipmentHeader> shipmentHeaderList = shipmentHeaderService.list(headerWrapper); |
514 | - if (shipmentHeaderList.size() < 1) { | 513 | + if (shipmentHeaderList.isEmpty()) { |
515 | throw new ServiceException("单据主表不存在!!!"); | 514 | throw new ServiceException("单据主表不存在!!!"); |
516 | } | 515 | } |
517 | shipmentHeaderList.forEach(shipmentHeader -> { | 516 | shipmentHeaderList.forEach(shipmentHeader -> { |
@@ -540,7 +539,17 @@ public class ShipmentHeaderController extends BaseController { | @@ -540,7 +539,17 @@ public class ShipmentHeaderController extends BaseController { | ||
540 | shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_BUILD); | 539 | shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_BUILD); |
541 | StringBuilder recordID = new StringBuilder(); | 540 | StringBuilder recordID = new StringBuilder(); |
542 | StringBuilder workShops = new StringBuilder(); | 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 | shipmentHeaderList.forEach(header -> recordID.append(header.getId()).append(",")); | 553 | shipmentHeaderList.forEach(header -> recordID.append(header.getId()).append(",")); |
545 | shipmentHeader.setWorkshop(workShops.toString()); | 554 | shipmentHeader.setWorkshop(workShops.toString()); |
546 | shipmentHeader.setRecordID(recordID.toString()); | 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,4 +529,11 @@ public class ShipmentHeader implements Serializable { | ||
529 | @TableField(value = "ISMOM") | 529 | @TableField(value = "ISMOM") |
530 | @ApiModelProperty(value = "ISMOM") | 530 | @ApiModelProperty(value = "ISMOM") |
531 | private String ISMOM; | 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,183 +40,181 @@ import java.util.List; | ||
40 | */ | 40 | */ |
41 | @Controller | 41 | @Controller |
42 | @RequestMapping("/shipment/shipmentHeaderHistory") | 42 | @RequestMapping("/shipment/shipmentHeaderHistory") |
43 | -public class ShipmentHeaderHistoryController extends BaseController | ||
44 | -{ | 43 | +public class ShipmentHeaderHistoryController extends BaseController { |
45 | private String prefix = "shipment/shipmentHeaderHistory"; | 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 | // .eq(date != null,ShipmentHeader::getRequestedDeliveryDate,date) | 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 | return AjaxResult.error("id不能为空"); | 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,31 +485,32 @@ public class ShipmentHeaderHistory implements Serializable { | ||
485 | 485 | ||
486 | /** | 486 | /** |
487 | * 回传错误次数 | 487 | * 回传错误次数 |
488 | + * | ||
488 | * @return | 489 | * @return |
489 | */ | 490 | */ |
490 | @TableField(value = "pushErrorCount") | 491 | @TableField(value = "pushErrorCount") |
491 | - @ApiModelProperty(value="回传错误次数") | 492 | + @ApiModelProperty(value = "回传错误次数") |
492 | public Integer pushErrorCount; | 493 | public Integer pushErrorCount; |
493 | 494 | ||
494 | /** | 495 | /** |
495 | * 错误消息 | 496 | * 错误消息 |
496 | */ | 497 | */ |
497 | @TableField(value = "ErrorMsg") | 498 | @TableField(value = "ErrorMsg") |
498 | - @ApiModelProperty(value="错误消息") | 499 | + @ApiModelProperty(value = "错误消息") |
499 | public String errorMsg; | 500 | public String errorMsg; |
500 | 501 | ||
501 | /** | 502 | /** |
502 | * 回传状态,0默认,1成功,2失败 | 503 | * 回传状态,0默认,1成功,2失败 |
503 | */ | 504 | */ |
504 | @TableField(value = "pushSuccessStatus") | 505 | @TableField(value = "pushSuccessStatus") |
505 | - @ApiModelProperty(value="回传状态,0默认,1成功,2失败,3提前过账") | 506 | + @ApiModelProperty(value = "回传状态,0默认,1成功,2失败,3提前过账") |
506 | public Integer pushSuccessStatus; | 507 | public Integer pushSuccessStatus; |
507 | 508 | ||
508 | /** | 509 | /** |
509 | * 来源 | 510 | * 来源 |
510 | */ | 511 | */ |
511 | @TableField(value = "origin") | 512 | @TableField(value = "origin") |
512 | - @ApiModelProperty(value="来源") | 513 | + @ApiModelProperty(value = "来源") |
513 | public String origin; | 514 | public String origin; |
514 | 515 | ||
515 | /** | 516 | /** |
@@ -530,6 +531,13 @@ public class ShipmentHeaderHistory implements Serializable { | @@ -530,6 +531,13 @@ public class ShipmentHeaderHistory implements Serializable { | ||
530 | * 入库单的最后更新时间 | 531 | * 入库单的最后更新时间 |
531 | */ | 532 | */ |
532 | @TableField(value = "lastUpdateTime") | 533 | @TableField(value = "lastUpdateTime") |
533 | - @ApiModelProperty(value="入库单的最后更新时间") | 534 | + @ApiModelProperty(value = "入库单的最后更新时间") |
534 | private Date lastUpdateTime; | 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,6 +558,7 @@ public class ReceiptTaskService { | ||
558 | //记录库存交易记录 | 558 | //记录库存交易记录 |
559 | InventoryTransaction inventoryTransaction = new InventoryTransaction(); | 559 | InventoryTransaction inventoryTransaction = new InventoryTransaction(); |
560 | ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId()); | 560 | ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId()); |
561 | + inventoryTransaction.setZoneCode(inventoryHeader.getZoneCode()); | ||
561 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_RECEIPT); | 562 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_RECEIPT); |
562 | inventoryTransaction.setWarehouseCode(taskDetail.getWarehouseCode()); | 563 | inventoryTransaction.setWarehouseCode(taskDetail.getWarehouseCode()); |
563 | inventoryTransaction.setCompanyCode(taskDetail.getCompanyCode()); | 564 | inventoryTransaction.setCompanyCode(taskDetail.getCompanyCode()); |
src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java
@@ -359,6 +359,7 @@ public class ShipmentTaskService { | @@ -359,6 +359,7 @@ public class ShipmentTaskService { | ||
359 | inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); | 359 | inventoryTransaction.setCompanyCode(inventoryDetail.getCompanyCode()); |
360 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); | 360 | inventoryTransaction.setLocationCode(inventoryDetail.getLocationCode()); |
361 | inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); | 361 | inventoryTransaction.setContainerCode(inventoryDetail.getContainerCode()); |
362 | + inventoryTransaction.setZoneCode(inventoryHeader.getZoneCode()); | ||
362 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_SHIPMENT); | 363 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_SHIPMENT); |
363 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); | 364 | inventoryTransaction.setMaterialCode(inventoryDetail.getMaterialCode()); |
364 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); | 365 | inventoryTransaction.setMaterialName(inventoryDetail.getMaterialName()); |
src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java
@@ -159,7 +159,7 @@ public class TransferTaskService { | @@ -159,7 +159,7 @@ public class TransferTaskService { | ||
159 | // locationService.updateStatus(desLocationCode, QuantityConstant.STATUS_LOCATION_LOCK, warehouseCode); | 159 | // locationService.updateStatus(desLocationCode, QuantityConstant.STATUS_LOCATION_LOCK, warehouseCode); |
160 | int updateCount = locationService.updateStatusNew(desLocationCode, warehouseCode, | 160 | int updateCount = locationService.updateStatusNew(desLocationCode, warehouseCode, |
161 | QuantityConstant.STATUS_LOCATION_LOCK, QuantityConstant.STATUS_LOCATION_EMPTY); | 161 | QuantityConstant.STATUS_LOCATION_LOCK, QuantityConstant.STATUS_LOCATION_EMPTY); |
162 | - if(updateCount != 1) { | 162 | + if (updateCount != 1) { |
163 | throw new ServiceException("库位已经锁定,不允许再分到这个库位"); | 163 | throw new ServiceException("库位已经锁定,不允许再分到这个库位"); |
164 | } | 164 | } |
165 | containerService.updateLocationCodeAndStatus(sourceLocation.getContainerCode(), | 165 | containerService.updateLocationCodeAndStatus(sourceLocation.getContainerCode(), |
@@ -236,6 +236,7 @@ public class TransferTaskService { | @@ -236,6 +236,7 @@ public class TransferTaskService { | ||
236 | inventoryTransaction.setLocationCode(taskDetail.getToLocation()); | 236 | inventoryTransaction.setLocationCode(taskDetail.getToLocation()); |
237 | inventoryTransaction.setContainerCode(taskDetail.getContainerCode()); | 237 | inventoryTransaction.setContainerCode(taskDetail.getContainerCode()); |
238 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_TRANSFERINTO); | 238 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_TRANSFERINTO); |
239 | + inventoryTransaction.setZoneCode(inventoryDetail.getZoneCode()); | ||
239 | inventoryTransaction.setMaterialCode(taskDetail.getMaterialCode()); | 240 | inventoryTransaction.setMaterialCode(taskDetail.getMaterialCode()); |
240 | inventoryTransaction.setMaterialName(taskDetail.getMaterialName()); | 241 | inventoryTransaction.setMaterialName(taskDetail.getMaterialName()); |
241 | inventoryTransaction.setMaterialSpec(taskDetail.getMaterialSpec()); | 242 | inventoryTransaction.setMaterialSpec(taskDetail.getMaterialSpec()); |
@@ -259,6 +260,7 @@ public class TransferTaskService { | @@ -259,6 +260,7 @@ public class TransferTaskService { | ||
259 | inventoryTransactionService.save(inventoryTransaction); | 260 | inventoryTransactionService.save(inventoryTransaction); |
260 | inventoryTransaction.setLocationCode(taskDetail.getFromLocation()); | 261 | inventoryTransaction.setLocationCode(taskDetail.getFromLocation()); |
261 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_TRANSFEROUT); | 262 | inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_TRANSFEROUT); |
263 | + inventoryTransaction.setZoneCode(inventoryDetail.getZoneCode()); | ||
262 | inventoryTransactionService.save(inventoryTransaction); | 264 | inventoryTransactionService.save(inventoryTransaction); |
263 | } | 265 | } |
264 | if (taskDetailList.size() != 0) { | 266 | if (taskDetailList.size() != 0) { |
src/main/resources/templates/inventory/inventoryTransaction/inventoryTransaction.html
@@ -10,6 +10,15 @@ | @@ -10,6 +10,15 @@ | ||
10 | <div class="select-list"> | 10 | <div class="select-list"> |
11 | <ul> | 11 | <ul> |
12 | <li> | 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 | 库位编码:<input type="text" name="locationCode"/> | 22 | 库位编码:<input type="text" name="locationCode"/> |
14 | </li> | 23 | </li> |
15 | <li> | 24 | <li> |
@@ -102,6 +111,7 @@ | @@ -102,6 +111,7 @@ | ||
102 | var prefix = ctx + "inventory/inventoryTransaction"; | 111 | var prefix = ctx + "inventory/inventoryTransaction"; |
103 | var inventoryStatus = [[${@dict.getType('inventorySts')}]]; | 112 | var inventoryStatus = [[${@dict.getType('inventorySts')}]]; |
104 | var warehouses = [[${@WarehouseService.getCode()}]]; | 113 | var warehouses = [[${@WarehouseService.getCode()}]]; |
114 | + var zone = [[${@zone.getCode()}]]; | ||
105 | var inventoryTransactionType = [[${@dict.getType('inventoryTransactionType')}]]; | 115 | var inventoryTransactionType = [[${@dict.getType('inventoryTransactionType')}]]; |
106 | $(function () { | 116 | $(function () { |
107 | var options = { | 117 | var options = { |
@@ -148,6 +158,21 @@ | @@ -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 | field: 'locationCode', | 176 | field: 'locationCode', |
152 | title: '库位编号' | 177 | title: '库位编号' |
153 | }, | 178 | }, |
src/main/resources/templates/receipt/receiving/receiving.html
@@ -327,6 +327,19 @@ | @@ -327,6 +327,19 @@ | ||
327 | field: 'materialUnit', | 327 | field: 'materialUnit', |
328 | title: '单位' | 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,6 +104,9 @@ | ||
104 | </select> | 104 | </select> |
105 | </li> | 105 | </li> |
106 | <li> | 106 | <li> |
107 | + 颜色信息:<input type="text" name="materialColor"/> | ||
108 | + </li> | ||
109 | + <li> | ||
107 | 备注:<input type="text" name="shipmentNote"/> | 110 | 备注:<input type="text" name="shipmentNote"/> |
108 | </li> | 111 | </li> |
109 | <li class="time"> | 112 | <li class="time"> |
@@ -499,19 +502,22 @@ | @@ -499,19 +502,22 @@ | ||
499 | field: 'requestedDeliveryDate', | 502 | field: 'requestedDeliveryDate', |
500 | title: '计划完成日期', | 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 | field: 'workshop', | 518 | field: 'workshop', |
504 | title: '生产车间', | 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 | field: 'shipmentNote', | 522 | field: 'shipmentNote', |
517 | title: '备注', | 523 | title: '备注', |
@@ -591,6 +597,18 @@ | @@ -591,6 +597,18 @@ | ||
591 | visible: true | 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 | field: 'errorMsg', | 612 | field: 'errorMsg', |
595 | title: '错误信息', | 613 | title: '错误信息', |
596 | formatter: function (value, row, index) { | 614 | formatter: function (value, row, index) { |
src/main/resources/templates/shipment/shipmentHeaderHistory/shipmentHeaderHistory.html
@@ -98,6 +98,9 @@ | @@ -98,6 +98,9 @@ | ||
98 | </li> | 98 | </li> |
99 | </li> | 99 | </li> |
100 | <li> | 100 | <li> |
101 | + 颜色信息:<input type="text" name="materialColor"/> | ||
102 | + </li> | ||
103 | + <li> | ||
101 | 备注:<input type="text" name="shipmentNote"/> | 104 | 备注:<input type="text" name="shipmentNote"/> |
102 | </li> | 105 | </li> |
103 | <li class="time"> | 106 | <li class="time"> |
@@ -454,17 +457,21 @@ | @@ -454,17 +457,21 @@ | ||
454 | field: 'requestedDeliveryDate', | 457 | field: 'requestedDeliveryDate', |
455 | title: '计划完成日期', | 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 | field: 'workshop', | 473 | field: 'workshop', |
459 | title: '生产车间', | 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 | field: 'shipmentNote', | 477 | field: 'shipmentNote', |
@@ -553,6 +560,18 @@ | @@ -553,6 +560,18 @@ | ||
553 | visible: true | 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 | field: 'errorMsg', | 575 | field: 'errorMsg', |
557 | title: '错误信息', | 576 | title: '错误信息', |
558 | formatter: function (value, row, index) { | 577 | formatter: function (value, row, index) { |