From f32de021e7af1627b6d18e681b46dbc0a5b108f8 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 21 四月 2026 13:33:04 +0800
Subject: [PATCH] feat: 设备台账与工序进行绑定
---
src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java | 2
src/main/java/com/ruoyi/device/pojo/DeviceLedger.java | 7 +++
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java | 30 ++++++++++++++
src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java | 6 +++
src/main/resources/mybatis/mybatis-config.xml | 10 ++--
src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java | 2 +
src/main/resources/mapper/device/DeviceLedgerMapper.xml | 18 +++++++--
doc/河南鹤壁天沐钢化玻璃厂.sql | 5 ++
8 files changed, 68 insertions(+), 12 deletions(-)
diff --git "a/doc/\346\262\263\345\215\227\351\271\244\345\243\201\345\244\251\346\262\220\351\222\242\345\214\226\347\216\273\347\222\203\345\216\202.sql" "b/doc/\346\262\263\345\215\227\351\271\244\345\243\201\345\244\251\346\262\220\351\222\242\345\214\226\347\216\273\347\222\203\345\216\202.sql"
index 65026b2..3becd82 100644
--- "a/doc/\346\262\263\345\215\227\351\271\244\345\243\201\345\244\251\346\262\220\351\222\242\345\214\226\347\216\273\347\222\203\345\216\202.sql"
+++ "b/doc/\346\262\263\345\215\227\351\271\244\345\243\201\345\244\251\346\262\220\351\222\242\345\214\226\347\216\273\347\222\203\345\216\202.sql"
@@ -154,4 +154,7 @@
MODIFY COLUMN `heavy_box` decimal(20, 4) NULL DEFAULT NULL COMMENT '閲嶇' AFTER `perimeter`;
ALTER TABLE `product-inventory-management-hbtmblc`.`quality_unqualified`
- ADD COLUMN `product_model_id` bigint NULL COMMENT '浜у搧瑙勬牸ID' AFTER `inspect_id`;
\ No newline at end of file
+ ADD COLUMN `product_model_id` bigint NULL COMMENT '浜у搧瑙勬牸ID' AFTER `inspect_id`;
+
+ALTER TABLE `product-inventory-management-hbtmblc`.`device_ledger`
+ ADD COLUMN `product_process_id` bigint NULL COMMENT '宸ュ簭ID' AFTER `type`;
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
index f79d4d2..c206a2a 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
@@ -54,7 +54,7 @@
@ApiOperation("鏍规嵁id鏌ヨ璁惧鍙拌处")
@GetMapping("/{id}")
public AjaxResult detail(@PathVariable Long id) {
- return AjaxResult.success(deviceLedgerService.getById(id));
+ return AjaxResult.success(deviceLedgerService.getDetailById(id));
}
@PutMapping ()
diff --git a/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java b/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
index c3ad1b1..db112c6 100644
--- a/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
+++ b/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
@@ -147,4 +147,10 @@
@ApiModelProperty("璁惧绫诲瀷")
private String type;
+
+ @ApiModelProperty("宸ュ簭ID")
+ private Long productProcessId;
+
+ @ApiModelProperty("宸ュ簭鍚嶇О")
+ private String productProcessName;
}
diff --git a/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java b/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java
index f8c9e53..75de0d3 100644
--- a/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java
+++ b/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java
@@ -159,4 +159,11 @@
@ApiModelProperty("璁惧绫诲瀷")
private String type;
+
+ @ApiModelProperty("宸ュ簭ID")
+ private Long productProcessId;
+
+ @TableField(exist = false)
+ @ApiModelProperty("宸ュ簭鍚嶇О")
+ private String productProcessName;
}
diff --git a/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java b/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
index 0d6493e..9295799 100644
--- a/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
+++ b/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
@@ -18,6 +18,8 @@
AjaxResult updateDeviceLedger(DeviceLedger deviceLedger);
+ DeviceLedger getDetailById(Long id);
+
void export(HttpServletResponse response, Long[] ids);
Boolean importData(MultipartFile file) throws IOException;
diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
index b614149..f9ed796 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -12,6 +12,8 @@
import com.ruoyi.device.mapper.DeviceLedgerMapper;
import com.ruoyi.device.pojo.DeviceLedger;
import com.ruoyi.device.service.IDeviceLedgerService;
+import com.ruoyi.production.mapper.ProductProcessMapper;
+import com.ruoyi.production.pojo.ProductProcess;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
@@ -36,15 +38,21 @@
private DeviceLedgerMapper deviceLedgerMapper;
@Autowired
private SysUserMapper sysUserMapper;
+ @Autowired
+ private ProductProcessMapper productProcessMapper;
@Override
- public IPage<DeviceLedgerDto> queryPage(Page page, DeviceLedgerDto deviceLedger) {
+ public IPage<DeviceLedgerDto> queryPage(Page<?> page, DeviceLedgerDto deviceLedger) {
return deviceLedgerMapper.queryPage(page, deviceLedger);
}
@Override
public AjaxResult saveDeviceLedger(DeviceLedger deviceLedger) {
+ AjaxResult processCheckResult = validateProductProcess(deviceLedger.getProductProcessId());
+ if (processCheckResult != null) {
+ return processCheckResult;
+ }
LambdaQueryWrapper<DeviceLedger> deviceLedgerLambdaQueryWrapper = new LambdaQueryWrapper<>();
deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceName,deviceLedger.getDeviceName());
if (this.count(deviceLedgerLambdaQueryWrapper) > 0) {
@@ -59,6 +67,10 @@
@Override
public AjaxResult updateDeviceLedger(DeviceLedger deviceLedger) {
+ AjaxResult processCheckResult = validateProductProcess(deviceLedger.getProductProcessId());
+ if (processCheckResult != null) {
+ return processCheckResult;
+ }
if (this.updateById(deviceLedger)) {
return AjaxResult.success();
}
@@ -66,6 +78,22 @@
}
@Override
+ public DeviceLedger getDetailById(Long id) {
+ return deviceLedgerMapper.selectById1(id);
+ }
+
+ private AjaxResult validateProductProcess(Long productProcessId) {
+ if (productProcessId == null) {
+ return null;
+ }
+ ProductProcess productProcess = productProcessMapper.selectById(productProcessId);
+ if (productProcess == null) {
+ return AjaxResult.error("宸ュ簭涓嶅瓨鍦紝璇烽噸鏂伴�夋嫨");
+ }
+ return null;
+ }
+
+ @Override
public void export(HttpServletResponse response, Long[] ids) {
if (ids == null || ids.length == 0) {
diff --git a/src/main/resources/mapper/device/DeviceLedgerMapper.xml b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
index c980120..c4a9616 100644
--- a/src/main/resources/mapper/device/DeviceLedgerMapper.xml
+++ b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
@@ -31,9 +31,12 @@
dl.tenant_id,
dl.is_depr,
dl.annual_depreciation_amount,
- dl.type
+ dl.type,
+ dl.product_process_id,
+ pp.name AS productProcessName
FROM device_ledger dl
left join sys_user su on dl.create_user = su.user_id
+ left join product_process pp on dl.product_process_id = pp.id
<where>
<!-- 璁惧鍚嶇О -->
<if test="deviceLedger.deviceName != null and deviceLedger.deviceName != ''">
@@ -43,6 +46,11 @@
<!-- 瑙勬牸鍨嬪彿 -->
<if test="deviceLedger.deviceModel != null and deviceLedger.deviceModel != ''">
AND device_model LIKE CONCAT('%', #{deviceLedger.deviceModel}, '%')
+ </if>
+
+ <!-- 宸ュ簭鍚嶇О -->
+ <if test="deviceLedger.productProcessName != null and deviceLedger.productProcessName != ''">
+ AND pp.name LIKE CONCAT('%', #{deviceLedger.productProcessName}, '%')
</if>
<!-- 渚涘簲鍟嗗悕绉� -->
@@ -83,9 +91,11 @@
</select>
<select id="selectById1" resultType="com.ruoyi.device.pojo.DeviceLedger">
- select *
- from device_ledger
- where id = #{id}
+ select dl.*,
+ pp.name as productProcessName
+ from device_ledger dl
+ left join product_process pp on dl.product_process_id = pp.id
+ where dl.id = #{id}
</select>
<select id="getDeviceTypeDistributionByYear"
resultType="com.ruoyi.account.dto.DeviceTypeDetail"
diff --git a/src/main/resources/mybatis/mybatis-config.xml b/src/main/resources/mybatis/mybatis-config.xml
index fac793a..2552373 100644
--- a/src/main/resources/mybatis/mybatis-config.xml
+++ b/src/main/resources/mybatis/mybatis-config.xml
@@ -6,14 +6,14 @@
<!-- 鍏ㄥ眬鍙傛暟 -->
<settings>
<!-- 浣垮叏灞�鐨勬槧灏勫櫒鍚敤鎴栫鐢ㄧ紦瀛� -->
- <setting name="cacheEnabled" value="true" />
+ <setting name="cacheEnabled" value="true"/>
<!-- 鍏佽JDBC 鏀寔鑷姩鐢熸垚涓婚敭 -->
- <setting name="useGeneratedKeys" value="true" />
+ <setting name="useGeneratedKeys" value="true"/>
<!-- 閰嶇疆榛樿鐨勬墽琛屽櫒.SIMPLE灏辨槸鏅�氭墽琛屽櫒;REUSE鎵ц鍣ㄤ細閲嶇敤棰勫鐞嗚鍙�(prepared statements);BATCH鎵ц鍣ㄥ皢閲嶇敤璇彞骞舵墽琛屾壒閲忔洿鏂� -->
- <setting name="defaultExecutorType" value="SIMPLE" />
+ <setting name="defaultExecutorType" value="SIMPLE"/>
<!-- 鎸囧畾 MyBatis 鎵�鐢ㄦ棩蹇楃殑鍏蜂綋瀹炵幇 -->
- <setting name="logImpl" value="SLF4J" />
- <!-- <setting name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl" />-->
+ <!-- <setting name="logImpl" value="SLF4J" />-->
+ <setting name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl"/>
<!-- 浣跨敤椹煎嘲鍛藉悕娉曡浆鎹㈠瓧娈� -->
<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
</settings>
--
Gitblit v1.9.3