From afffc316f3b083785db62ef7307141587539bd65 Mon Sep 17 00:00:00 2001 From: zhangzq Date: Tue, 3 Dec 2024 18:07:31 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E5=87=BA=E5=BA=93=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=88=AB=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wms_pro/hd/nladmin-system/pom.xml | 12 ++++ .../clientSocket/HeartClientServer.java | 3 +- .../service/impl/MdGruopDickServiceImpl.java | 5 +- .../iostorage/PdaOutController.java | 14 +++++ .../iostorage/server/dto/PdaFormOutDtl.java | 12 +++- .../iostorage/sevice/PdaIOService.java | 57 +++++++++++++------ .../form_data/service/IPmFormDataService.java | 7 +++ .../dao/mapper/xml/PmFormDataMapper.xml | 3 + .../form_data/service/dto/FormDataQuery.java | 1 + .../form_data/service/dto/PmFormDataDto.java | 10 +++- .../service/impl/PmFormDataServiceImpl.java | 25 ++++++++ .../iostor_dtl/dto/StIvtIostorinvdtlVo.java | 4 ++ .../src/main/resources/config/application.yml | 2 +- 13 files changed, 130 insertions(+), 25 deletions(-) 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: