Commit 299be2ed4a76ba8e6cb8b19e931c8296bd5b1a72
Merge branch 'develop' of http://172.16.29.40:8010/wms/wms_suzhouqingyuan into develop
Showing
18 changed files
with
308 additions
and
27 deletions
src/main/java/com/huaheng/common/constant/QuantityConstant.java
@@ -493,6 +493,7 @@ public class QuantityConstant { | @@ -493,6 +493,7 @@ public class QuantityConstant { | ||
493 | * 其他出库类型 | 493 | * 其他出库类型 |
494 | */ | 494 | */ |
495 | public static String SHIPMENT_QTCKLX= "QTCKLX"; | 495 | public static String SHIPMENT_QTCKLX= "QTCKLX"; |
496 | + public static String RECEIPT_QTCKLX= "QTRKLX"; | ||
496 | 497 | ||
497 | public static final String LOCAL_SERVER_IP = "localServerIP"; | 498 | public static final String LOCAL_SERVER_IP = "localServerIP"; |
498 | 499 | ||
@@ -517,6 +518,12 @@ public class QuantityConstant { | @@ -517,6 +518,12 @@ public class QuantityConstant { | ||
517 | public static final String SP_InStock = "SP_InStock"; | 518 | public static final String SP_InStock = "SP_InStock"; |
518 | /*其他入库单回传*/ | 519 | /*其他入库单回传*/ |
519 | public static final String STK_MISCELLANEOUS = "STK_MISCELLANEOUS"; | 520 | public static final String STK_MISCELLANEOUS = "STK_MISCELLANEOUS"; |
521 | + /** | ||
522 | + * 平库容器组盘自动生成任务 | ||
523 | + */ | ||
524 | + public static final String FLOOR_AUTO_CREATE_TASK = "FLOOR_AUTO_CREATE_TASK"; | ||
525 | + | ||
526 | + public static final String ZONE_FLOOR = "A"; | ||
520 | 527 | ||
521 | 528 | ||
522 | 529 |
src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java
@@ -162,7 +162,11 @@ public class RyTask extends BaseController { | @@ -162,7 +162,11 @@ public class RyTask extends BaseController { | ||
162 | @Override | 162 | @Override |
163 | public AjaxResult doProcess() { | 163 | public AjaxResult doProcess() { |
164 | for(TaskHeader taskHeader : taskHeaderList) { | 164 | for(TaskHeader taskHeader : taskHeaderList) { |
165 | - taskHeaderService.sendTaskToWcs(Convert.toIntArray(String.valueOf(taskHeader.getId()))); | 165 | + try{ |
166 | + taskHeaderService.sendTaskToWcs(Convert.toIntArray(String.valueOf(taskHeader.getId()))); | ||
167 | + }catch (Exception e){ | ||
168 | + | ||
169 | + } | ||
166 | } | 170 | } |
167 | return null; | 171 | return null; |
168 | } | 172 | } |
src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; | @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
5 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 5 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
6 | import com.huaheng.common.constant.QuantityConstant; | 6 | import com.huaheng.common.constant.QuantityConstant; |
7 | import com.huaheng.common.exception.service.ServiceException; | 7 | import com.huaheng.common.exception.service.ServiceException; |
8 | +import com.huaheng.common.support.Convert; | ||
8 | import com.huaheng.common.utils.StringUtils; | 9 | import com.huaheng.common.utils.StringUtils; |
9 | import com.huaheng.common.utils.security.ShiroUtils; | 10 | import com.huaheng.common.utils.security.ShiroUtils; |
10 | import com.huaheng.framework.web.domain.AjaxResult; | 11 | import com.huaheng.framework.web.domain.AjaxResult; |
@@ -33,6 +34,7 @@ import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | @@ -33,6 +34,7 @@ import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | ||
33 | import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; | 34 | import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; |
34 | import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; | 35 | import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; |
35 | import com.huaheng.pc.task.taskHeader.domain.TaskHeader; | 36 | import com.huaheng.pc.task.taskHeader.domain.TaskHeader; |
37 | +import com.huaheng.pc.task.taskHeader.service.ReceiptTaskService; | ||
36 | import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; | 38 | import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; |
37 | import org.springframework.stereotype.Service; | 39 | import org.springframework.stereotype.Service; |
38 | import org.springframework.transaction.annotation.Transactional; | 40 | import org.springframework.transaction.annotation.Transactional; |
@@ -40,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional; | @@ -40,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional; | ||
40 | import javax.annotation.Resource; | 42 | import javax.annotation.Resource; |
41 | import java.math.BigDecimal; | 43 | import java.math.BigDecimal; |
42 | import java.text.MessageFormat; | 44 | import java.text.MessageFormat; |
45 | +import java.util.Arrays; | ||
43 | import java.util.Calendar; | 46 | import java.util.Calendar; |
44 | import java.util.Date; | 47 | import java.util.Date; |
45 | import java.util.List; | 48 | import java.util.List; |
@@ -70,6 +73,9 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai | @@ -70,6 +73,9 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai | ||
70 | private ConfigService configService; | 73 | private ConfigService configService; |
71 | @Resource | 74 | @Resource |
72 | private ShipmentContainerHeaderService shipmentContainerHeaderService; | 75 | private ShipmentContainerHeaderService shipmentContainerHeaderService; |
76 | + @Resource | ||
77 | + private ReceiptTaskService receiptTaskService; | ||
78 | + | ||
73 | /** | 79 | /** |
74 | * 保存入库组盘 | 80 | * 保存入库组盘 |
75 | * @param receiptCode 入库单编码 | 81 | * @param receiptCode 入库单编码 |
@@ -189,6 +195,30 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai | @@ -189,6 +195,30 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai | ||
189 | } | 195 | } |
190 | } | 196 | } |
191 | receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); | 197 | receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); |
198 | + | ||
199 | + String floorAutoCreateTask = configService.getKey(QuantityConstant.FLOOR_AUTO_CREATE_TASK); | ||
200 | + if(StringUtils.isNotEmpty(floorAutoCreateTask)){ | ||
201 | + String[] floorType = floorAutoCreateTask.split(","); | ||
202 | + List<String> floorTypes = Arrays.asList(floorType); | ||
203 | + Container container = containerService.getContainerByCode(containerCode); | ||
204 | + if(floorTypes.contains(container.getContainerType())){ | ||
205 | + //自动生成任务 | ||
206 | + LambdaQueryWrapper<ReceiptContainerHeader> lambdaQueryWrapper= Wrappers.lambdaQuery(); | ||
207 | + lambdaQueryWrapper.eq(ReceiptContainerHeader::getContainerCode,containerCode); | ||
208 | + lambdaQueryWrapper.le(ReceiptContainerHeader::getStatus,10); | ||
209 | + List<ReceiptContainerHeader> receiptContainerHeaders1=this.list(lambdaQueryWrapper); | ||
210 | + for(ReceiptContainerHeader item:receiptContainerHeaders1) { | ||
211 | + String ids = item.getId().toString(); | ||
212 | + Integer[] idArray = Convert.toIntArray(ids); | ||
213 | + List<Integer> islist= Arrays.asList(idArray); | ||
214 | + try { | ||
215 | + AjaxResult ajaxResult1=receiptTaskService.createReceiptTask(islist); | ||
216 | + } catch (Exception e) { | ||
217 | + e.printStackTrace(); | ||
218 | + } | ||
219 | + } | ||
220 | + } | ||
221 | + } | ||
192 | return AjaxResult.success("success"); | 222 | return AjaxResult.success("success"); |
193 | } | 223 | } |
194 | 224 |
src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java
@@ -24,6 +24,7 @@ import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | @@ -24,6 +24,7 @@ import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | ||
24 | import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; | 24 | import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; |
25 | import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | 25 | import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; |
26 | import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; | 26 | import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; |
27 | +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; | ||
27 | import com.huaheng.pc.system.user.domain.User; | 28 | import com.huaheng.pc.system.user.domain.User; |
28 | import io.swagger.annotations.Api; | 29 | import io.swagger.annotations.Api; |
29 | import io.swagger.annotations.ApiOperation; | 30 | import io.swagger.annotations.ApiOperation; |
@@ -32,6 +33,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; | @@ -32,6 +33,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; | ||
32 | import org.springframework.stereotype.Controller; | 33 | import org.springframework.stereotype.Controller; |
33 | import org.springframework.ui.ModelMap; | 34 | import org.springframework.ui.ModelMap; |
34 | import org.springframework.web.bind.annotation.*; | 35 | import org.springframework.web.bind.annotation.*; |
36 | +import org.springframework.web.multipart.MultipartFile; | ||
35 | 37 | ||
36 | import javax.annotation.Resource; | 38 | import javax.annotation.Resource; |
37 | import java.math.BigDecimal; | 39 | import java.math.BigDecimal; |
@@ -326,4 +328,28 @@ public class ReceiptDetailController extends BaseController { | @@ -326,4 +328,28 @@ public class ReceiptDetailController extends BaseController { | ||
326 | return error("导出Excel失败,请联系网站管理员!"); | 328 | return error("导出Excel失败,请联系网站管理员!"); |
327 | } | 329 | } |
328 | } | 330 | } |
331 | + @PostMapping("/importData") | ||
332 | + @ResponseBody | ||
333 | + public AjaxResult importData (MultipartFile file) throws Exception { | ||
334 | + ExcelUtil<ReceiptDetail> util = new ExcelUtil<>(ReceiptDetail.class); | ||
335 | + List<ReceiptDetail> list = util.importExcel(file.getInputStream()); | ||
336 | + String operName = ShiroUtils.getLoginName(); | ||
337 | + String message = receiptDetailService.insertExcelData(list, false, operName); | ||
338 | + return AjaxResult.success(message); | ||
339 | + } | ||
340 | + | ||
341 | + /** | ||
342 | + * 导出模板 | ||
343 | + * | ||
344 | + * @return | ||
345 | + * @throws Exception | ||
346 | + */ | ||
347 | + @GetMapping("/importTemplate") | ||
348 | + @ResponseBody | ||
349 | + public AjaxResult importTemplate () { | ||
350 | + ExcelUtil<ReceiptDetail> util = new ExcelUtil<>(ReceiptDetail.class); | ||
351 | + return util.importTemplateExcel("入库详情"); | ||
352 | + } | ||
353 | + | ||
354 | + | ||
329 | } | 355 | } |
src/main/java/com/huaheng/pc/receipt/receiptDetail/domain/ReceiptDetail.java
@@ -31,7 +31,7 @@ public class ReceiptDetail implements Serializable { | @@ -31,7 +31,7 @@ public class ReceiptDetail implements Serializable { | ||
31 | /** | 31 | /** |
32 | * 入库单 | 32 | * 入库单 |
33 | */ | 33 | */ |
34 | - @Excel(name = "入库单号") | 34 | + @Excel(name = "入库单号",type = Excel.Type.EXPORT) |
35 | @TableField(value = "receiptCode") | 35 | @TableField(value = "receiptCode") |
36 | @ApiModelProperty(value = "入库单") | 36 | @ApiModelProperty(value = "入库单") |
37 | private String receiptCode; | 37 | private String receiptCode; |
@@ -211,7 +211,7 @@ public class ReceiptDetail implements Serializable { | @@ -211,7 +211,7 @@ public class ReceiptDetail implements Serializable { | ||
211 | /** | 211 | /** |
212 | * 未收数量 | 212 | * 未收数量 |
213 | */ | 213 | */ |
214 | - @Excel(name = "实收数量") | 214 | + @Excel(name = "实收数量",type = Excel.Type.EXPORT) |
215 | @TableField(value = "taskQty") | 215 | @TableField(value = "taskQty") |
216 | @ApiModelProperty(value = "已收数量") | 216 | @ApiModelProperty(value = "已收数量") |
217 | private BigDecimal taskQty; | 217 | private BigDecimal taskQty; |
@@ -275,7 +275,7 @@ public class ReceiptDetail implements Serializable { | @@ -275,7 +275,7 @@ public class ReceiptDetail implements Serializable { | ||
275 | /** | 275 | /** |
276 | * 创建时间 | 276 | * 创建时间 |
277 | */ | 277 | */ |
278 | - @Excel(name = "创建时间",dateFormat="yyyy-MM-dd HH:mm:ss") | 278 | + @Excel(name = "创建时间",dateFormat="yyyy-MM-dd HH:mm:ss",type = Excel.Type.EXPORT) |
279 | @TableField(value = "created", fill = FieldFill.INSERT) | 279 | @TableField(value = "created", fill = FieldFill.INSERT) |
280 | @ApiModelProperty(value = "创建时间") | 280 | @ApiModelProperty(value = "创建时间") |
281 | private Date created; | 281 | private Date created; |
@@ -290,7 +290,7 @@ public class ReceiptDetail implements Serializable { | @@ -290,7 +290,7 @@ public class ReceiptDetail implements Serializable { | ||
290 | /** | 290 | /** |
291 | * 创建时间 | 291 | * 创建时间 |
292 | */ | 292 | */ |
293 | - @Excel(name = "最后修改时间",dateFormat="yyyy-MM-dd HH:mm:ss") | 293 | + @Excel(name = "最后修改时间",dateFormat="yyyy-MM-dd HH:mm:ss",type = Excel.Type.EXPORT) |
294 | @TableField(value = "lastUpdated", fill = FieldFill.INSERT_UPDATE) | 294 | @TableField(value = "lastUpdated", fill = FieldFill.INSERT_UPDATE) |
295 | @ApiModelProperty(value = "创建时间") | 295 | @ApiModelProperty(value = "创建时间") |
296 | private Date lastUpdated; | 296 | private Date lastUpdated; |
src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailService.java
@@ -6,6 +6,7 @@ import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; | @@ -6,6 +6,7 @@ import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; | ||
6 | import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; | 6 | import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; |
7 | import com.baomidou.mybatisplus.extension.service.IService; | 7 | import com.baomidou.mybatisplus.extension.service.IService; |
8 | import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | 8 | import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; |
9 | +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; | ||
9 | import com.huaheng.pc.task.taskDetail.domain.TaskDetail; | 10 | import com.huaheng.pc.task.taskDetail.domain.TaskDetail; |
10 | 11 | ||
11 | import java.util.List; | 12 | import java.util.List; |
@@ -65,4 +66,6 @@ public interface ReceiptDetailService extends IService<ReceiptDetail>{ | @@ -65,4 +66,6 @@ public interface ReceiptDetailService extends IService<ReceiptDetail>{ | ||
65 | List<ReceiptDetail> findByReceiptId(Integer id); | 66 | List<ReceiptDetail> findByReceiptId(Integer id); |
66 | 67 | ||
67 | boolean isNoCompletedQty(List<ReceiptDetail> receiptDetails,Integer receiptHeaderId); | 68 | boolean isNoCompletedQty(List<ReceiptDetail> receiptDetails,Integer receiptHeaderId); |
69 | + | ||
70 | + String insertExcelData(List<ReceiptDetail> list, boolean updateSupport, String operName); | ||
68 | } | 71 | } |
src/main/java/com/huaheng/pc/receipt/receiptDetail/service/ReceiptDetailServiceImpl.java
@@ -3,6 +3,7 @@ package com.huaheng.pc.receipt.receiptDetail.service; | @@ -3,6 +3,7 @@ package com.huaheng.pc.receipt.receiptDetail.service; | ||
3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
5 | import com.huaheng.common.constant.QuantityConstant; | 5 | import com.huaheng.common.constant.QuantityConstant; |
6 | +import com.huaheng.common.exception.BusinessException; | ||
6 | import com.huaheng.common.exception.service.ServiceException; | 7 | import com.huaheng.common.exception.service.ServiceException; |
7 | import com.huaheng.common.support.Convert; | 8 | import com.huaheng.common.support.Convert; |
8 | import com.huaheng.common.utils.StringUtils; | 9 | import com.huaheng.common.utils.StringUtils; |
@@ -27,6 +28,8 @@ import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; | @@ -27,6 +28,8 @@ import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; | ||
27 | import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; | 28 | import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; |
28 | import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; | 29 | import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; |
29 | import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; | 30 | import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; |
31 | +import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; | ||
32 | +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; | ||
30 | import com.huaheng.pc.system.dict.service.IDictDataService; | 33 | import com.huaheng.pc.system.dict.service.IDictDataService; |
31 | import com.huaheng.pc.task.taskDetail.domain.TaskDetail; | 34 | import com.huaheng.pc.task.taskDetail.domain.TaskDetail; |
32 | import org.springframework.stereotype.Service; | 35 | import org.springframework.stereotype.Service; |
@@ -222,6 +225,95 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R | @@ -222,6 +225,95 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R | ||
222 | return false; | 225 | return false; |
223 | } | 226 | } |
224 | 227 | ||
228 | + @Override | ||
229 | + public String insertExcelData(List<ReceiptDetail> list, boolean updateSupport, String operName) { | ||
230 | + if (StringUtils.isNull(list) || list.size() == 0) { | ||
231 | + throw new BusinessException("导入数据不能为空!"); | ||
232 | + } | ||
233 | + ReceiptHeader receiptHeader=createHeader(list); | ||
234 | + int successNum = 0; | ||
235 | + int failureNum = 0; | ||
236 | + StringBuilder successMsg = new StringBuilder(); | ||
237 | + StringBuilder failureMsg = new StringBuilder(); | ||
238 | + for (ReceiptDetail importData : list) { | ||
239 | + /*if(StringUtils.isEmpty(importData.getWarehouseCode())){ | ||
240 | + failureNum++; | ||
241 | + String msg = "<br/>" + failureNum + "、仓库编码为空 导入失败:"; | ||
242 | + failureMsg.append(msg ); | ||
243 | + continue; | ||
244 | + } | ||
245 | + if(StringUtils.isEmpty(importData.getCompanyCode())){ | ||
246 | + failureNum++; | ||
247 | + String msg = "<br/>" + failureNum + "、货主编码为空 导入失败:"; | ||
248 | + failureMsg.append(msg ); | ||
249 | + continue; | ||
250 | + }*/ | ||
251 | + if(StringUtils.isNull(importData.getQty())){ | ||
252 | + failureNum++; | ||
253 | + String msg = "<br/>" + failureNum + "、数量为空 导入失败:"; | ||
254 | + failureMsg.append(msg ); | ||
255 | + continue; | ||
256 | + } | ||
257 | + try { | ||
258 | + importData.setReceiptId(receiptHeader.getId()); | ||
259 | + importData.setReceiptCode(receiptHeader.getCode()); | ||
260 | + Material material = materialService.findAllByCode(importData.getMaterialCode()); | ||
261 | + if(material==null){ | ||
262 | + String msgs = "<br/>" + failureNum + "、物料编码 " + importData.getMaterialCode() + " 未找到 导入失败:"; | ||
263 | + failureNum++; | ||
264 | + failureMsg.append(msgs); | ||
265 | + continue; | ||
266 | + } | ||
267 | + importData.setMaterialName(material.getName()); | ||
268 | + importData.setMaterialSpec(material.getSpec()); | ||
269 | + importData.setMaterialUnit(material.getUnit()); | ||
270 | + importData.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
271 | + importData.setCompanyCode(QuantityConstant.DEFAULT_COMPANY); | ||
272 | + importData.setInventorySts(QuantityConstant.GOOD); | ||
273 | + this.save(importData); | ||
274 | + receiptHeader.setTotalQty(receiptHeader.getTotalQty().add(importData.getQty())); | ||
275 | + receiptHeader.setTotalLines(receiptHeader.getTotalLines()+1); | ||
276 | + receiptHeaderService.updateById(receiptHeader); | ||
277 | + successNum++; | ||
278 | + successMsg.append("<br/>" + successNum + "、数据 " + importData.getMaterialCode() + " 导入成功"); | ||
279 | + | ||
280 | + } catch (Exception e) { | ||
281 | + failureNum++; | ||
282 | + String msg = "<br/>" + failureNum + "、物料编码 " + importData.getMaterialCode() + " 导入失败:"; | ||
283 | + failureMsg.append(msg + e.getMessage()); | ||
284 | + } | ||
285 | + } | ||
286 | + if (failureNum > 0) { | ||
287 | + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); | ||
288 | + throw new BusinessException(failureMsg.toString()); | ||
289 | + } else { | ||
290 | + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); | ||
291 | + } | ||
292 | + return successMsg.toString()+"\n"+failureMsg.toString(); | ||
293 | + } | ||
294 | + | ||
295 | + private ReceiptHeader createHeader(List<ReceiptDetail> list){ | ||
296 | + ReceiptHeader receiptHeader=new ReceiptHeader(); | ||
297 | + String code =receiptHeaderService.createCode(QuantityConstant.RECEIPT_QTCKLX); | ||
298 | + receiptHeader.setId(null); | ||
299 | + receiptHeader.setLastUpdated(null); | ||
300 | + receiptHeader.setLastUpdatedBy((ShiroUtils.getLoginName())); | ||
301 | + receiptHeader.setCreated(null); | ||
302 | + receiptHeader.setCreatedBy((ShiroUtils.getLoginName())); | ||
303 | + receiptHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); | ||
304 | + receiptHeader.setCompanyCode(QuantityConstant.DEFAULT_COMPANY); | ||
305 | + receiptHeader.setCode(code); | ||
306 | + receiptHeader.setReceiptType(QuantityConstant.RECEIPT_QTCKLX); | ||
307 | + receiptHeader.setTotalLines(BigDecimal.ZERO.intValue()); | ||
308 | + receiptHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_BUILD); | ||
309 | + receiptHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_BUILD); | ||
310 | + receiptHeader.setTotalQty(BigDecimal.ZERO); | ||
311 | + if (!receiptHeaderService.save(receiptHeader)) { | ||
312 | + throw new ServiceException("导入失败,添加出库单头表失败"); | ||
313 | + } | ||
314 | + return receiptHeader; | ||
315 | + } | ||
316 | + | ||
225 | /** | 317 | /** |
226 | * 根据流程配置更新入库明细下一流程 | 318 | * 根据流程配置更新入库明细下一流程 |
227 | * @param receiptDetail | 319 | * @param receiptDetail |
src/main/java/com/huaheng/pc/receipt/receiving/controller/ReceivingController.java
@@ -39,6 +39,7 @@ import org.springframework.web.bind.annotation.ResponseBody; | @@ -39,6 +39,7 @@ import org.springframework.web.bind.annotation.ResponseBody; | ||
39 | import javax.annotation.Resource; | 39 | import javax.annotation.Resource; |
40 | import java.math.BigDecimal; | 40 | import java.math.BigDecimal; |
41 | import java.util.ArrayList; | 41 | import java.util.ArrayList; |
42 | +import java.util.Arrays; | ||
42 | import java.util.List; | 43 | import java.util.List; |
43 | import java.util.Map; | 44 | import java.util.Map; |
44 | 45 | ||
@@ -154,7 +155,7 @@ public class ReceivingController extends BaseController { | @@ -154,7 +155,7 @@ public class ReceivingController extends BaseController { | ||
154 | //找到主单的账套和仓库 | 155 | //找到主单的账套和仓库 |
155 | LambdaQueryWrapper<ReceiptHeader> lambdaQueryWrapper= Wrappers.lambdaQuery(); | 156 | LambdaQueryWrapper<ReceiptHeader> lambdaQueryWrapper= Wrappers.lambdaQuery(); |
156 | lambdaQueryWrapper.eq(ReceiptHeader::getCode,code) | 157 | lambdaQueryWrapper.eq(ReceiptHeader::getCode,code) |
157 | - .eq(ReceiptHeader::getCompanyCode, ShiroUtils.getCompanyCodeList()) | 158 | + .in(ReceiptHeader::getCompanyCode, ShiroUtils.getCompanyCodeList()) |
158 | .eq(ReceiptHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()); | 159 | .eq(ReceiptHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()); |
159 | ReceiptHeader receiptHeader=receiptHeaderService.getOne(lambdaQueryWrapper); | 160 | ReceiptHeader receiptHeader=receiptHeaderService.getOne(lambdaQueryWrapper); |
160 | if(receiptHeader == null) { | 161 | if(receiptHeader == null) { |
@@ -164,7 +165,7 @@ public class ReceivingController extends BaseController { | @@ -164,7 +165,7 @@ public class ReceivingController extends BaseController { | ||
164 | //找到子单物料 | 165 | //找到子单物料 |
165 | LambdaQueryWrapper<ReceiptDetail> lambdaQuery=Wrappers.lambdaQuery(); | 166 | LambdaQueryWrapper<ReceiptDetail> lambdaQuery=Wrappers.lambdaQuery(); |
166 | lambdaQuery.eq(ReceiptDetail::getReceiptCode,code) | 167 | lambdaQuery.eq(ReceiptDetail::getReceiptCode,code) |
167 | - .eq(ReceiptDetail::getCompanyCode, ShiroUtils.getCompanyCodeList()) | 168 | + .in(ReceiptDetail::getCompanyCode, ShiroUtils.getCompanyCodeList()) |
168 | .eq(ReceiptDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()) | 169 | .eq(ReceiptDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()) |
169 | .eq(ReceiptDetail::getId,id); | 170 | .eq(ReceiptDetail::getId,id); |
170 | ReceiptDetail receiptDetail=receiptDetailService.getOne(lambdaQuery); | 171 | ReceiptDetail receiptDetail=receiptDetailService.getOne(lambdaQuery); |
src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java
@@ -15,6 +15,9 @@ import com.huaheng.framework.web.domain.AjaxResult; | @@ -15,6 +15,9 @@ import com.huaheng.framework.web.domain.AjaxResult; | ||
15 | import com.huaheng.framework.web.page.PageDomain; | 15 | import com.huaheng.framework.web.page.PageDomain; |
16 | import com.huaheng.framework.web.page.TableDataInfo; | 16 | import com.huaheng.framework.web.page.TableDataInfo; |
17 | import com.huaheng.framework.web.page.TableSupport; | 17 | import com.huaheng.framework.web.page.TableSupport; |
18 | +import com.huaheng.framework.web.service.ConfigService; | ||
19 | +import com.huaheng.pc.config.container.domain.Container; | ||
20 | +import com.huaheng.pc.config.container.service.ContainerService; | ||
18 | import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerHeader; | 21 | import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerHeader; |
19 | import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader; | 22 | import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader; |
20 | import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; | 23 | import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; |
@@ -25,8 +28,8 @@ import org.springframework.stereotype.Controller; | @@ -25,8 +28,8 @@ import org.springframework.stereotype.Controller; | ||
25 | import org.springframework.ui.ModelMap; | 28 | import org.springframework.ui.ModelMap; |
26 | import org.springframework.web.bind.annotation.*; | 29 | import org.springframework.web.bind.annotation.*; |
27 | 30 | ||
28 | -import java.util.Arrays; | ||
29 | -import java.util.List; | 31 | +import javax.annotation.Resource; |
32 | +import java.util.*; | ||
30 | 33 | ||
31 | /** | 34 | /** |
32 | * 出库组盘头 信息操作处理 | 35 | * 出库组盘头 信息操作处理 |
@@ -40,6 +43,10 @@ public class ShipmentContainerHeaderController extends BaseController | @@ -40,6 +43,10 @@ public class ShipmentContainerHeaderController extends BaseController | ||
40 | { | 43 | { |
41 | @Autowired | 44 | @Autowired |
42 | private ShipmentContainerHeaderService shipmentContainerHeaderService; | 45 | private ShipmentContainerHeaderService shipmentContainerHeaderService; |
46 | + @Resource | ||
47 | + private ContainerService containerService; | ||
48 | + @Resource | ||
49 | + private ConfigService configService; | ||
43 | 50 | ||
44 | 51 | ||
45 | private String prefix = "shipment/shipmentContainerHeader"; | 52 | private String prefix = "shipment/shipmentContainerHeader"; |
@@ -176,5 +183,44 @@ public class ShipmentContainerHeaderController extends BaseController | @@ -176,5 +183,44 @@ public class ShipmentContainerHeaderController extends BaseController | ||
176 | ajaxResult=shipmentContainerHeaderService.createTask(idList); | 183 | ajaxResult=shipmentContainerHeaderService.createTask(idList); |
177 | return ajaxResult; | 184 | return ajaxResult; |
178 | } | 185 | } |
186 | + /** | ||
187 | + * 生成任务 | ||
188 | + */ | ||
189 | + @RequiresPermissions("shipment:container:add") | ||
190 | + @Log(title ="出库-任务生成", operating = "批量生成任务", action = BusinessType.UPDATE) | ||
191 | + @PostMapping( "/floorCombination") | ||
192 | + @ResponseBody | ||
193 | + public AjaxResult floorCombination(String ids) | ||
194 | + { | ||
195 | + AjaxResult ajaxResult=new AjaxResult(); | ||
196 | + if (StringUtils.isEmpty(ids)) { | ||
197 | + return AjaxResult.error("id不能为空"); | ||
198 | + } | ||
199 | + Set<Integer> floorIds = new HashSet<>(); | ||
200 | + List<Integer> idList = Arrays.asList(Convert.toIntArray(ids)); | ||
201 | + String floorAutoCreateTask = configService.getKey(QuantityConstant.FLOOR_AUTO_CREATE_TASK); | ||
202 | + for (Integer id : idList) { | ||
203 | + //获取表头 | ||
204 | + ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getById(id); | ||
205 | + if(shipmentContainerHeader == null) { | ||
206 | + return AjaxResult.error("出库货箱id:" + id + "未找到,操作中止"); | ||
207 | + } | ||
208 | + if(shipmentContainerHeader.getStatus() >= QuantityConstant.TASK_STATUS_RELEASE){ | ||
209 | + return AjaxResult.error("出库货箱编码(" + shipmentContainerHeader.getContainerCode() + ")已经生成任务,请不要重复生成,操作中止"); | ||
210 | + } | ||
211 | + String containerCode = shipmentContainerHeader.getContainerCode(); | ||
212 | + if(StringUtils.isNotEmpty(floorAutoCreateTask)) { | ||
213 | + String[] floorType = floorAutoCreateTask.split(","); | ||
214 | + List<String> floorTypes = Arrays.asList(floorType); | ||
215 | + Container container = containerService.getContainerByCode(containerCode); | ||
216 | + if (floorTypes.contains(container.getContainerType())) { | ||
217 | + floorIds.add(id); | ||
218 | + } | ||
219 | + } | ||
220 | + } | ||
221 | + | ||
222 | + ajaxResult=shipmentContainerHeaderService.createTask(new ArrayList<>(floorIds)); | ||
223 | + return ajaxResult; | ||
224 | + } | ||
179 | 225 | ||
180 | } | 226 | } |
src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java
@@ -297,7 +297,7 @@ public class ShipmentDetailController extends BaseController | @@ -297,7 +297,7 @@ public class ShipmentDetailController extends BaseController | ||
297 | @ResponseBody | 297 | @ResponseBody |
298 | public AjaxResult importTemplate () { | 298 | public AjaxResult importTemplate () { |
299 | ExcelUtil<ShipmentDetail> util = new ExcelUtil<>(ShipmentDetail.class); | 299 | ExcelUtil<ShipmentDetail> util = new ExcelUtil<>(ShipmentDetail.class); |
300 | - return util.importTemplateExcel("入库详情"); | 300 | + return util.importTemplateExcel("出库详情"); |
301 | } | 301 | } |
302 | 302 | ||
303 | 303 |
src/main/java/com/huaheng/pc/shipment/shipmentDetail/domain/ShipmentDetail.java
@@ -54,7 +54,7 @@ public class ShipmentDetail implements Serializable { | @@ -54,7 +54,7 @@ public class ShipmentDetail implements Serializable { | ||
54 | /** | 54 | /** |
55 | * 出库单号 | 55 | * 出库单号 |
56 | */ | 56 | */ |
57 | - @Excel(name = "出库单号") | 57 | + @Excel(name = "出库单号",type = Excel.Type.EXPORT) |
58 | @TableField(value = "shipmentCode") | 58 | @TableField(value = "shipmentCode") |
59 | @ApiModelProperty(value="出库单号") | 59 | @ApiModelProperty(value="出库单号") |
60 | private String shipmentCode; | 60 | private String shipmentCode; |
@@ -146,7 +146,7 @@ public class ShipmentDetail implements Serializable { | @@ -146,7 +146,7 @@ public class ShipmentDetail implements Serializable { | ||
146 | /** | 146 | /** |
147 | * 已出数量 | 147 | * 已出数量 |
148 | */ | 148 | */ |
149 | - @Excel(name = "已出数量") | 149 | + @Excel(name = "已出数量",type = Excel.Type.EXPORT) |
150 | @TableField(value = "taskQty") | 150 | @TableField(value = "taskQty") |
151 | @ApiModelProperty(value="已出数量") | 151 | @ApiModelProperty(value="已出数量") |
152 | private BigDecimal taskQty; | 152 | private BigDecimal taskQty; |
@@ -288,7 +288,7 @@ public class ShipmentDetail implements Serializable { | @@ -288,7 +288,7 @@ public class ShipmentDetail implements Serializable { | ||
288 | /** | 288 | /** |
289 | * 创建时间 | 289 | * 创建时间 |
290 | */ | 290 | */ |
291 | - @Excel(name = "创建时间",dateFormat="yyyy-MM-dd HH:mm:ss") | 291 | + @Excel(name = "创建时间",dateFormat="yyyy-MM-dd HH:mm:ss",type = Excel.Type.EXPORT) |
292 | @TableField(value = "created") | 292 | @TableField(value = "created") |
293 | @ApiModelProperty(value="创建时间") | 293 | @ApiModelProperty(value="创建时间") |
294 | private Date created; | 294 | private Date created; |
@@ -304,7 +304,7 @@ public class ShipmentDetail implements Serializable { | @@ -304,7 +304,7 @@ public class ShipmentDetail implements Serializable { | ||
304 | /** | 304 | /** |
305 | * 创建时间 | 305 | * 创建时间 |
306 | */ | 306 | */ |
307 | - @Excel(name = "最后修改时间",dateFormat="yyyy-MM-dd HH:mm:ss") | 307 | + @Excel(name = "最后修改时间",dateFormat="yyyy-MM-dd HH:mm:ss",type = Excel.Type.EXPORT) |
308 | @TableField(value = "lastUpdated") | 308 | @TableField(value = "lastUpdated") |
309 | @ApiModelProperty(value="创建时间") | 309 | @ApiModelProperty(value="创建时间") |
310 | private Date lastUpdated; | 310 | private Date lastUpdated; |
src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java
@@ -407,7 +407,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | @@ -407,7 +407,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | ||
407 | importData.setShipmentCode(shipmentHeader.getCode()); | 407 | importData.setShipmentCode(shipmentHeader.getCode()); |
408 | Material material = materialService.findAllByCode(importData.getMaterialCode()); | 408 | Material material = materialService.findAllByCode(importData.getMaterialCode()); |
409 | if(material==null){ | 409 | if(material==null){ |
410 | - String msgs = "<br/>" + failureNum + "、物料编码 " + importData.getMaterialCode() + " 导入失败:"; | 410 | + String msgs = "<br/>" + failureNum + "、物料编码 " + importData.getMaterialCode() + " 未找到 导入失败:"; |
411 | failureNum++; | 411 | failureNum++; |
412 | failureMsg.append(msgs); | 412 | failureMsg.append(msgs); |
413 | continue; | 413 | continue; |
@@ -419,6 +419,9 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | @@ -419,6 +419,9 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | ||
419 | importData.setCompanyCode(QuantityConstant.DEFAULT_COMPANY); | 419 | importData.setCompanyCode(QuantityConstant.DEFAULT_COMPANY); |
420 | importData.setInventorySts(QuantityConstant.GOOD); | 420 | importData.setInventorySts(QuantityConstant.GOOD); |
421 | this.save(importData); | 421 | this.save(importData); |
422 | + shipmentHeader.setTotalQty(shipmentHeader.getTotalQty().add(importData.getQty())); | ||
423 | + shipmentHeader.setTotalLines(shipmentHeader.getTotalLines()+1); | ||
424 | + shipmentHeaderService.updateById(shipmentHeader); | ||
422 | successNum++; | 425 | successNum++; |
423 | successMsg.append("<br/>" + successNum + "、数据 " + importData.getMaterialCode() + " 导入成功"); | 426 | successMsg.append("<br/>" + successNum + "、数据 " + importData.getMaterialCode() + " 导入成功"); |
424 | 427 | ||
@@ -449,11 +452,10 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | @@ -449,11 +452,10 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | ||
449 | shipmentHeader.setCompanyCode(QuantityConstant.DEFAULT_COMPANY); | 452 | shipmentHeader.setCompanyCode(QuantityConstant.DEFAULT_COMPANY); |
450 | shipmentHeader.setCode(code); | 453 | shipmentHeader.setCode(code); |
451 | shipmentHeader.setShipmentType(QuantityConstant.SHIPMENT_QTCKLX); | 454 | shipmentHeader.setShipmentType(QuantityConstant.SHIPMENT_QTCKLX); |
452 | - shipmentHeader.setTotalLines(list.size()); | 455 | + shipmentHeader.setTotalLines(BigDecimal.ZERO.intValue()); |
453 | shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_BUILD); | 456 | shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_BUILD); |
454 | shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_BUILD); | 457 | shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_BUILD); |
455 | - BigDecimal bigDecimal = list.stream().map(ShipmentDetail::getQty).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); | ||
456 | - shipmentHeader.setTotalQty(bigDecimal); | 458 | + shipmentHeader.setTotalQty(BigDecimal.ZERO); |
457 | if (!shipmentHeaderService.save(shipmentHeader)) { | 459 | if (!shipmentHeaderService.save(shipmentHeader)) { |
458 | throw new ServiceException("导入失败,添加出库单头表失败"); | 460 | throw new ServiceException("导入失败,添加出库单头表失败"); |
459 | } | 461 | } |
src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java
@@ -216,6 +216,13 @@ public class ReceiptTaskService { | @@ -216,6 +216,13 @@ public class ReceiptTaskService { | ||
216 | } | 216 | } |
217 | String taskId = String.valueOf(task.getId()); | 217 | String taskId = String.valueOf(task.getId()); |
218 | taskIds.add(taskId); | 218 | taskIds.add(taskId); |
219 | + if(QuantityConstant.ZONE_FLOOR.equals(task.getZoneCode())){ | ||
220 | + try{ | ||
221 | + AjaxResult ajaxResult = taskHeaderService.completeTask(task.getToLocation()); | ||
222 | + }catch (Exception e){ | ||
223 | + e.printStackTrace(); | ||
224 | + } | ||
225 | + } | ||
219 | } else { | 226 | } else { |
220 | throw new ServiceException("任务生成失败"); | 227 | throw new ServiceException("任务生成失败"); |
221 | } | 228 | } |
src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java
@@ -76,6 +76,8 @@ public class ShipmentTaskService { | @@ -76,6 +76,8 @@ public class ShipmentTaskService { | ||
76 | private ShipmentPreferenceService shipmentPreferenceService; | 76 | private ShipmentPreferenceService shipmentPreferenceService; |
77 | @Resource | 77 | @Resource |
78 | private ConfigService configService; | 78 | private ConfigService configService; |
79 | + @Resource | ||
80 | + private ShipmentTaskService shipmentTaskService; | ||
79 | /** | 81 | /** |
80 | * 创建出库任务 | 82 | * 创建出库任务 |
81 | * @param shipmentTaskCreateModel | 83 | * @param shipmentTaskCreateModel |
@@ -231,6 +233,13 @@ public class ShipmentTaskService { | @@ -231,6 +233,13 @@ public class ShipmentTaskService { | ||
231 | if (!containerHeaderService.updateById(shipmentContainerHeader)) { | 233 | if (!containerHeaderService.updateById(shipmentContainerHeader)) { |
232 | throw new ServiceException("修改组盘头状态失败,sql报错"); | 234 | throw new ServiceException("修改组盘头状态失败,sql报错"); |
233 | } | 235 | } |
236 | + if(QuantityConstant.ZONE_FLOOR.equals(task.getZoneCode())){ | ||
237 | + try{ | ||
238 | + AjaxResult ajaxResult = shipmentTaskService.completeShipmentTask(task); | ||
239 | + }catch (Exception e){ | ||
240 | + e.printStackTrace(); | ||
241 | + } | ||
242 | + } | ||
234 | 243 | ||
235 | return AjaxResult.success(taskId); | 244 | return AjaxResult.success(taskId); |
236 | } | 245 | } |
src/main/resources/application-druid.properties
@@ -2,20 +2,19 @@ | @@ -2,20 +2,19 @@ | ||
2 | spring.datasource.type=com.alibaba.druid.pool.DruidDataSource | 2 | spring.datasource.type=com.alibaba.druid.pool.DruidDataSource |
3 | spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver | 3 | spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver |
4 | # Ö÷¿â | 4 | # Ö÷¿â |
5 | -spring.datasource.druid.master.url=jdbc:mysql://172.16.29.45:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2b8 | ||
6 | -#spring.datasource.druid.master.url=jdbc:mysql://localhost:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2b8 | 5 | +#spring.datasource.druid.master.url=jdbc:mysql://172.16.29.45:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2b8 |
6 | +spring.datasource.druid.master.url=jdbc:mysql://localhost:3306/wms_sushouqingyuan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2b8 | ||
7 | +#spring.datasource.druid.master.url=jdbc:mysql://localhost:3306/wms_suzhouqingyuan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2b8 | ||
7 | #spring.datasource.druid.master.url=jdbc:mysql://172.16.29.45:3306/huahengExample?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false | 8 | #spring.datasource.druid.master.url=jdbc:mysql://172.16.29.45:3306/huahengExample?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false |
8 | #spring.datasource.druid.master.url=jdbc:mysql://117.62.222.186:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2b8 | 9 | #spring.datasource.druid.master.url=jdbc:mysql://117.62.222.186:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2b8 |
9 | 10 | ||
10 | #spring.datasource.druid.master.username=softhuaheng | 11 | #spring.datasource.druid.master.username=softhuaheng |
11 | #spring.datasource.druid.master.password=HHrobot123. | 12 | #spring.datasource.druid.master.password=HHrobot123. |
13 | +#?? | ||
14 | +spring.datasource.druid.master.username=huaheng | ||
15 | +spring.datasource.druid.master.password=HHrobot123. | ||
12 | #spring.datasource.druid.master.username=root | 16 | #spring.datasource.druid.master.username=root |
13 | #spring.datasource.druid.master.password=hhsoftware | 17 | #spring.datasource.druid.master.password=hhsoftware |
14 | -#?? | ||
15 | -#spring.datasource.druid.master.username=huaheng | ||
16 | -#spring.datasource.druid.master.password=HHrobot123. | ||
17 | -spring.datasource.druid.master.username=root | ||
18 | -spring.datasource.druid.master.password=hhsoftware | ||
19 | # ´Ó¿â | 18 | # ´Ó¿â |
20 | spring.datasource.druid.slave.open = false | 19 | spring.datasource.druid.slave.open = false |
21 | spring.datasource.druid.slave.url=jdbc:mysql://117.62.222.186:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false | 20 | spring.datasource.druid.slave.url=jdbc:mysql://117.62.222.186:3306/wms_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false |
src/main/resources/templates/receipt/receiptHeader/receiptHeader.html
@@ -90,6 +90,9 @@ | @@ -90,6 +90,9 @@ | ||
90 | <a class="btn btn-outline btn-primary btn-rounded" onclick="approval()" shiro:hasPermission="receipt:receiptHeader:review"> | 90 | <a class="btn btn-outline btn-primary btn-rounded" onclick="approval()" shiro:hasPermission="receipt:receiptHeader:review"> |
91 | <i class="fa fa-level-up"></i> 审核通过 | 91 | <i class="fa fa-level-up"></i> 审核通过 |
92 | </a> | 92 | </a> |
93 | + <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="receipt:receiptHeader:add"> | ||
94 | + <i class="fa fa-upload"></i>导入 | ||
95 | + </a> | ||
93 | <!-- <a class="btn btn-outline btn-primary btn-rounded" onclick="addPool()" shiro:hasPermission="receipt:receiptHeader:addPool">--> | 96 | <!-- <a class="btn btn-outline btn-primary btn-rounded" onclick="addPool()" shiro:hasPermission="receipt:receiptHeader:addPool">--> |
94 | <!-- <i class="fa fa-check-circle"></i> 加入订单池--> | 97 | <!-- <i class="fa fa-check-circle"></i> 加入订单池--> |
95 | <!-- </a>--> | 98 | <!-- </a>--> |
@@ -201,6 +204,20 @@ | @@ -201,6 +204,20 @@ | ||
201 | </div> | 204 | </div> |
202 | </div> | 205 | </div> |
203 | </div> | 206 | </div> |
207 | +<script id="importTpl" type="text/template"> | ||
208 | + <form enctype="multipart/form-data" class="mt20 mb10"> | ||
209 | + <div class="col-xs-offset-1"> | ||
210 | + <input type="file" id="file" name="file"/> | ||
211 | + <div class="mt10 pt5"> | ||
212 | + <input type="checkbox" id="updateSupport" name="updateSupport" title="如果数据已经存在,更新这条数据。"> 是否更新已经存在的数据 | ||
213 | + <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a> | ||
214 | + </div> | ||
215 | + <font color="red" class="pull-left mt10"> | ||
216 | + 提示:仅允许导入“xls”或“xlsx”格式文件! | ||
217 | + </font> | ||
218 | + </div> | ||
219 | + </form> | ||
220 | +</script> | ||
204 | <div th:include="include :: footer"></div> | 221 | <div th:include="include :: footer"></div> |
205 | <script th:inline="javascript"> | 222 | <script th:inline="javascript"> |
206 | var printFlag = [[${@permission.hasPermi('receipt:receiptHeader:report')}]]; | 223 | var printFlag = [[${@permission.hasPermi('receipt:receiptHeader:report')}]]; |
@@ -234,6 +251,8 @@ | @@ -234,6 +251,8 @@ | ||
234 | updateUrl: prefix + "/edit/{id}", | 251 | updateUrl: prefix + "/edit/{id}", |
235 | removeUrl: prefix + "/remove", | 252 | removeUrl: prefix + "/remove", |
236 | exportUrl: detailPrefix + "/export", | 253 | exportUrl: detailPrefix + "/export", |
254 | + importUrl: detailPrefix+"/importData",//导入 | ||
255 | + importTemplateUrl: detailPrefix + "/importTemplate",//导入模板 | ||
237 | modalName: "入库单", | 256 | modalName: "入库单", |
238 | sidePagination:"server", | 257 | sidePagination:"server", |
239 | showExport: true, //导出 | 258 | showExport: true, //导出 |
src/main/resources/templates/receipt/receiving/receiving.html
@@ -152,8 +152,8 @@ | @@ -152,8 +152,8 @@ | ||
152 | if(value.data){ | 152 | if(value.data){ |
153 | $("#bootstrap-table").bootstrapTable('load',value.data); | 153 | $("#bootstrap-table").bootstrapTable('load',value.data); |
154 | for (var i = 0; i < value.data.length; i++) { | 154 | for (var i = 0; i < value.data.length; i++) { |
155 | - qty_show=value.data[i].totalQty + qty_show; | ||
156 | - qtyCompleted_show=value.data[i].openQty + qtyCompleted_show; | 155 | + qty_show=value.data[i].qty + qty_show; |
156 | + qtyCompleted_show=value.data[i].taskQty + qtyCompleted_show; | ||
157 | } | 157 | } |
158 | $("#material_length").text(value.data.length); | 158 | $("#material_length").text(value.data.length); |
159 | $("#qty_length").text(qty_show); | 159 | $("#qty_length").text(qty_show); |
src/main/resources/templates/shipment/shippingCombination/shippingCombination.html
@@ -67,6 +67,9 @@ | @@ -67,6 +67,9 @@ | ||
67 | <a class="btn btn-outline btn-warning btn-rounded" onclick="batchCreateTask()"> | 67 | <a class="btn btn-outline btn-warning btn-rounded" onclick="batchCreateTask()"> |
68 | <i class="fa fa-edit"></i> 生成任务 | 68 | <i class="fa fa-edit"></i> 生成任务 |
69 | </a> | 69 | </a> |
70 | + <a class="btn btn-outline btn-primary btn-rounded" onclick="floorCombination()"> | ||
71 | + <i class="fa fa-edit"></i> 平库生成任务 | ||
72 | + </a> | ||
70 | <a class="menuItem btn btn-outline btn-warning btn-rounded" onclick="jumpReceiptTask()"> | 73 | <a class="menuItem btn btn-outline btn-warning btn-rounded" onclick="jumpReceiptTask()"> |
71 | <i class="fa fa-edit"></i> 跳转任务页面 | 74 | <i class="fa fa-edit"></i> 跳转任务页面 |
72 | </a> | 75 | </a> |
@@ -411,6 +414,39 @@ | @@ -411,6 +414,39 @@ | ||
411 | chooseStation(ids); | 414 | chooseStation(ids); |
412 | } | 415 | } |
413 | 416 | ||
417 | + function floorCombination() { | ||
418 | + let rows=$("#bootstrap-table2").bootstrapTable('getSelections'); | ||
419 | + if (rows.length == 0) { | ||
420 | + $.modal.alertWarning("请至少选择一条记录"); | ||
421 | + return; | ||
422 | + } | ||
423 | + var ids = ""; | ||
424 | + for(var i=0; i<rows.length; i++) { | ||
425 | + if(ids == "") { | ||
426 | + ids = rows[i].shippingContainerId; | ||
427 | + } else { | ||
428 | + ids = ids + "," + rows[i].shippingContainerId | ||
429 | + } | ||
430 | + } | ||
431 | + var url = ctx + "shipment/shipmentContainerHeader/floorCombination"; | ||
432 | + var data = { "ids": ids }; | ||
433 | + $.ajax({ | ||
434 | + url: url, | ||
435 | + type:'post', | ||
436 | + data: data, | ||
437 | + success:function (response) { | ||
438 | + if (response.code == web_status.SUCCESS) { | ||
439 | + $("#bootstrap-table2").bootstrapTable('refresh',{function (){ | ||
440 | + | ||
441 | + }}); | ||
442 | + } else { | ||
443 | + $.modal.alertError(response.msg); | ||
444 | + } | ||
445 | + $.modal.closeLoading(); | ||
446 | + } | ||
447 | + }) | ||
448 | + } | ||
449 | + | ||
414 | 450 | ||
415 | /* 批量取消组盘 */ | 451 | /* 批量取消组盘 */ |
416 | function batchRemoveHead() { | 452 | function batchRemoveHead() { |