diff --git a/wms_pro/hd/nladmin-system/pom.xml b/wms_pro/hd/nladmin-system/pom.xml
index 63cdbaa4..32eeb3bc 100644
--- a/wms_pro/hd/nladmin-system/pom.xml
+++ b/wms_pro/hd/nladmin-system/pom.xml
@@ -269,6 +269,18 @@
commons-configuration
${configuration.version}
+
+
+ jcifs
+ jcifs
+ 1.3.17
+
+
+ com.jcraft
+ jsch
+ 0.1.55
+
+
com.google.guava
guava
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartClientServer.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartClientServer.java
index 89a82c47..231a64f8 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartClientServer.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/websocket/heartSocket/clientSocket/HeartClientServer.java
@@ -97,9 +97,8 @@ public class HeartClientServer extends AbstraceServer {
System.out.println("pingpong被调用次数"+i++);
executor.submit(()->{
while (channel!=null && channel.isActive()){
- System.out.println(channel.id().toString()+"----ppp-----");
try {
- Thread.sleep(2000);
+ Thread.sleep(3000);
ByteBuf log = Unpooled.copiedBuffer("ping--222-", CharsetUtil.UTF_8);
if (channel==null){
return;
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/impl/MdGruopDickServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/impl/MdGruopDickServiceImpl.java
index 35843539..fa760e28 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/impl/MdGruopDickServiceImpl.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/impl/MdGruopDickServiceImpl.java
@@ -77,11 +77,14 @@ public class MdGruopDickServiceImpl extends ServiceImpl tableData = (List)forms.remove("item");
if (CollectionUtils.isEmpty(forms)){
- throw new BadRequestException("入库失败:入库明细数据不能为空");
+ throw new BadRequestException("组盘失败:入库明细数据不能为空");
}
JSONObject item0 = new JSONObject(tableData.get(0));
String vehicle0 = item0.getString("vehicle_code");
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.vehileInfo(vehicle0);
+ if(vehicleInfo==null){
+ throw new BadRequestException("组盘失败:载具"+vehicle0+"信息不存在请在载具信息中维护");
+ }
Integer h = vehicleInfo.getH();
RedissonUtils.lock(()->{
QueryWrapper query = new QueryWrapper()
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/PdaOutController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/PdaOutController.java
index 05f5429d..b66c1233 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/PdaOutController.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/PdaOutController.java
@@ -3,10 +3,13 @@ package org.nl.wms.pda_manage.iostorage;
import cn.dev33.satoken.annotation.SaIgnore;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.apache.commons.lang3.StringUtils;
import org.nl.common.TableDataInfo;
import org.nl.common.anno.Log;
import org.nl.common.domain.entity.PageQuery;
+import org.nl.common.domain.exception.BadRequestException;
import org.nl.common.enums.StatusEnum;
+import org.nl.common.utils.ListOf;
import org.nl.common.utils.MapOf;
import org.nl.common.utils.RedissonUtils;
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
@@ -72,6 +75,17 @@ public class PdaOutController {
return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query,page)), HttpStatus.OK);
}
+ @GetMapping("orderConfirm")
+ @Log("查询单据数据")
+ @SaIgnore
+ public ResponseEntity> orderConfirm(String form_code) {
+ if (StringUtils.isEmpty(form_code)){
+ throw new BadRequestException("请求参数不能为空");
+ }
+ PmFormDataDto pmFormDataDto = iPmFormDataService.queryErpCode(form_code);
+ return new ResponseEntity<>(TableDataInfo.build(ListOf.of(pmFormDataDto)), HttpStatus.OK);
+ }
+
/**
*
*/
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaFormOutDtl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaFormOutDtl.java
index 71a9afac..c5013d0a 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaFormOutDtl.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaFormOutDtl.java
@@ -86,15 +86,23 @@ public class PdaFormOutDtl {
private String single_weight;
/**
- * 数量
+ * 申请数量
*/
private BigDecimal qty;
+ /**
+ * 申请数量
+ */
+ private BigDecimal sto_qty;
+ /**
+ * 计划数量
+ */
+ private BigDecimal plan_qty;
/**
* 已经分配数量
*/
private BigDecimal assign_qty;
/**
- * 分配数量
+ * 出库数量
*/
private BigDecimal now_assign_qty = assign_qty;
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java
index 813dfe22..4764ac18 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java
@@ -6,8 +6,10 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.kingdee.bos.webapi.entity.IdentifyInfo;
import com.kingdee.bos.webapi.sdk.K3CloudApi;
+import jcifs.smb.SmbFile;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.domain.exception.BadRequestException;
@@ -26,6 +28,7 @@ import org.nl.wms.external_system.erp.dto.ErpSec;
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutDtl;
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutMst;
import org.nl.wms.pda_manage.iostorage.server.dto.ReceiveBillData;
+import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
import org.nl.wms.pm_manage.form_data.service.dao.mapper.PmFormDataMapper;
import org.nl.wms.stor_manage.io.service.iostor.IStIvtIostorinvService;
@@ -38,7 +41,17 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
import java.math.BigDecimal;
+import java.net.URI;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -48,28 +61,23 @@ import java.util.Map;
public class PdaIOService {
@Autowired
- ErpSec erpSec;
+ private ErpSec erpSec;
@Autowired
- IBmFormStrucService iBmFormStrucService;
+ private IBmFormStrucService iBmFormStrucService;
@Autowired
- IStIvtIostorinvService iStIvtIostorinvService;
+ private IStIvtIostorinvService iStIvtIostorinvService;
@Autowired
- IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
-
+ private IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
@Autowired
- BmMeasureUnitServiceImpl bmMeasureUnitServiceImpl;
-
-
+ private BmMeasureUnitServiceImpl bmMeasureUnitServiceImpl;
@Autowired
- StIvtBsrealstorattrServiceImpl stIvtBsrealstorattrServiceImpl;
-
-
-
+ private StIvtBsrealstorattrServiceImpl stIvtBsrealstorattrServiceImpl;
@Autowired
- MdMeMaterialbaseServiceImpl mdMeMaterialbaseServiceImpl;
-
- @Autowired
- PmFormDataMapper pmFormDataMapper;
+ private MdMeMaterialbaseServiceImpl mdMeMaterialbaseServiceImpl;
+ @Resource
+ private PmFormDataMapper pmFormDataMapper;
+ @Resource
+ private IPmFormDataService iPmFormDataService;
public void PpdaOrderOutStorage(PdaFormOutMst pdaFormOutMst) {
@@ -77,7 +85,7 @@ public class PdaIOService {
//创建单据分配货位
StIvtIostorinv ivtIostorinv = ioService.createPadIvtAndoutDispense(pdaFormOutMst);
StIvtIostorinv byId = iStIvtIostorinvService.getById(ivtIostorinv.getId());
- //生成流程
+
this.pdaTaskOpen(byId);
}
@@ -133,7 +141,7 @@ public class PdaIOService {
HashMap map = MapOf.of("end_struct_code", "", "start_struct_code", "", "order", "", "product_area", productArea);
ivtDtl.setForm_data(new JSONObject(map));
ivtDtl.setQty(now_assign_qty);
- ivtDtl.setPcsn(dtl.getPcsn());
+ ivtDtl.setPcsn(pdaFormOutMst.getPcsn());
ivtDtl.setStor_code(storCode);//pdaFormOutMst.getStor_code()
ivtDtl.setId(IdUtil.getStringId());
ivtDtl.setInv_id(mst.getId());
@@ -158,6 +166,19 @@ public class PdaIOService {
for (StIvtIostorinvdtl stIvtIostorinvdtl : list) {
iStIvtIostorinvService.outDispense((JSONObject) JSON.toJSON(stIvtIostorinvdtl));
}
+ //生成流程
+ String now = DateUtil.now();
+ String nickName = SecurityUtils.getCurrentNickName();
+ for (PdaFormOutDtl child : pdaFormOutMst.getChildren()) {
+ BigDecimal planQty = child.getPlan_qty();
+ BigDecimal now_assign_qty = child.getNow_assign_qty();
+ BigDecimal qty = child.getQty();
+ iPmFormDataService.update(new UpdateWrapper()
+ .set("qty",qty.subtract(now_assign_qty))
+ .set("assign_qty",planQty.subtract(now_assign_qty))
+ .set("update_time",now)
+ .set("update_name",nickName));
+ }
return mst;
}
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java
index 7400632e..27679032 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/IPmFormDataService.java
@@ -37,6 +37,13 @@ public interface IPmFormDataService extends IService {
Page queryTree(FormDataQuery query, PageQuery page);
+ /**
+ * 查询ERP同步数据及库存
+ * @param code
+ * @return
+ */
+ PmFormDataDto queryErpCode(String code);
+
/**
* 一对多同步改成一对一同步
* @param mappingJson
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml
index e7bcebef..291cd229 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dao/mapper/xml/PmFormDataMapper.xml
@@ -116,6 +116,9 @@
and form_type = #{query.form_type}
+
+ and code = #{query.code}
+
and pm_form_data.status IN
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/FormDataQuery.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/FormDataQuery.java
index 29381493..f41195cb 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/FormDataQuery.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/FormDataQuery.java
@@ -14,6 +14,7 @@ import java.util.Map;
public class FormDataQuery extends BaseQuery {
private String form_type;
+ private String code;
private String parent_id;
private String[] status;
private Map form_query;
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java
index bd4084bd..687802a0 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/dto/PmFormDataDto.java
@@ -103,6 +103,10 @@ public class PmFormDataDto implements Serializable {
* 数量
*/
private BigDecimal qty;
+ /**
+ * 库存数量
+ */
+ private BigDecimal sto_qty;
/**
* 数量
*/
@@ -113,9 +117,13 @@ public class PmFormDataDto implements Serializable {
private BigDecimal assign_qty;
/**
- * 数量
+ * 单位
*/
private String unit_id;
+ /**
+ * 单位名称
+ */
+ private String unit_name;
/**
* 批次号
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java
index c69d8af1..81098b37 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pm_manage/form_data/service/impl/PmFormDataServiceImpl.java
@@ -14,6 +14,7 @@ import org.nl.common.TableDataInfo;
import org.nl.common.domain.constant.DictConstantPool;
import org.nl.common.domain.entity.PageQuery;
import org.nl.common.domain.exception.BadRequestException;
+import org.nl.common.enums.StatusEnum;
import org.nl.common.utils.*;
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
@@ -197,6 +198,30 @@ public class PmFormDataServiceImpl extends ServiceImpl pmFormDataDtos = this.baseMapper.queryTree2(query);
+ if (CollectionUtils.isEmpty(pmFormDataDtos)){
+ throw new BadRequestException(code+"单据编码不存在或已经完成入库");
+ }
+ List parents = pmFormDataDtos.stream().map(PmFormDataDto::getId).collect(Collectors.toList());
+ List childs = this.baseMapper.selectChilds(parents);
+ if (!CollectionUtils.isEmpty(childs)){
+ Map> childMap = childs.stream().collect(Collectors.groupingBy(PmFormDataDto::getParent_id));
+ for (PmFormDataDto dataDto : pmFormDataDtos) {
+ List children = childMap.get(dataDto.getId());
+ for (PmFormDataDto child : children) {
+ String productArea = child.getForm_data().getString("product_area");
+ child.setProduct_area(productArea);
+ }
+ dataDto.setChildren(children);
+ }
+ }
+ return pmFormDataDtos.get(0);
+ }
@Override
public Object getSonDtlFormData(String id) {
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor_dtl/dto/StIvtIostorinvdtlVo.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor_dtl/dto/StIvtIostorinvdtlVo.java
index e4edcef5..3a5a22c8 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor_dtl/dto/StIvtIostorinvdtlVo.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor_dtl/dto/StIvtIostorinvdtlVo.java
@@ -42,6 +42,10 @@ public class StIvtIostorinvdtlVo {
* 源单单据类型
*/
private String source_form_type;
+ /**
+ * 源单数据
+ */
+ private JSONObject source_form_data;
/**
* 单据明细状态
*/
diff --git a/wms_pro/hd/nladmin-system/src/main/resources/config/application.yml b/wms_pro/hd/nladmin-system/src/main/resources/config/application.yml
index e96ef885..ba6a483b 100644
--- a/wms_pro/hd/nladmin-system/src/main/resources/config/application.yml
+++ b/wms_pro/hd/nladmin-system/src/main/resources/config/application.yml
@@ -6,7 +6,7 @@ spring:
freemarker:
check-template-location: false
profiles:
- active: dev
+ active: prod
jackson:
time-zone: GMT+8
data: