From f8600107ec66a89be465c8cc9678ceceddae1d76 Mon Sep 17 00:00:00 2001 From: wenshijun Date: Mon, 19 Jan 2026 10:16:14 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zg/project/information/domain/Mtd.java | 2 +- .../information/mapper/PcdeDetailMapper.java | 3 ++ .../service/impl/MtdServiceImpl.java | 32 ++++++++++++++++++- .../com/zg/project/wisdom/domain/GysJh.java | 17 ++++++---- .../com/zg/project/wisdom/domain/RkInfo.java | 3 +- .../zg/project/wisdom/mapper/GysJhMapper.java | 11 +++++++ .../service/impl/RkInfoServiceImpl.java | 16 +++++++++- src/main/resources/application-druid.yml | 4 +-- .../mybatis/information/PcdeDetailMapper.xml | 9 ++++++ .../resources/mybatis/wisdom/GysJhMapper.xml | 12 +++++++ .../resources/mybatis/wisdom/RkInfoMapper.xml | 4 +-- 11 files changed, 98 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/zg/project/information/domain/Mtd.java b/src/main/java/com/zg/project/information/domain/Mtd.java index 17668e0..bc872f9 100644 --- a/src/main/java/com/zg/project/information/domain/Mtd.java +++ b/src/main/java/com/zg/project/information/domain/Mtd.java @@ -19,7 +19,7 @@ public class Mtd extends BaseEntity private Long Id; /** 物料号 */ - @Excel(name = "物料号") + @Excel(name = "物料编号") private String mid; /** 物料描述 */ diff --git a/src/main/java/com/zg/project/information/mapper/PcdeDetailMapper.java b/src/main/java/com/zg/project/information/mapper/PcdeDetailMapper.java index 60ef4da..5c528c4 100644 --- a/src/main/java/com/zg/project/information/mapper/PcdeDetailMapper.java +++ b/src/main/java/com/zg/project/information/mapper/PcdeDetailMapper.java @@ -89,4 +89,7 @@ public interface PcdeDetailMapper String selectWarehouseCodeByPcode(String pcode); + String selectEncodedIdByPcodeAndWarehouse(@Param("pcode") String pcode, + @Param("warehouseCode") String warehouseCode); + } diff --git a/src/main/java/com/zg/project/information/service/impl/MtdServiceImpl.java b/src/main/java/com/zg/project/information/service/impl/MtdServiceImpl.java index ffe32f0..41c3868 100644 --- a/src/main/java/com/zg/project/information/service/impl/MtdServiceImpl.java +++ b/src/main/java/com/zg/project/information/service/impl/MtdServiceImpl.java @@ -7,6 +7,8 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.atomic.AtomicInteger; import com.zg.common.exception.ServiceException; +import com.zg.common.utils.StringUtils; +import com.zg.project.wisdom.domain.GysJh; import com.zg.project.wisdom.domain.vo.PlanToMtdVO; import com.zg.project.wisdom.mapper.GysJhMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -67,9 +69,37 @@ public class MtdServiceImpl implements IMtdService * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int insertMtd(Mtd mtd) { - return mtdMapper.insertMtd(mtd); + if (mtd == null || StringUtils.isBlank(mtd.getMid())) { + throw new ServiceException("物料号不能为空"); + } + + // 1️⃣ 先新增物料字典 + int rows = mtdMapper.insertMtd(mtd); + + // 2️⃣ 新增成功后,开始“反查供应计划” + if (rows > 0 && StringUtils.isNotBlank(mtd.getUnt())) { + + String wlNo = mtd.getMid().trim(); + String dw = mtd.getUnt().trim(); + + // 3️⃣ 根据物料号查询供应计划(可能多条) + List jhList = gysJhMapper.selectByWlNo(wlNo); + + if (jhList != null && !jhList.isEmpty()) { + for (GysJh jh : jhList) { + + // 4️⃣ 只处理「供应计划中单位为空」的记录 + if (StringUtils.isBlank(jh.getDw())) { + gysJhMapper.updateDwById(jh.getId(), dw); + } + } + } + } + + return rows; } /** diff --git a/src/main/java/com/zg/project/wisdom/domain/GysJh.java b/src/main/java/com/zg/project/wisdom/domain/GysJh.java index a42af5a..b8ff98d 100644 --- a/src/main/java/com/zg/project/wisdom/domain/GysJh.java +++ b/src/main/java/com/zg/project/wisdom/domain/GysJh.java @@ -22,6 +22,10 @@ public class GysJh extends BaseEntity /** 主键ID */ private Long id; + /** 行号 */ + @Excel(name = "行号") + private String xh; + /** 序号 */ @Excel(name = "序号") private Long indexNo; @@ -62,25 +66,24 @@ public class GysJh extends BaseEntity @Excel(name = "合同单价") private BigDecimal htDj; + /** 合同数量 */ + @Excel(name = "合同数量") + private BigDecimal htQty; + /** SAP订单编号 */ @Excel(name = "SAP订单编号") private String sapNo; - /** 行号 */ - @Excel(name = "行号") - private String xh; - /** 计划交货数量 */ + @Excel(name = "计划交货数量") private BigDecimal jhQty; - /** 合同数量 */ - private BigDecimal htQty; /** 计量单位 */ @Excel(name = "计量单位") private String dw; /** 0:未到货,1:已入库,2部分入库 */ - @Excel(name = "0:未到货,1:已入库,2部分入库") +// @Excel(name = "0:未到货,1:已入库,2部分入库") private String status; /** 身份码 */ diff --git a/src/main/java/com/zg/project/wisdom/domain/RkInfo.java b/src/main/java/com/zg/project/wisdom/domain/RkInfo.java index 1983edb..9ca74d6 100644 --- a/src/main/java/com/zg/project/wisdom/domain/RkInfo.java +++ b/src/main/java/com/zg/project/wisdom/domain/RkInfo.java @@ -109,10 +109,11 @@ public class RkInfo extends BaseEntity { private Date returnTime; /** 理货员 */ - @Excel(name = "理货员") +// @Excel(name = "理货员") private String lihuoY; /** 理货员名称(联查显示用,导出专用) */ + @Excel(name = "理货员") private String lihuoYName; /** 单据号 */ diff --git a/src/main/java/com/zg/project/wisdom/mapper/GysJhMapper.java b/src/main/java/com/zg/project/wisdom/mapper/GysJhMapper.java index 1bb8f83..9a00315 100644 --- a/src/main/java/com/zg/project/wisdom/mapper/GysJhMapper.java +++ b/src/main/java/com/zg/project/wisdom/mapper/GysJhMapper.java @@ -120,5 +120,16 @@ public interface GysJhMapper */ List selectMissingMtdItems(); + /** + * 根据物料号查询供应计划(用于回填单位) + */ + List selectByWlNo(@Param("wlNo") String wlNo); + + /** + * 根据主键更新单位 + */ + int updateDwById(@Param("id") Long id, + @Param("dw") String dw); + } diff --git a/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java b/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java index 0836307..621086c 100644 --- a/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java +++ b/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java @@ -14,6 +14,8 @@ import com.zg.common.exception.ServiceException; import com.zg.common.utils.DateUtils; import com.zg.common.utils.SecurityUtils; import com.zg.common.utils.StringUtils; +import com.zg.project.information.domain.Mtd; +import com.zg.project.information.mapper.MtdMapper; import com.zg.project.inventory.AutoInventory.mapper.InventoryMatchScanMapper; import com.zg.project.inventory.Task.mapper.InventoryTaskMapper; import com.zg.project.inventory.domain.dto.QueryDTO; @@ -74,6 +76,8 @@ public class RkInfoServiceImpl implements IRkInfoService @Autowired private PcdeDetailMapper pcdeDetailMapper; + @Autowired + private MtdMapper mtdMapper; /** * 查询库存单据主 @@ -459,13 +463,23 @@ public class RkInfoServiceImpl implements IRkInfoService rk.setFycde1(item.getFycde1()); rk.setFycde2(item.getFycde2()); + if (StringUtils.isBlank(rk.getDw()) && StringUtils.isNotBlank(item.getWlNo())) { + Mtd mtd = mtdMapper.selectMtdByMid(item.getWlNo().trim()); + if (mtd != null && StringUtils.isNotBlank(mtd.getUnt())) { + rk.setDw(mtd.getUnt()); + } + } + // 库位编码前端不传,就不设置库位相关字段(并且不查 encodedId) if (StringUtils.isNotBlank(item.getPcode())) { // pcode 有值:允许设置/绑定库位 rk.setPcode(item.getPcode()); // 只有有 pcode 才查 pcodeId - String encodedId = pcdeDetailMapper.selectEncodedIdByPcode(item.getPcode()); + String encodedId = pcdeDetailMapper.selectEncodedIdByPcodeAndWarehouse( + item.getPcode(), + dto.getWarehouseCode() + ); rk.setPcodeId(encodedId); // 这些字段如果前端没传,保持 null;如果传了就写入 diff --git a/src/main/resources/application-druid.yml b/src/main/resources/application-druid.yml index 9111b2c..3cde3ee 100644 --- a/src/main/resources/application-druid.yml +++ b/src/main/resources/application-druid.yml @@ -7,9 +7,9 @@ spring: # 主库数据源 master: # url: jdbc:mysql://101.132.133.142:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - url: jdbc:mysql://192.168.1.28:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 +# url: jdbc:mysql://192.168.1.28:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # url: jdbc:mysql://192.168.1.192:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 -# url: jdbc:mysql://192.168.1.251:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.1.251:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # url: jdbc:mysql://localhost:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: shzg diff --git a/src/main/resources/mybatis/information/PcdeDetailMapper.xml b/src/main/resources/mybatis/information/PcdeDetailMapper.xml index e08a7aa..f3b3026 100644 --- a/src/main/resources/mybatis/information/PcdeDetailMapper.xml +++ b/src/main/resources/mybatis/information/PcdeDetailMapper.xml @@ -182,6 +182,15 @@ LIMIT 1 + + + + + + UPDATE gys_jh + SET dw = #{dw} + WHERE id = #{id} + diff --git a/src/main/resources/mybatis/wisdom/RkInfoMapper.xml b/src/main/resources/mybatis/wisdom/RkInfoMapper.xml index 7712966..4006848 100644 --- a/src/main/resources/mybatis/wisdom/RkInfoMapper.xml +++ b/src/main/resources/mybatis/wisdom/RkInfoMapper.xml @@ -354,10 +354,10 @@ AND ri.xj LIKE concat('%', #{xj}, '%') - AND ri.bill_no LIKE concat('%', #{billNo}, '%') + AND ri.bill_no = #{billNo} - AND ri.bill_no_ck LIKE concat('%', #{billNoCk}, '%') + AND ri.bill_no_ck = #{billNoCk} AND ri.xm_no LIKE concat('%', #{xmNo}, '%')