Compare commits
265 Commits
56622548cf
...
0.8.X
| Author | SHA1 | Date | |
|---|---|---|---|
| 491eed3dad | |||
| 66838b6c69 | |||
| c8c2523fe7 | |||
| d0afe5eaaf | |||
| 7374b810c1 | |||
| 041e5aef0e | |||
| 6120e87966 | |||
| 5828dbd133 | |||
| ee49fbdcc0 | |||
| 7f1a89eb61 | |||
| 759bbbed63 | |||
| 5b0cb314e4 | |||
| 2fc4bf4043 | |||
| 2fb5a64124 | |||
| 379aa9d44b | |||
| b4a9a48ae6 | |||
| 41716b3430 | |||
| 585017873c | |||
| 605f7b85a1 | |||
| 192a27afbc | |||
| 768b18c22a | |||
| 3719416cbf | |||
| 791be3e1a5 | |||
| 7b7f4b902e | |||
| c547456108 | |||
| 931fc74ed7 | |||
| e7f1e584eb | |||
| b43b44d044 | |||
| d053dd0319 | |||
| 3b1ce45043 | |||
| 5473fbf28f | |||
| 2874f1727a | |||
| a3a4986cb8 | |||
| f525770094 | |||
| 25beef5517 | |||
| e6b1e31bd1 | |||
| 8c3a3eec28 | |||
| 1510f43aee | |||
| cb8fce435c | |||
| 7bb68483e6 | |||
| 696280bd47 | |||
| bdf01feacb | |||
| 120320c800 | |||
| 3db1651efd | |||
| 9d679954fa | |||
| a2844ec54a | |||
| 91ddc8602a | |||
| 22fd3c4a58 | |||
| ceab5d4be3 | |||
| bf8b69d193 | |||
| 7feaf8021b | |||
| 6328b4ac7a | |||
| 183e6d08d8 | |||
| a037c56122 | |||
| 857daa24af | |||
| 0968dcaded | |||
| cced2ff4aa | |||
| f197462b11 | |||
| 9559e5810e | |||
| 92ad229104 | |||
| ee1cb31321 | |||
| f0de25a3a2 | |||
| 0d40774194 | |||
| 948e62daae | |||
| 48d12fe056 | |||
| 6edc6e1100 | |||
| 12ea9b0b83 | |||
| c149216ebd | |||
| 325a93fd84 | |||
| f0656b57d4 | |||
| 9c7d2dca65 | |||
| 36b1e3da82 | |||
| c83eb79d25 | |||
| e0cf4b46b6 | |||
| 00972112d2 | |||
| 2559dc27cb | |||
| 7a0d7e1b12 | |||
| 1cd2cf2b9a | |||
| 98116fa042 | |||
| d3c6790603 | |||
| c1e3fa5141 | |||
| f319308196 | |||
| 185745b7da | |||
| 7440706e2e | |||
| 0adb29139e | |||
| 2148a068f8 | |||
| e1bb9e5431 | |||
| 8b2039f06a | |||
| 9761faa2d2 | |||
| d5f00a4b0b | |||
| b9fb4b4611 | |||
| 7d76ef0c52 | |||
| ea71a6dd93 | |||
| b9b6ae7e79 | |||
| 20a75aec4b | |||
| 3ad7bf40b5 | |||
| 196e628665 | |||
| 7c61c42eb5 | |||
| 1223b634b7 | |||
| 87913ba0a0 | |||
| eab45a8706 | |||
| a9a7a0889e | |||
| cd2e4016a6 | |||
| 87d72b2a0d | |||
| 4342215c00 | |||
| 7bf7d24f29 | |||
| 4da8d8d297 | |||
| c4eab467ee | |||
| fd50118161 | |||
| cc63aa80b2 | |||
| c95ea7db61 | |||
| f50c240bbe | |||
| 66278e635b | |||
| 74d0ba57e2 | |||
| e00d1357b0 | |||
| b9f87c6cc4 | |||
| 7c9c99bf45 | |||
| fdb13b7261 | |||
| 74a3803290 | |||
| 76497eece7 | |||
| d231d3619a | |||
| 20966157c5 | |||
| 59e58e5206 | |||
| 59ceeed4a4 | |||
| fac59f4346 | |||
| f6a74e58ea | |||
| 857a3948d6 | |||
| 47b3fb24b7 | |||
| 97e0df7ae1 | |||
| 7c87670896 | |||
| cd3cc85c0a | |||
| d70bb77755 | |||
| b00db10a37 | |||
| dbeb99d9e5 | |||
| 1a2fc9852d | |||
| 7aaa59cee1 | |||
| cbebd5b6d6 | |||
| 24a9784035 | |||
| de7ec604dd | |||
| 696f6d9ee0 | |||
| 050dd1a965 | |||
| 724c1dd16f | |||
| 0e85153b3d | |||
| af728f8ea6 | |||
| 7e07b6f970 | |||
| 8a0f5e65bb | |||
| 1947a5c2d5 | |||
| d8498728ee | |||
| 53e948b3e0 | |||
| 3ebc0cb86a | |||
| 8059b0a0bb | |||
| 1792196dc7 | |||
| d8051abf8e | |||
| 5e0cb69bb8 | |||
| 37a69b563b | |||
| 66f0b3fdd7 | |||
| 5e0dc848bb | |||
| a5323aea76 | |||
| cac747d158 | |||
| 705d929d6e | |||
| 29c21fd64f | |||
| 5236500f04 | |||
| 600867f386 | |||
| 8183bae824 | |||
| 37d6830947 | |||
| c71dfe3ff2 | |||
| ff139759d4 | |||
| 5176c80344 | |||
| 31f7a9c0cb | |||
| 9d208770d8 | |||
| 31d8d1ee16 | |||
| b4fbb8dfc8 | |||
| 40ebca2573 | |||
| ec08a360a0 | |||
| 977ea2b021 | |||
| e507887a27 | |||
| 12a887e074 | |||
| 577de8eb64 | |||
| 03add7c96b | |||
| 42e5b6dd2b | |||
| 88149561c5 | |||
| 51bb7593c7 | |||
| c34fc1e477 | |||
| 9bd6077599 | |||
| 6fe1f668d3 | |||
| 53b991242c | |||
| 91017f7c84 | |||
| 7b80ef035a | |||
| e54efab7c8 | |||
| 715c1b9728 | |||
| 8723924002 | |||
| cbaa47b34e | |||
| fe24426f59 | |||
| ef04d73e0c | |||
| b7d47a5d9d | |||
| 021c1c908a | |||
| cd3b25fa30 | |||
| 3106b2c530 | |||
| f4e6b24c92 | |||
| d6620e2449 | |||
| b59bb1789e | |||
| 4295a28f33 | |||
| 8572a60044 | |||
| 29328d70e9 | |||
| 12545f7c8b | |||
| 6ec4275088 | |||
| 14dbd633b5 | |||
| 8d68d2bdee | |||
| 6b8eac4139 | |||
| 13780c635b | |||
| a425a9052a | |||
| f64da15bc3 | |||
| b134539e53 | |||
| effc1f6f2e | |||
| ca285f78c6 | |||
| 0cfffcc60d | |||
| 37b2987279 | |||
| 59bdcf96dc | |||
| 8f602d80a9 | |||
| 7bddfad80f | |||
| 8b1d7ed280 | |||
| 285775c733 | |||
| 7e6bc1e8b4 | |||
| bf3967d7b5 | |||
| a0cd885fc7 | |||
| 481188f654 | |||
| c8fe545950 | |||
| 94840b2153 | |||
| c5ce33f71a | |||
| 43f4692a72 | |||
| 9af5284ff3 | |||
| 62da44382a | |||
| 6a5220ad78 | |||
| 3b7ae10499 | |||
| 6044413384 | |||
| 91d1236c37 | |||
| 020863d1ef | |||
| 6832209e98 | |||
| 3a0f729669 | |||
| aad568f320 | |||
| d6099a781f | |||
| e23098b766 | |||
| 37ea2b7d78 | |||
| c707a0356f | |||
| 484f63f9cc | |||
| 1f32171800 | |||
| 5a16a9d2b1 | |||
| 6147ad2252 | |||
| 5e9bf6069e | |||
| 3cc37ae3d3 | |||
| 5b4ea8f486 | |||
| b8ed505971 | |||
| 6f488c74fc | |||
| 1b65444ab3 | |||
| 125e07eed4 | |||
| 82a54e3200 | |||
| 327ae685c1 | |||
| df643a8e4e | |||
| 8684bc4a63 | |||
| c53befe9d6 | |||
| 5f9876343c | |||
| 1f4dcea63a | |||
| 8e6ae90690 | |||
| f33170de75 | |||
| 7e8509e2e3 |
@@ -1,9 +0,0 @@
|
||||
---
|
||||
alwaysApply: true
|
||||
scene: git_message
|
||||
---
|
||||
|
||||
使用中文编写提交信息, 提交信息格式为:
|
||||
```
|
||||
<type>(<scope>): <subject>
|
||||
```
|
||||
@@ -129,6 +129,10 @@
|
||||
<artifactId>klp-cost</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.klp</groupId>
|
||||
<artifactId>klp-flow</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
|
||||
@@ -361,6 +361,15 @@ public class SqlServerApiClient {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public ExecuteSqlResponse queryExcoilByHotCoilId(String hotCoilId) {
|
||||
return executeSql(
|
||||
"oracle",
|
||||
"select * from JXPLTCM.PLTCM_PDO_EXCOIL where HOT_COILID = :hotCoilId",
|
||||
singletonParam("hotCoilId", hotCoilId)
|
||||
);
|
||||
}
|
||||
|
||||
public ExecuteSqlResponse queryPlanListByHotCoilIdLike(String hotCoilId, int page, int pageSize) {
|
||||
int endRow = page * pageSize;
|
||||
int startRow = endRow - pageSize;
|
||||
|
||||
@@ -122,7 +122,10 @@ public class SqlServerApiBusinessService {
|
||||
* 计划详情:按热卷号查询。
|
||||
*/
|
||||
public PlanDetailView getPlanByHotCoilId(String hotCoilId) {
|
||||
return PlanDetailView.fromExecuteSqlResponse(hotCoilId, client.queryPlanByHotCoilId(hotCoilId));
|
||||
SqlServerApiClient.ExecuteSqlResponse planResponse = client.queryPlanByHotCoilId(hotCoilId);
|
||||
SqlServerApiClient.ExecuteSqlResponse excoilResponse = null;
|
||||
excoilResponse = client.queryExcoilByHotCoilId(hotCoilId);
|
||||
return PlanDetailView.fromExecuteSqlResponse(hotCoilId, planResponse, excoilResponse);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -249,6 +252,49 @@ public class SqlServerApiBusinessService {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试用:统计 V_VBDA_GAUGE 中各 THICK 列的非空/非零数量,
|
||||
* 用于排查"末架出口厚度恒为 0"问题——确认实际数据落在哪一列。
|
||||
*/
|
||||
public Map<String, Object> getGaugeStats(String matId) {
|
||||
List<Map<String, Object>> rows = asRowList(client.queryGaugeByMatId(matId));
|
||||
String[] cols = {"THICK0", "THICK1", "THICK4", "THICK5",
|
||||
"THICK0REF", "THICK1REF", "THICK4REF", "THICK5REF"};
|
||||
Map<String, Object> stats = new LinkedHashMap<>();
|
||||
for (String col : cols) {
|
||||
long nonNull = 0, nonZero = 0;
|
||||
Double min = null, max = null;
|
||||
for (Map<String, Object> r : rows) {
|
||||
Object raw = r.get(col);
|
||||
if (raw == null) raw = r.get(col.toLowerCase());
|
||||
if (raw == null) continue;
|
||||
nonNull++;
|
||||
Number n = asNumber(raw);
|
||||
if (n == null) continue;
|
||||
double d = n.doubleValue();
|
||||
if (d != 0.0) nonZero++;
|
||||
if (min == null || d < min) min = d;
|
||||
if (max == null || d > max) max = d;
|
||||
}
|
||||
Map<String, Object> info = new LinkedHashMap<>();
|
||||
info.put("nonNullCount", nonNull);
|
||||
info.put("nonZeroCount", nonZero);
|
||||
info.put("min", min);
|
||||
info.put("max", max);
|
||||
stats.put(col, info);
|
||||
}
|
||||
Map<String, Object> result = new LinkedHashMap<>();
|
||||
result.put("matId", matId);
|
||||
result.put("totalRows", rows.size());
|
||||
result.put("columnStats", stats);
|
||||
List<Map<String, Object>> samples = new ArrayList<>();
|
||||
if (!rows.isEmpty()) samples.add(rows.get(0));
|
||||
if (rows.size() > 1) samples.add(rows.get(rows.size() / 2));
|
||||
if (rows.size() > 2) samples.add(rows.get(rows.size() - 1));
|
||||
result.put("sampleRows", samples);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 轧辊数据:返回全部在辊/备辊数据。
|
||||
*/
|
||||
@@ -378,11 +424,13 @@ public class SqlServerApiBusinessService {
|
||||
private final String coilId;
|
||||
private final List<Map<String, Object>> rows;
|
||||
private final Map<String, Object> firstRow;
|
||||
private final List<Map<String, Object>> excoilRows;
|
||||
|
||||
public PlanDetailView(String coilId, List<Map<String, Object>> rows, Map<String, Object> firstRow) {
|
||||
public PlanDetailView(String coilId, List<Map<String, Object>> rows, Map<String, Object> firstRow, List<Map<String, Object>> excoilRows) {
|
||||
this.coilId = coilId;
|
||||
this.rows = rows;
|
||||
this.firstRow = firstRow;
|
||||
this.excoilRows = excoilRows;
|
||||
}
|
||||
|
||||
public String getCoilId() {
|
||||
@@ -397,10 +445,21 @@ public class SqlServerApiBusinessService {
|
||||
return firstRow;
|
||||
}
|
||||
|
||||
public List<Map<String, Object>> getExcoilRows() {
|
||||
return excoilRows;
|
||||
}
|
||||
|
||||
public static PlanDetailView fromExecuteSqlResponse(String coilId, SqlServerApiClient.ExecuteSqlResponse response) {
|
||||
List<Map<String, Object>> rows = asRowList(response);
|
||||
Map<String, Object> firstRow = rows.isEmpty() ? Collections.<String, Object>emptyMap() : rows.get(0);
|
||||
return new PlanDetailView(coilId, rows, firstRow);
|
||||
return new PlanDetailView(coilId, rows, firstRow, Collections.<Map<String, Object>>emptyList());
|
||||
}
|
||||
|
||||
public static PlanDetailView fromExecuteSqlResponse(String coilId, SqlServerApiClient.ExecuteSqlResponse response, SqlServerApiClient.ExecuteSqlResponse excoilResponse) {
|
||||
List<Map<String, Object>> rows = asRowList(response);
|
||||
Map<String, Object> firstRow = rows.isEmpty() ? Collections.<String, Object>emptyMap() : rows.get(0);
|
||||
List<Map<String, Object>> excoilRows = asRowList(excoilResponse);
|
||||
return new PlanDetailView(coilId, rows, firstRow, excoilRows);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -94,6 +94,15 @@ public class SqlServerApiController {
|
||||
return R.ok(businessService.getRealtimeData(matId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试用:V_VBDA_GAUGE 各 THICK 列非空/非零统计 + 样本行。
|
||||
* 用于定位"末架出口厚度恒为 0"问题。
|
||||
*/
|
||||
@GetMapping("/test/gauge-stats/{matId}")
|
||||
public R<Map<String, Object>> testGaugeStats(@PathVariable String matId) {
|
||||
return R.ok(businessService.getGaugeStats(matId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 轧辊数据:type / status 均可选,不传则返回全量。
|
||||
*/
|
||||
|
||||
@@ -76,6 +76,16 @@ public class ApsPlanDetailController extends BaseController {
|
||||
return toAjax(iApsPlanDetailService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增排产单明细
|
||||
*/
|
||||
@Log(title = "排产单明细", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/batch")
|
||||
public R<Void> batchAdd(@Validated(AddGroup.class) @RequestBody List<ApsPlanDetailBo> boList) {
|
||||
return toAjax(iApsPlanDetailService.insertBatchByBo(boList));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改排产单明细
|
||||
*/
|
||||
|
||||
@@ -226,5 +226,9 @@ public class ApsPlanDetailBo extends BaseEntity {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 排产日期(字符串格式,例如 '2025-12-29')
|
||||
*/
|
||||
private String detailDate;
|
||||
|
||||
}
|
||||
|
||||
@@ -52,6 +52,11 @@ public class ApsPlanSheetBo extends BaseEntity {
|
||||
*/
|
||||
private String planType;
|
||||
|
||||
/**
|
||||
* 排产文件
|
||||
*/
|
||||
private String apsUrl;
|
||||
|
||||
/**
|
||||
* 排产人
|
||||
*/
|
||||
|
||||
@@ -184,6 +184,10 @@ public class ApsPlanDetail extends BaseEntity {
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 排产日期(字符串格式,例如 '2025-12-29')
|
||||
*/
|
||||
private String detailDate;
|
||||
/**
|
||||
* 删除标记(0正常 1删除)
|
||||
*/
|
||||
|
||||
@@ -49,6 +49,10 @@ public class ApsPlanSheet extends BaseEntity {
|
||||
* 排产类型
|
||||
*/
|
||||
private String planType;
|
||||
/**
|
||||
* 排产文件
|
||||
*/
|
||||
private String apsUrl;
|
||||
/**
|
||||
* 排产人
|
||||
*/
|
||||
|
||||
@@ -261,6 +261,12 @@ public class ApsPlanDetailVo {
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 排产日期(字符串格式,例如 '2025-12-29')
|
||||
*/
|
||||
@ExcelProperty(value = "排产日期")
|
||||
private String detailDate;
|
||||
|
||||
/**
|
||||
* 技术附件
|
||||
*/
|
||||
|
||||
@@ -60,6 +60,12 @@ public class ApsPlanSheetVo {
|
||||
@ExcelProperty(value = "排产类型")
|
||||
private String planType;
|
||||
|
||||
/**
|
||||
* 排产文件
|
||||
*/
|
||||
@ExcelProperty(value = "排产文件")
|
||||
private String apsUrl;
|
||||
|
||||
/**
|
||||
* 排产人
|
||||
*/
|
||||
|
||||
@@ -43,6 +43,11 @@ public interface IApsPlanDetailService {
|
||||
*/
|
||||
Boolean insertByBo(ApsPlanDetailBo bo);
|
||||
|
||||
/**
|
||||
* 批量新增排产单明细
|
||||
*/
|
||||
Boolean insertBatchByBo(List<ApsPlanDetailBo> boList);
|
||||
|
||||
/**
|
||||
* 修改排产单明细
|
||||
*/
|
||||
|
||||
@@ -101,6 +101,7 @@ public class ApsPlanDetailServiceImpl implements IApsPlanDetailService {
|
||||
qw.eq(StringUtils.isNotBlank(bo.getSampleReq()), "d.sample_req", bo.getSampleReq());
|
||||
qw.eq(bo.getStartTime() != null, "d.start_time", bo.getStartTime());
|
||||
qw.eq(bo.getEndTime() != null, "d.end_time", bo.getEndTime());
|
||||
qw.eq(StringUtils.isNotBlank(bo.getDetailDate()), "d.detail_date", bo.getDetailDate());
|
||||
//根据创建时间倒叙
|
||||
qw.orderByDesc("d.create_time");
|
||||
return qw;
|
||||
@@ -168,6 +169,7 @@ public class ApsPlanDetailServiceImpl implements IApsPlanDetailService {
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSampleReq()), ApsPlanDetail::getSampleReq, bo.getSampleReq());
|
||||
lqw.eq(bo.getStartTime() != null, ApsPlanDetail::getStartTime, bo.getStartTime());
|
||||
lqw.eq(bo.getEndTime() != null, ApsPlanDetail::getEndTime, bo.getEndTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDetailDate()), ApsPlanDetail::getDetailDate, bo.getDetailDate());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
@@ -185,6 +187,16 @@ public class ApsPlanDetailServiceImpl implements IApsPlanDetailService {
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增排产单明细
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertBatchByBo(List<ApsPlanDetailBo> boList) {
|
||||
List<ApsPlanDetail> list = BeanUtil.copyToList(boList, ApsPlanDetail.class);
|
||||
list.forEach(this::validEntityBeforeSave);
|
||||
return baseMapper.insertBatch(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改排产单明细
|
||||
*/
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
<result property="startTime" column="start_time"/>
|
||||
<result property="endTime" column="end_time"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="detailDate" column="detail_date"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<result property="lineName" column="line_name"/>
|
||||
<result property="planCode" column="plan_code"/>
|
||||
<result property="planType" column="plan_type"/>
|
||||
<result property="apsUrl" column="aps_url"/>
|
||||
<result property="scheduler" column="scheduler"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
@@ -27,6 +28,7 @@
|
||||
s.line_name AS lineName,
|
||||
s.plan_code AS planCode,
|
||||
s.plan_type AS planType,
|
||||
s.aps_url AS apsUrl,
|
||||
s.scheduler AS scheduler,
|
||||
s.remark AS masterRemark,
|
||||
d.remark AS detailRemark,
|
||||
|
||||
@@ -26,9 +26,15 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Excel相关处理
|
||||
@@ -149,6 +155,33 @@ public class ExcelUtil {
|
||||
builder.doWrite(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel(仅导出指定列)
|
||||
*
|
||||
* @param list 导出数据集合
|
||||
* @param sheetName 工作表的名称
|
||||
* @param clazz 实体类
|
||||
* @param includeColumnFieldNames 需要导出的字段名集合(Java字段名,非Excel列名)
|
||||
* @param response 响应体
|
||||
*/
|
||||
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz,
|
||||
Set<String> includeColumnFieldNames,
|
||||
HttpServletResponse response) {
|
||||
try {
|
||||
resetResponse(sheetName, response);
|
||||
ServletOutputStream os = response.getOutputStream();
|
||||
EasyExcel.write(os, clazz)
|
||||
.autoCloseStream(false)
|
||||
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||
.registerConverter(new ExcelBigNumberConvert())
|
||||
.includeColumnFieldNames(includeColumnFieldNames)
|
||||
.sheet(sheetName)
|
||||
.doWrite(list);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("导出Excel异常");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 单表多数据模板导出 模板格式为 {.属性}
|
||||
*
|
||||
@@ -325,4 +358,67 @@ public class ExcelUtil {
|
||||
return IdUtil.fastSimpleUUID() + "_" + filename + ".xlsx";
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel(按指定顺序的列导出,使用动态表头)
|
||||
*
|
||||
* @param list 导出数据集合
|
||||
* @param sheetName 工作表的名称
|
||||
* @param orderedFields 按导出顺序排列的Java字段名列表
|
||||
* @param fieldLabelMap Java字段名 -> Excel列头中文名 映射
|
||||
* @param response 响应体
|
||||
*/
|
||||
public static <T> void exportExcelOrdered(List<T> list, String sheetName,
|
||||
List<String> orderedFields,
|
||||
Map<String, String> fieldLabelMap,
|
||||
HttpServletResponse response) {
|
||||
if (orderedFields == null || orderedFields.isEmpty()) {
|
||||
throw new IllegalArgumentException("导出列不能为空");
|
||||
}
|
||||
// 构建动态表头
|
||||
List<List<String>> heads = orderedFields.stream()
|
||||
.map(f -> Collections.singletonList(fieldLabelMap.getOrDefault(f, f)))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 构建数据行
|
||||
List<List<Object>> data = new ArrayList<>(list.size());
|
||||
if (!list.isEmpty()) {
|
||||
Map<String, Field> fieldCache = new HashMap<>();
|
||||
Class<?> clazz = list.get(0).getClass();
|
||||
for (T vo : list) {
|
||||
List<Object> row = new ArrayList<>(orderedFields.size());
|
||||
for (String fieldName : orderedFields) {
|
||||
Field field = fieldCache.computeIfAbsent(fieldName, k -> {
|
||||
try {
|
||||
Field f = clazz.getDeclaredField(k);
|
||||
f.setAccessible(true);
|
||||
return f;
|
||||
} catch (NoSuchFieldException e) {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
try {
|
||||
row.add(field != null ? field.get(vo) : null);
|
||||
} catch (IllegalAccessException e) {
|
||||
row.add(null);
|
||||
}
|
||||
}
|
||||
data.add(row);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
resetResponse(sheetName, response);
|
||||
ServletOutputStream os = response.getOutputStream();
|
||||
EasyExcel.write(os)
|
||||
.head(heads)
|
||||
.autoCloseStream(false)
|
||||
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||
.registerConverter(new ExcelBigNumberConvert())
|
||||
.sheet(sheetName)
|
||||
.doWrite(data);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("导出Excel异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.klp.cost.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.cost.domain.vo.CostProdMetricResultVo;
|
||||
import com.klp.cost.domain.bo.CostProdMetricResultBo;
|
||||
import com.klp.cost.service.ICostProdMetricResultService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 生产指标计算结果
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-17
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/cost/prodMetricResult")
|
||||
public class CostProdMetricResultController extends BaseController {
|
||||
|
||||
private final ICostProdMetricResultService iCostProdMetricResultService;
|
||||
|
||||
/**
|
||||
* 查询生产指标计算结果列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<CostProdMetricResultVo> list(CostProdMetricResultBo bo, PageQuery pageQuery) {
|
||||
return iCostProdMetricResultService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出生产指标计算结果列表
|
||||
*/
|
||||
@Log(title = "生产指标计算结果", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(CostProdMetricResultBo bo, HttpServletResponse response) {
|
||||
List<CostProdMetricResultVo> list = iCostProdMetricResultService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "生产指标计算结果", CostProdMetricResultVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取生产指标计算结果详细信息
|
||||
*
|
||||
* @param resultId 主键
|
||||
*/
|
||||
@GetMapping("/{resultId}")
|
||||
public R<CostProdMetricResultVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long resultId) {
|
||||
return R.ok(iCostProdMetricResultService.queryById(resultId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增生产指标计算结果
|
||||
*/
|
||||
@Log(title = "生产指标计算结果", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody CostProdMetricResultBo bo) {
|
||||
return toAjax(iCostProdMetricResultService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量保存生产指标计算结果(先删除再插入)
|
||||
*/
|
||||
@Log(title = "生产指标计算结果", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/batch")
|
||||
public R<Void> batchSave(@RequestBody CostProdMetricResultBo bo) {
|
||||
return toAjax(iCostProdMetricResultService.batchSaveWithDelete(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改生产指标计算结果
|
||||
*/
|
||||
@Log(title = "生产指标计算结果", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CostProdMetricResultBo bo) {
|
||||
return toAjax(iCostProdMetricResultService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除生产指标计算结果
|
||||
*
|
||||
* @param resultIds 主键串
|
||||
*/
|
||||
@Log(title = "生产指标计算结果", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{resultIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] resultIds) {
|
||||
return toAjax(iCostProdMetricResultService.deleteWithValidByIds(Arrays.asList(resultIds), true));
|
||||
}
|
||||
}
|
||||
@@ -44,6 +44,10 @@ public class CostItem extends BaseEntity {
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 查询条件(JSON格式)
|
||||
*/
|
||||
private String queryCondition;
|
||||
/**
|
||||
* 删除标识 0=正常 2=删除
|
||||
*/
|
||||
|
||||
@@ -42,13 +42,21 @@ public class CostProdMetric extends BaseEntity {
|
||||
*/
|
||||
private String metricFormula;
|
||||
/**
|
||||
* 指标计算结果值
|
||||
* 单价
|
||||
*/
|
||||
private BigDecimal metricValue;
|
||||
/**
|
||||
* 是否使用单价 0=否 1=是
|
||||
*/
|
||||
private Integer usePrice;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private String tags;
|
||||
/**
|
||||
* 删除标识 0=正常 2=删除
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.klp.cost.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 生产指标计算结果对象 cost_prod_metric_result
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("cost_prod_metric_result")
|
||||
public class CostProdMetricResult extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "result_id")
|
||||
private Long resultId;
|
||||
/**
|
||||
* 报表ID(关联生产日报)
|
||||
*/
|
||||
private Long reportId;
|
||||
/**
|
||||
* 指标ID(关联cost_prod_metric)
|
||||
*/
|
||||
private Long metricId;
|
||||
/**
|
||||
* 计算日期
|
||||
*/
|
||||
private Date metricDate;
|
||||
/**
|
||||
* 班组
|
||||
*/
|
||||
private String teamGroup;
|
||||
/**
|
||||
* 计算值
|
||||
*/
|
||||
private BigDecimal calcValue;
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private String tags;
|
||||
/**
|
||||
* 删除标识 0=正常 2=删除
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
}
|
||||
@@ -47,5 +47,10 @@ public class CostItemBo extends BaseEntity {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 查询条件(JSON格式)
|
||||
*/
|
||||
private String queryCondition;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -44,14 +44,23 @@ public class CostProdMetricBo extends BaseEntity {
|
||||
private String metricFormula;
|
||||
|
||||
/**
|
||||
* 指标计算结果值
|
||||
* 单价
|
||||
*/
|
||||
private BigDecimal metricValue;
|
||||
|
||||
/**
|
||||
* 是否使用单价 0=否 1=是
|
||||
*/
|
||||
private Integer usePrice;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private String tags;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
package com.klp.cost.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 生产指标计算结果业务对象 cost_prod_metric_result
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-17
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CostProdMetricResultBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long resultId;
|
||||
|
||||
/**
|
||||
* 报表ID(关联生产日报)
|
||||
*/
|
||||
private Long reportId;
|
||||
|
||||
/**
|
||||
* 指标ID(关联cost_prod_metric)
|
||||
*/
|
||||
private Long metricId;
|
||||
|
||||
/**
|
||||
* 计算日期
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date metricDate;
|
||||
|
||||
/**
|
||||
* 班组
|
||||
*/
|
||||
private String teamGroup;
|
||||
|
||||
/**
|
||||
* 计算值
|
||||
*/
|
||||
private BigDecimal calcValue;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
private String tags;
|
||||
|
||||
/**
|
||||
* 要删除的主键ID集合
|
||||
*/
|
||||
private List<Long> resultIds;
|
||||
|
||||
/**
|
||||
* 要批量插入的数据集合
|
||||
*/
|
||||
private List<CostProdMetricResultBo> prodMetricResultList;
|
||||
|
||||
}
|
||||
@@ -55,5 +55,11 @@ public class CostItemVo {
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 查询条件(JSON格式)
|
||||
*/
|
||||
@ExcelProperty(value = "查询条件(JSON格式)")
|
||||
private String queryCondition;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.klp.cost.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 生产指标计算结果视图对象 cost_prod_metric_result
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-17
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class CostProdMetricResultVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long resultId;
|
||||
|
||||
/**
|
||||
* 报表ID(关联生产日报)
|
||||
*/
|
||||
@ExcelProperty(value = "报表ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "关=联生产日报")
|
||||
private Long reportId;
|
||||
|
||||
/**
|
||||
* 指标ID(关联cost_prod_metric)
|
||||
*/
|
||||
@ExcelProperty(value = "指标ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "关=联cost_prod_metric")
|
||||
private Long metricId;
|
||||
|
||||
/**
|
||||
* 计算日期
|
||||
*/
|
||||
@ExcelProperty(value = "计算日期")
|
||||
private Date metricDate;
|
||||
|
||||
/**
|
||||
* 班组
|
||||
*/
|
||||
@ExcelProperty(value = "班组")
|
||||
private String teamGroup;
|
||||
|
||||
/**
|
||||
* 计算值
|
||||
*/
|
||||
@ExcelProperty(value = "计算值")
|
||||
private BigDecimal calcValue;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
@ExcelProperty(value = "标签")
|
||||
private String tags;
|
||||
|
||||
|
||||
}
|
||||
@@ -52,16 +52,27 @@ public class CostProdMetricVo {
|
||||
private String metricFormula;
|
||||
|
||||
/**
|
||||
* 指标计算结果值
|
||||
* 单价
|
||||
*/
|
||||
@ExcelProperty(value = "指标计算结果值")
|
||||
@ExcelProperty(value = "单价")
|
||||
private BigDecimal metricValue;
|
||||
|
||||
/**
|
||||
* 是否使用单价 0=否 1=是
|
||||
*/
|
||||
@ExcelProperty(value = "是否使用单价")
|
||||
private Integer usePrice;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 标签
|
||||
*/
|
||||
@ExcelProperty(value = "标签")
|
||||
private String tags;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.cost.mapper;
|
||||
|
||||
import com.klp.cost.domain.CostProdMetricResult;
|
||||
import com.klp.cost.domain.vo.CostProdMetricResultVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 生产指标计算结果Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-17
|
||||
*/
|
||||
public interface CostProdMetricResultMapper extends BaseMapperPlus<CostProdMetricResultMapper, CostProdMetricResult, CostProdMetricResultVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.klp.cost.service;
|
||||
|
||||
import com.klp.cost.domain.CostProdMetricResult;
|
||||
import com.klp.cost.domain.vo.CostProdMetricResultVo;
|
||||
import com.klp.cost.domain.bo.CostProdMetricResultBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 生产指标计算结果Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-17
|
||||
*/
|
||||
public interface ICostProdMetricResultService {
|
||||
|
||||
/**
|
||||
* 查询生产指标计算结果
|
||||
*/
|
||||
CostProdMetricResultVo queryById(Long resultId);
|
||||
|
||||
/**
|
||||
* 查询生产指标计算结果列表
|
||||
*/
|
||||
TableDataInfo<CostProdMetricResultVo> queryPageList(CostProdMetricResultBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询生产指标计算结果列表
|
||||
*/
|
||||
List<CostProdMetricResultVo> queryList(CostProdMetricResultBo bo);
|
||||
|
||||
/**
|
||||
* 新增生产指标计算结果
|
||||
*/
|
||||
Boolean insertByBo(CostProdMetricResultBo bo);
|
||||
|
||||
/**
|
||||
* 修改生产指标计算结果
|
||||
*/
|
||||
Boolean updateByBo(CostProdMetricResultBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除生产指标计算结果信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 批量保存生产指标计算结果(先删除再插入)
|
||||
*/
|
||||
Boolean batchSaveWithDelete(CostProdMetricResultBo bo);
|
||||
}
|
||||
@@ -65,6 +65,7 @@ public class CostItemServiceImpl implements ICostItemService {
|
||||
lqw.like(StringUtils.isNotBlank(bo.getItemName()), CostItem::getItemName, bo.getItemName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCategory()), CostItem::getCategory, bo.getCategory());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), CostItem::getUnit, bo.getUnit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getQueryCondition()), CostItem::getQueryCondition, bo.getQueryCondition());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
package com.klp.cost.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.klp.cost.domain.bo.CostProdMetricResultBo;
|
||||
import com.klp.cost.domain.vo.CostProdMetricResultVo;
|
||||
import com.klp.cost.domain.CostProdMetricResult;
|
||||
import com.klp.cost.mapper.CostProdMetricResultMapper;
|
||||
import com.klp.cost.service.ICostProdMetricResultService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 生产指标计算结果Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-17
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class CostProdMetricResultServiceImpl implements ICostProdMetricResultService {
|
||||
|
||||
private final CostProdMetricResultMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询生产指标计算结果
|
||||
*/
|
||||
@Override
|
||||
public CostProdMetricResultVo queryById(Long resultId){
|
||||
return baseMapper.selectVoById(resultId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询生产指标计算结果列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<CostProdMetricResultVo> queryPageList(CostProdMetricResultBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<CostProdMetricResult> lqw = buildQueryWrapper(bo);
|
||||
Page<CostProdMetricResultVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询生产指标计算结果列表
|
||||
*/
|
||||
@Override
|
||||
public List<CostProdMetricResultVo> queryList(CostProdMetricResultBo bo) {
|
||||
LambdaQueryWrapper<CostProdMetricResult> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<CostProdMetricResult> buildQueryWrapper(CostProdMetricResultBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<CostProdMetricResult> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getReportId() != null, CostProdMetricResult::getReportId, bo.getReportId());
|
||||
lqw.eq(bo.getMetricId() != null, CostProdMetricResult::getMetricId, bo.getMetricId());
|
||||
lqw.eq(bo.getMetricDate() != null, CostProdMetricResult::getMetricDate, bo.getMetricDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTeamGroup()), CostProdMetricResult::getTeamGroup, bo.getTeamGroup());
|
||||
lqw.eq(bo.getCalcValue() != null, CostProdMetricResult::getCalcValue, bo.getCalcValue());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTags()), CostProdMetricResult::getTags, bo.getTags());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增生产指标计算结果
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(CostProdMetricResultBo bo) {
|
||||
CostProdMetricResult add = BeanUtil.toBean(bo, CostProdMetricResult.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setResultId(add.getResultId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改生产指标计算结果
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(CostProdMetricResultBo bo) {
|
||||
CostProdMetricResult update = BeanUtil.toBean(bo, CostProdMetricResult.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(CostProdMetricResult entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除生产指标计算结果
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量保存(先删除再插入)
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchSaveWithDelete(CostProdMetricResultBo bo) {
|
||||
if (CollUtil.isNotEmpty(bo.getProdMetricResultList())) {
|
||||
if (CollUtil.isNotEmpty(bo.getResultIds())) {
|
||||
baseMapper.deleteBatchIds(bo.getResultIds());
|
||||
}
|
||||
List<CostProdMetricResult> list = bo.getProdMetricResultList().stream()
|
||||
.map(item -> BeanUtil.toBean(item, CostProdMetricResult.class))
|
||||
.collect(Collectors.toList());
|
||||
return baseMapper.insertBatch(list);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -66,6 +66,8 @@ public class CostProdMetricServiceImpl implements ICostProdMetricService {
|
||||
lqw.like(StringUtils.isNotBlank(bo.getMetricName()), CostProdMetric::getMetricName, bo.getMetricName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getMetricFormula()), CostProdMetric::getMetricFormula, bo.getMetricFormula());
|
||||
lqw.eq(bo.getMetricValue() != null, CostProdMetric::getMetricValue, bo.getMetricValue());
|
||||
lqw.eq(bo.getUsePrice() != null, CostProdMetric::getUsePrice, bo.getUsePrice());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getTags()), CostProdMetric::getTags, bo.getTags());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,10 @@ public class CostProdReportServiceImpl implements ICostProdReportService {
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getLineType()), CostProdReport::getLineType, bo.getLineType());
|
||||
lqw.eq(bo.getInputWeight() != null, CostProdReport::getInputWeight, bo.getInputWeight());
|
||||
lqw.eq(bo.getOutputWeight() != null, CostProdReport::getOutputWeight, bo.getOutputWeight());
|
||||
lqw.apply(bo.getReportDate() != null, "DATE_FORMAT(report_date, '%Y-%m') = {0}", bo.getReportDate());
|
||||
if (bo.getReportDate() != null) {
|
||||
String monthStr = new java.text.SimpleDateFormat("yyyy-MM").format(bo.getReportDate());
|
||||
lqw.apply("DATE_FORMAT(report_date, '%Y-%m') = {0}", monthStr);
|
||||
}
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="category" column="category"/>
|
||||
<result property="unit" column="unit"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="queryCondition" column="query_condition"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
|
||||
@@ -11,7 +11,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="metricName" column="metric_name"/>
|
||||
<result property="metricFormula" column="metric_formula"/>
|
||||
<result property="metricValue" column="metric_value"/>
|
||||
<result property="usePrice" column="use_price"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="tags" column="tags"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.klp.cost.mapper.CostProdMetricResultMapper">
|
||||
|
||||
<resultMap type="com.klp.cost.domain.CostProdMetricResult" id="CostProdMetricResultResult">
|
||||
<result property="resultId" column="result_id"/>
|
||||
<result property="reportId" column="report_id"/>
|
||||
<result property="metricId" column="metric_id"/>
|
||||
<result property="metricDate" column="metric_date"/>
|
||||
<result property="teamGroup" column="team_group"/>
|
||||
<result property="calcValue" column="calc_value"/>
|
||||
<result property="tags" column="tags"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -85,6 +85,15 @@ public class CrmSalesReportController extends BaseController {
|
||||
return R.ok(stats);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询省份统计数据
|
||||
*/
|
||||
@GetMapping("/provinceStats")
|
||||
public R<List<CrmSalesReportVo.ProvinceStat>> getProvinceStats(CrmSalesReportBo bo) {
|
||||
List<CrmSalesReportVo.ProvinceStat> stats = iCrmSalesReportService.queryProvinceStats(bo);
|
||||
return R.ok(stats);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出销售报表订单明细
|
||||
*/
|
||||
|
||||
@@ -290,4 +290,35 @@ public class CrmSalesReportVo {
|
||||
@ExcelProperty(value = "销售金额")
|
||||
private BigDecimal salesAmount;
|
||||
}
|
||||
|
||||
/**
|
||||
* 省份统计内部类
|
||||
*/
|
||||
@Data
|
||||
public static class ProvinceStat {
|
||||
|
||||
/**
|
||||
* 省份
|
||||
*/
|
||||
@ExcelProperty(value = "省份")
|
||||
private String province;
|
||||
|
||||
/**
|
||||
* 客户数量
|
||||
*/
|
||||
@ExcelProperty(value = "客户数量")
|
||||
private Integer customerCount;
|
||||
|
||||
/**
|
||||
* 订单数量
|
||||
*/
|
||||
@ExcelProperty(value = "订单数量")
|
||||
private Integer orderCount;
|
||||
|
||||
/**
|
||||
* 销售金额
|
||||
*/
|
||||
@ExcelProperty(value = "销售金额")
|
||||
private BigDecimal salesAmount;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,4 +12,9 @@ import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
*/
|
||||
public interface CrmCustomerMapper extends BaseMapperPlus<CrmCustomerMapper, CrmCustomer, CrmCustomerVo> {
|
||||
|
||||
/**
|
||||
* 查询当前最大的customer_code,用于自动生成新编码
|
||||
*/
|
||||
String selectMaxCustomerCode();
|
||||
|
||||
}
|
||||
|
||||
@@ -54,4 +54,12 @@ public interface CrmSalesReportMapper {
|
||||
* @return 行业统计列表
|
||||
*/
|
||||
List<CrmSalesReportVo.IndustryStat> selectIndustryStats(@Param("bo") CrmSalesReportBo bo);
|
||||
|
||||
/**
|
||||
* 查询省份统计数据
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 省份统计列表
|
||||
*/
|
||||
List<CrmSalesReportVo.ProvinceStat> selectProvinceStats(@Param("bo") CrmSalesReportBo bo);
|
||||
}
|
||||
@@ -72,4 +72,12 @@ public interface ICrmSalesReportService {
|
||||
* @return 行业统计列表
|
||||
*/
|
||||
List<CrmSalesReportVo.IndustryStat> queryIndustryStats(CrmSalesReportBo bo);
|
||||
|
||||
/**
|
||||
* 查询省份统计数据
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 省份统计列表
|
||||
*/
|
||||
List<CrmSalesReportVo.ProvinceStat> queryProvinceStats(CrmSalesReportBo bo);
|
||||
}
|
||||
@@ -91,6 +91,25 @@ public class CrmCustomerServiceImpl implements ICrmCustomerService {
|
||||
@Override
|
||||
public Boolean insertByBo(CrmCustomerBo bo) {
|
||||
CrmCustomer add = BeanUtil.toBean(bo, CrmCustomer.class);
|
||||
// 自动生成customer_code:查询最大编码并加1
|
||||
if (StringUtils.isBlank(add.getCustomerCode())) {
|
||||
String maxCode = baseMapper.selectMaxCustomerCode();
|
||||
if (StringUtils.isBlank(maxCode)) {
|
||||
add.setCustomerCode("00001");
|
||||
} else {
|
||||
// 提取末尾数字后缀并递增,支持纯数字("00001")和带前缀("KH00001")两种格式
|
||||
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("^(.*?)(\\d+)$");
|
||||
java.util.regex.Matcher matcher = pattern.matcher(maxCode);
|
||||
if (matcher.matches()) {
|
||||
String prefix = matcher.group(1);
|
||||
String numStr = matcher.group(2);
|
||||
long num = Long.parseLong(numStr) + 1;
|
||||
add.setCustomerCode(prefix + String.format("%0" + numStr.length() + "d", num));
|
||||
} else {
|
||||
add.setCustomerCode(maxCode + "1");
|
||||
}
|
||||
}
|
||||
}
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
|
||||
@@ -250,11 +250,9 @@ public class CrmOrderServiceImpl implements ICrmOrderService {
|
||||
qw.eq("co.del_flag", 0);
|
||||
//排序规则:
|
||||
// 1. 置顶优先 (is_top=1 排在前面)
|
||||
// 2. 状态为1(已生效)的排在前面
|
||||
// 3. 创建时间倒序
|
||||
// 2. 合同号倒序(KLPY+年月日+序号,降序最新在前)
|
||||
qw.orderByDesc("co.is_top")
|
||||
.orderByDesc("CASE WHEN co.status = 1 THEN 1 ELSE 0 END")
|
||||
.orderByDesc("co.create_time");
|
||||
.orderByDesc("co.contract_code");
|
||||
return qw;
|
||||
}
|
||||
|
||||
|
||||
@@ -136,4 +136,12 @@ public class CrmSalesReportServiceImpl implements ICrmSalesReportService {
|
||||
public List<CrmSalesReportVo.IndustryStat> queryIndustryStats(CrmSalesReportBo bo) {
|
||||
return baseMapper.selectIndustryStats(bo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询省份统计数据
|
||||
*/
|
||||
@Override
|
||||
public List<CrmSalesReportVo.ProvinceStat> queryProvinceStats(CrmSalesReportBo bo) {
|
||||
return baseMapper.selectProvinceStats(bo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,5 +23,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectMaxCustomerCode" resultType="String">
|
||||
SELECT customer_code FROM crm_customer WHERE del_flag = 0 ORDER BY LENGTH(customer_code) DESC, customer_code DESC LIMIT 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -268,4 +268,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
ORDER BY salesAmount DESC
|
||||
</select>
|
||||
|
||||
<!-- 查询省份统计数据 -->
|
||||
<select id="selectProvinceStats" resultType="com.klp.crm.domain.vo.CrmSalesReportVo$ProvinceStat">
|
||||
SELECT
|
||||
COALESCE(c.province, '其他') as province,
|
||||
COUNT(DISTINCT c.customer_id) as customerCount,
|
||||
COUNT(o.order_id) as orderCount,
|
||||
COALESCE(SUM(o.order_amount), 0) as salesAmount
|
||||
FROM crm_order o
|
||||
LEFT JOIN crm_customer c ON o.customer_id = c.customer_id
|
||||
<include refid="selectCondition"/>
|
||||
GROUP BY c.province
|
||||
ORDER BY salesAmount DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
19
klp-flow/pom.xml
Normal file
19
klp-flow/pom.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.klp</groupId>
|
||||
<artifactId>klp-oa</artifactId>
|
||||
<version>0.8.3</version>
|
||||
</parent>
|
||||
<artifactId>klp-flow</artifactId>
|
||||
<name>klp-flow</name>
|
||||
<description>流程管理模块</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.klp</groupId>
|
||||
<artifactId>klp-common</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.klp.flow.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.flow.domain.vo.TsAcceptCoilRelVo;
|
||||
import com.klp.flow.domain.bo.TsAcceptCoilRelBo;
|
||||
import com.klp.flow.service.ITsAcceptCoilRelService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 受理单关联钢卷中间
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/flow/acceptCoilRel")
|
||||
public class TsAcceptCoilRelController extends BaseController {
|
||||
|
||||
private final ITsAcceptCoilRelService iTsAcceptCoilRelService;
|
||||
|
||||
/**
|
||||
* 查询受理单关联钢卷中间列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<TsAcceptCoilRelVo> list(TsAcceptCoilRelBo bo, PageQuery pageQuery) {
|
||||
return iTsAcceptCoilRelService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出受理单关联钢卷中间列表
|
||||
*/
|
||||
@Log(title = "受理单关联钢卷中间", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(TsAcceptCoilRelBo bo, HttpServletResponse response) {
|
||||
List<TsAcceptCoilRelVo> list = iTsAcceptCoilRelService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "受理单关联钢卷中间", TsAcceptCoilRelVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取受理单关联钢卷中间详细信息
|
||||
*
|
||||
* @param relId 主键
|
||||
*/
|
||||
@GetMapping("/{relId}")
|
||||
public R<TsAcceptCoilRelVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long relId) {
|
||||
return R.ok(iTsAcceptCoilRelService.queryById(relId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增受理单关联钢卷中间
|
||||
*/
|
||||
@Log(title = "受理单关联钢卷中间", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody TsAcceptCoilRelBo bo) {
|
||||
return toAjax(iTsAcceptCoilRelService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改受理单关联钢卷中间
|
||||
*/
|
||||
@Log(title = "受理单关联钢卷中间", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TsAcceptCoilRelBo bo) {
|
||||
return toAjax(iTsAcceptCoilRelService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除受理单关联钢卷中间
|
||||
*
|
||||
* @param relIds 主键串
|
||||
*/
|
||||
@Log(title = "受理单关联钢卷中间", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{relIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] relIds) {
|
||||
return toAjax(iTsAcceptCoilRelService.deleteWithValidByIds(Arrays.asList(relIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.klp.flow.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.flow.domain.vo.TsComplaintAcceptVo;
|
||||
import com.klp.flow.domain.bo.TsComplaintAcceptBo;
|
||||
import com.klp.flow.service.ITsComplaintAcceptService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 投诉受理单主
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/flow/complaintAccept")
|
||||
public class TsComplaintAcceptController extends BaseController {
|
||||
|
||||
private final ITsComplaintAcceptService iTsComplaintAcceptService;
|
||||
|
||||
/**
|
||||
* 查询投诉受理单主列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<TsComplaintAcceptVo> list(TsComplaintAcceptBo bo, PageQuery pageQuery) {
|
||||
return iTsComplaintAcceptService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出投诉受理单主列表
|
||||
*/
|
||||
@Log(title = "投诉受理单主", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(TsComplaintAcceptBo bo, HttpServletResponse response) {
|
||||
List<TsComplaintAcceptVo> list = iTsComplaintAcceptService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "投诉受理单主", TsComplaintAcceptVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取投诉受理单主详细信息
|
||||
*
|
||||
* @param acceptId 主键
|
||||
*/
|
||||
@GetMapping("/{acceptId}")
|
||||
public R<TsComplaintAcceptVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long acceptId) {
|
||||
return R.ok(iTsComplaintAcceptService.queryById(acceptId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增投诉受理单主
|
||||
*/
|
||||
@Log(title = "投诉受理单主", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody TsComplaintAcceptBo bo) {
|
||||
return toAjax(iTsComplaintAcceptService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改投诉受理单主
|
||||
*/
|
||||
@Log(title = "投诉受理单主", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TsComplaintAcceptBo bo) {
|
||||
return toAjax(iTsComplaintAcceptService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除投诉受理单主
|
||||
*
|
||||
* @param acceptIds 主键串
|
||||
*/
|
||||
@Log(title = "投诉受理单主", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{acceptIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] acceptIds) {
|
||||
return toAjax(iTsComplaintAcceptService.deleteWithValidByIds(Arrays.asList(acceptIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.klp.flow.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.flow.domain.vo.TsComplaintTaskVo;
|
||||
import com.klp.flow.domain.bo.TsComplaintTaskBo;
|
||||
import com.klp.flow.service.ITsComplaintTaskService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 各部门投诉代办任务&意见
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/flow/complaintTask")
|
||||
public class TsComplaintTaskController extends BaseController {
|
||||
|
||||
private final ITsComplaintTaskService iTsComplaintTaskService;
|
||||
|
||||
/**
|
||||
* 查询各部门投诉代办任务&意见列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<TsComplaintTaskVo> list(TsComplaintTaskBo bo, PageQuery pageQuery) {
|
||||
return iTsComplaintTaskService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出各部门投诉代办任务&意见列表
|
||||
*/
|
||||
@Log(title = "各部门投诉代办任务&意见", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(TsComplaintTaskBo bo, HttpServletResponse response) {
|
||||
List<TsComplaintTaskVo> list = iTsComplaintTaskService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "各部门投诉代办任务&意见", TsComplaintTaskVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取各部门投诉代办任务&意见详细信息
|
||||
*
|
||||
* @param taskId 主键
|
||||
*/
|
||||
@GetMapping("/{taskId}")
|
||||
public R<TsComplaintTaskVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long taskId) {
|
||||
return R.ok(iTsComplaintTaskService.queryById(taskId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增各部门投诉代办任务&意见
|
||||
*/
|
||||
@Log(title = "各部门投诉代办任务&意见", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody TsComplaintTaskBo bo) {
|
||||
return toAjax(iTsComplaintTaskService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改各部门投诉代办任务&意见
|
||||
*/
|
||||
@Log(title = "各部门投诉代办任务&意见", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TsComplaintTaskBo bo) {
|
||||
return toAjax(iTsComplaintTaskService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除各部门投诉代办任务&意见
|
||||
*
|
||||
* @param taskIds 主键串
|
||||
*/
|
||||
@Log(title = "各部门投诉代办任务&意见", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{taskIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] taskIds) {
|
||||
return toAjax(iTsComplaintTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.klp.flow.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.flow.domain.vo.TsPlanExecuteRelVo;
|
||||
import com.klp.flow.domain.bo.TsPlanExecuteRelBo;
|
||||
import com.klp.flow.service.ITsPlanExecuteRelService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 最终方案下发部门及执行反馈
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/flow/planExecuteRel")
|
||||
public class TsPlanExecuteRelController extends BaseController {
|
||||
|
||||
private final ITsPlanExecuteRelService iTsPlanExecuteRelService;
|
||||
|
||||
/**
|
||||
* 查询最终方案下发部门及执行反馈列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<TsPlanExecuteRelVo> list(TsPlanExecuteRelBo bo, PageQuery pageQuery) {
|
||||
return iTsPlanExecuteRelService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出最终方案下发部门及执行反馈列表
|
||||
*/
|
||||
@Log(title = "最终方案下发部门及执行反馈", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(TsPlanExecuteRelBo bo, HttpServletResponse response) {
|
||||
List<TsPlanExecuteRelVo> list = iTsPlanExecuteRelService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "最终方案下发部门及执行反馈", TsPlanExecuteRelVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取最终方案下发部门及执行反馈详细信息
|
||||
*
|
||||
* @param relId 主键
|
||||
*/
|
||||
@GetMapping("/{relId}")
|
||||
public R<TsPlanExecuteRelVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long relId) {
|
||||
return R.ok(iTsPlanExecuteRelService.queryById(relId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增最终方案下发部门及执行反馈
|
||||
*/
|
||||
@Log(title = "最终方案下发部门及执行反馈", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody TsPlanExecuteRelBo bo) {
|
||||
return toAjax(iTsPlanExecuteRelService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改最终方案下发部门及执行反馈
|
||||
*/
|
||||
@Log(title = "最终方案下发部门及执行反馈", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TsPlanExecuteRelBo bo) {
|
||||
return toAjax(iTsPlanExecuteRelService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除最终方案下发部门及执行反馈
|
||||
*
|
||||
* @param relIds 主键串
|
||||
*/
|
||||
@Log(title = "最终方案下发部门及执行反馈", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{relIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] relIds) {
|
||||
return toAjax(iTsPlanExecuteRelService.deleteWithValidByIds(Arrays.asList(relIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.klp.flow.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
* 受理单关联钢卷中间对象 ts_accept_coil_rel
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("ts_accept_coil_rel")
|
||||
public class TsAcceptCoilRel extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "rel_id")
|
||||
private Long relId;
|
||||
/**
|
||||
* 投诉受理单ID
|
||||
*/
|
||||
private Long acceptId;
|
||||
/**
|
||||
* 钢卷ID
|
||||
*/
|
||||
private Long coilId;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标识 0=正常 2=删除
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.klp.flow.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 投诉受理单主对象 ts_complaint_accept
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("ts_complaint_accept")
|
||||
public class TsComplaintAccept extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 受理单主键
|
||||
*/
|
||||
@TableId(value = "accept_id")
|
||||
private Long acceptId;
|
||||
/**
|
||||
* 投诉编号 TS-2026-001
|
||||
*/
|
||||
private String complaintNo;
|
||||
/**
|
||||
* 投诉日期
|
||||
*/
|
||||
private Date complaintDate;
|
||||
/**
|
||||
* 投诉情况描述
|
||||
*/
|
||||
private String complaintContent;
|
||||
/**
|
||||
* 客户诉求
|
||||
*/
|
||||
private String customerDemand;
|
||||
/**
|
||||
* 客户照片凭证等
|
||||
*/
|
||||
private String file;
|
||||
/**
|
||||
* 审核状态 0待审核 1已通过 2未通过
|
||||
*/
|
||||
private Long auditStatus;
|
||||
/**
|
||||
* 审核意见
|
||||
*/
|
||||
private String auditOpinion;
|
||||
/**
|
||||
* 审核人ID
|
||||
*/
|
||||
private Long auditUserId;
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
private Date auditTime;
|
||||
/**
|
||||
* 流程阶段:
|
||||
1=待审核 2=部门意见填写中 3=待总负责人汇总方案 4=方案下发执行反馈中 5=全部办结
|
||||
*/
|
||||
private Long flowStatus;
|
||||
/**
|
||||
* 总负责人ID
|
||||
*/
|
||||
private Long principalUserId;
|
||||
/**
|
||||
* 总负责人整合后的完整处理方案
|
||||
*/
|
||||
private String planContent;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标识 0=正常 2=删除
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.klp.flow.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 各部门投诉代办任务&意见对象 ts_complaint_task
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("ts_complaint_task")
|
||||
public class TsComplaintTask extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 代办任务ID
|
||||
*/
|
||||
@TableId(value = "task_id")
|
||||
private Long taskId;
|
||||
/**
|
||||
* 关联投诉受理单ID
|
||||
*/
|
||||
private Long acceptId;
|
||||
/**
|
||||
* 负责部门ID(销售/质量/生产)
|
||||
*/
|
||||
private Long deptId;
|
||||
/**
|
||||
* 任务状态 0待填写意见 1已完成填写
|
||||
*/
|
||||
private Long taskStatus;
|
||||
/**
|
||||
* 意见单号
|
||||
*/
|
||||
private String fillNo;
|
||||
/**
|
||||
* 部门处理意见
|
||||
*/
|
||||
private String deptOpinion;
|
||||
/**
|
||||
* 填写意见的部门员工ID
|
||||
*/
|
||||
private Long fillUserId;
|
||||
/**
|
||||
* 意见填写时间
|
||||
*/
|
||||
private Date fillTime;
|
||||
/**
|
||||
* 意见文件
|
||||
*/
|
||||
private String fillFile;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标识 0=正常 2=删除
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.klp.flow.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 最终方案下发部门及执行反馈对象 ts_plan_execute_rel
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("ts_plan_execute_rel")
|
||||
public class TsPlanExecuteRel extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "rel_id")
|
||||
private Long relId;
|
||||
/**
|
||||
* 关联最终方案ID
|
||||
*/
|
||||
private Long acceptId;
|
||||
/**
|
||||
* 被下发执行的部门ID
|
||||
*/
|
||||
private Long deptId;
|
||||
/**
|
||||
* 执行状态 0待执行反馈 1已反馈完成
|
||||
*/
|
||||
private Long executeStatus;
|
||||
/**
|
||||
* 部门执行结果反馈
|
||||
*/
|
||||
private String executeResult;
|
||||
/**
|
||||
* 反馈单号
|
||||
*/
|
||||
private String feedbackNo;
|
||||
/**
|
||||
* 反馈人
|
||||
*/
|
||||
private Long feedbackUserId;
|
||||
/**
|
||||
* 反馈时间
|
||||
*/
|
||||
private Date feedbackTime;
|
||||
/**
|
||||
* 反馈文件
|
||||
*/
|
||||
private String feedbackFile;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标识 0=正常 2=删除
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.klp.flow.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
|
||||
/**
|
||||
* 受理单关联钢卷中间业务对象 ts_accept_coil_rel
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class TsAcceptCoilRelBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private Long relId;
|
||||
|
||||
/**
|
||||
* 投诉受理单ID
|
||||
*/
|
||||
private Long acceptId;
|
||||
|
||||
/**
|
||||
* 钢卷ID
|
||||
*/
|
||||
private Long coilId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.klp.flow.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 投诉受理单主业务对象 ts_complaint_accept
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class TsComplaintAcceptBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 受理单主键
|
||||
*/
|
||||
private Long acceptId;
|
||||
|
||||
/**
|
||||
* 投诉编号 TS-2026-001
|
||||
*/
|
||||
private String complaintNo;
|
||||
|
||||
/**
|
||||
* 投诉日期
|
||||
*/
|
||||
private Date complaintDate;
|
||||
|
||||
/**
|
||||
* 投诉情况描述
|
||||
*/
|
||||
private String complaintContent;
|
||||
|
||||
/**
|
||||
* 客户诉求
|
||||
*/
|
||||
private String customerDemand;
|
||||
|
||||
/**
|
||||
* 客户照片凭证等
|
||||
*/
|
||||
private String file;
|
||||
|
||||
/**
|
||||
* 审核状态 0待审核 1已通过 2未通过
|
||||
*/
|
||||
private Long auditStatus;
|
||||
|
||||
/**
|
||||
* 审核意见
|
||||
*/
|
||||
private String auditOpinion;
|
||||
|
||||
/**
|
||||
* 审核人ID
|
||||
*/
|
||||
private Long auditUserId;
|
||||
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
private Date auditTime;
|
||||
|
||||
/**
|
||||
* 流程阶段:
|
||||
1=待审核 2=部门意见填写中 3=待总负责人汇总方案 4=方案下发执行反馈中 5=全部办结
|
||||
*/
|
||||
private Long flowStatus;
|
||||
|
||||
/**
|
||||
* 总负责人ID
|
||||
*/
|
||||
private Long principalUserId;
|
||||
|
||||
/**
|
||||
* 总负责人整合后的完整处理方案
|
||||
*/
|
||||
private String planContent;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.klp.flow.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 各部门投诉代办任务&意见业务对象 ts_complaint_task
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class TsComplaintTaskBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 代办任务ID
|
||||
*/
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 关联投诉受理单ID
|
||||
*/
|
||||
private Long acceptId;
|
||||
|
||||
/**
|
||||
* 负责部门ID(销售/质量/生产)
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 任务状态 0待填写意见 1已完成填写
|
||||
*/
|
||||
private Long taskStatus;
|
||||
|
||||
/**
|
||||
* 意见单号
|
||||
*/
|
||||
private String fillNo;
|
||||
|
||||
/**
|
||||
* 部门处理意见
|
||||
*/
|
||||
private String deptOpinion;
|
||||
|
||||
/**
|
||||
* 填写意见的部门员工ID
|
||||
*/
|
||||
private Long fillUserId;
|
||||
|
||||
/**
|
||||
* 意见填写时间
|
||||
*/
|
||||
private Date fillTime;
|
||||
|
||||
/**
|
||||
* 意见文件
|
||||
*/
|
||||
private String fillFile;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.klp.flow.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 最终方案下发部门及执行反馈业务对象 ts_plan_execute_rel
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class TsPlanExecuteRelBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private Long relId;
|
||||
|
||||
/**
|
||||
* 关联最终方案ID
|
||||
*/
|
||||
private Long acceptId;
|
||||
|
||||
/**
|
||||
* 被下发执行的部门ID
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 执行状态 0待执行反馈 1已反馈完成
|
||||
*/
|
||||
private Long executeStatus;
|
||||
|
||||
/**
|
||||
* 部门执行结果反馈
|
||||
*/
|
||||
private String executeResult;
|
||||
|
||||
/**
|
||||
* 反馈单号
|
||||
*/
|
||||
private String feedbackNo;
|
||||
|
||||
/**
|
||||
* 反馈人
|
||||
*/
|
||||
private Long feedbackUserId;
|
||||
|
||||
/**
|
||||
* 反馈时间
|
||||
*/
|
||||
private Date feedbackTime;
|
||||
|
||||
/**
|
||||
* 反馈文件
|
||||
*/
|
||||
private String feedbackFile;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.klp.flow.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 受理单关联钢卷中间视图对象 ts_accept_coil_rel
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class TsAcceptCoilRelVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "")
|
||||
private Long relId;
|
||||
|
||||
/**
|
||||
* 投诉受理单ID
|
||||
*/
|
||||
@ExcelProperty(value = "投诉受理单ID")
|
||||
private Long acceptId;
|
||||
|
||||
/**
|
||||
* 钢卷ID
|
||||
*/
|
||||
@ExcelProperty(value = "钢卷ID")
|
||||
private Long coilId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.klp.flow.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 投诉受理单主视图对象 ts_complaint_accept
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class TsComplaintAcceptVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 受理单主键
|
||||
*/
|
||||
@ExcelProperty(value = "受理单主键")
|
||||
private Long acceptId;
|
||||
|
||||
/**
|
||||
* 投诉编号 TS-2026-001
|
||||
*/
|
||||
@ExcelProperty(value = "投诉编号 TS-2026-001")
|
||||
private String complaintNo;
|
||||
|
||||
/**
|
||||
* 投诉日期
|
||||
*/
|
||||
@ExcelProperty(value = "投诉日期")
|
||||
private Date complaintDate;
|
||||
|
||||
/**
|
||||
* 投诉情况描述
|
||||
*/
|
||||
@ExcelProperty(value = "投诉情况描述")
|
||||
private String complaintContent;
|
||||
|
||||
/**
|
||||
* 客户诉求
|
||||
*/
|
||||
@ExcelProperty(value = "客户诉求")
|
||||
private String customerDemand;
|
||||
|
||||
/**
|
||||
* 客户照片凭证等
|
||||
*/
|
||||
@ExcelProperty(value = "客户照片凭证等")
|
||||
private String file;
|
||||
|
||||
/**
|
||||
* 审核状态 0待审核 1已通过 2未通过
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态 0待审核 1已通过 2未通过")
|
||||
private Long auditStatus;
|
||||
|
||||
/**
|
||||
* 审核意见
|
||||
*/
|
||||
@ExcelProperty(value = "审核意见")
|
||||
private String auditOpinion;
|
||||
|
||||
/**
|
||||
* 审核人ID
|
||||
*/
|
||||
@ExcelProperty(value = "审核人ID")
|
||||
private Long auditUserId;
|
||||
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
@ExcelProperty(value = "审核时间")
|
||||
private Date auditTime;
|
||||
|
||||
/**
|
||||
* 流程阶段:
|
||||
1=待审核 2=部门意见填写中 3=待总负责人汇总方案 4=方案下发执行反馈中 5=全部办结
|
||||
*/
|
||||
@ExcelProperty(value = "流程阶段")
|
||||
private Long flowStatus;
|
||||
|
||||
/**
|
||||
* 总负责人ID
|
||||
*/
|
||||
@ExcelProperty(value = "总负责人ID")
|
||||
private Long principalUserId;
|
||||
|
||||
/**
|
||||
* 总负责人整合后的完整处理方案
|
||||
*/
|
||||
@ExcelProperty(value = "总负责人整合后的完整处理方案")
|
||||
private String planContent;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.klp.flow.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 各部门投诉代办任务&意见视图对象 ts_complaint_task
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class TsComplaintTaskVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 代办任务ID
|
||||
*/
|
||||
@ExcelProperty(value = "代办任务ID")
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 关联投诉受理单ID
|
||||
*/
|
||||
@ExcelProperty(value = "关联投诉受理单ID")
|
||||
private Long acceptId;
|
||||
|
||||
/**
|
||||
* 负责部门ID(销售/质量/生产)
|
||||
*/
|
||||
@ExcelProperty(value = "负责部门ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "销=售/质量/生产")
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 任务状态 0待填写意见 1已完成填写
|
||||
*/
|
||||
@ExcelProperty(value = "任务状态 0待填写意见 1已完成填写")
|
||||
private Long taskStatus;
|
||||
|
||||
/**
|
||||
* 意见单号
|
||||
*/
|
||||
@ExcelProperty(value = "意见单号")
|
||||
private String fillNo;
|
||||
|
||||
/**
|
||||
* 部门处理意见
|
||||
*/
|
||||
@ExcelProperty(value = "部门处理意见")
|
||||
private String deptOpinion;
|
||||
|
||||
/**
|
||||
* 填写意见的部门员工ID
|
||||
*/
|
||||
@ExcelProperty(value = "填写意见的部门员工ID")
|
||||
private Long fillUserId;
|
||||
|
||||
/**
|
||||
* 意见填写时间
|
||||
*/
|
||||
@ExcelProperty(value = "意见填写时间")
|
||||
private Date fillTime;
|
||||
|
||||
/**
|
||||
* 意见文件
|
||||
*/
|
||||
@ExcelProperty(value = "意见文件")
|
||||
private String fillFile;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.klp.flow.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 最终方案下发部门及执行反馈视图对象 ts_plan_execute_rel
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class TsPlanExecuteRelVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "")
|
||||
private Long relId;
|
||||
|
||||
/**
|
||||
* 关联最终方案ID
|
||||
*/
|
||||
@ExcelProperty(value = "关联最终方案ID")
|
||||
private Long acceptId;
|
||||
|
||||
/**
|
||||
* 被下发执行的部门ID
|
||||
*/
|
||||
@ExcelProperty(value = "被下发执行的部门ID")
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 执行状态 0待执行反馈 1已反馈完成
|
||||
*/
|
||||
@ExcelProperty(value = "执行状态 0待执行反馈 1已反馈完成")
|
||||
private Long executeStatus;
|
||||
|
||||
/**
|
||||
* 部门执行结果反馈
|
||||
*/
|
||||
@ExcelProperty(value = "部门执行结果反馈")
|
||||
private String executeResult;
|
||||
|
||||
/**
|
||||
* 反馈单号
|
||||
*/
|
||||
@ExcelProperty(value = "反馈单号")
|
||||
private String feedbackNo;
|
||||
|
||||
/**
|
||||
* 反馈人
|
||||
*/
|
||||
@ExcelProperty(value = "反馈人")
|
||||
private Long feedbackUserId;
|
||||
|
||||
/**
|
||||
* 反馈时间
|
||||
*/
|
||||
@ExcelProperty(value = "反馈时间")
|
||||
private Date feedbackTime;
|
||||
|
||||
/**
|
||||
* 反馈文件
|
||||
*/
|
||||
@ExcelProperty(value = "反馈文件")
|
||||
private String feedbackFile;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.flow.mapper;
|
||||
|
||||
import com.klp.flow.domain.TsAcceptCoilRel;
|
||||
import com.klp.flow.domain.vo.TsAcceptCoilRelVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 受理单关联钢卷中间Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
public interface TsAcceptCoilRelMapper extends BaseMapperPlus<TsAcceptCoilRelMapper, TsAcceptCoilRel, TsAcceptCoilRelVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.flow.mapper;
|
||||
|
||||
import com.klp.flow.domain.TsComplaintAccept;
|
||||
import com.klp.flow.domain.vo.TsComplaintAcceptVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 投诉受理单主Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
public interface TsComplaintAcceptMapper extends BaseMapperPlus<TsComplaintAcceptMapper, TsComplaintAccept, TsComplaintAcceptVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.flow.mapper;
|
||||
|
||||
import com.klp.flow.domain.TsComplaintTask;
|
||||
import com.klp.flow.domain.vo.TsComplaintTaskVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 各部门投诉代办任务&意见Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
public interface TsComplaintTaskMapper extends BaseMapperPlus<TsComplaintTaskMapper, TsComplaintTask, TsComplaintTaskVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.flow.mapper;
|
||||
|
||||
import com.klp.flow.domain.TsPlanExecuteRel;
|
||||
import com.klp.flow.domain.vo.TsPlanExecuteRelVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 最终方案下发部门及执行反馈Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
public interface TsPlanExecuteRelMapper extends BaseMapperPlus<TsPlanExecuteRelMapper, TsPlanExecuteRel, TsPlanExecuteRelVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.flow.service;
|
||||
|
||||
import com.klp.flow.domain.TsAcceptCoilRel;
|
||||
import com.klp.flow.domain.vo.TsAcceptCoilRelVo;
|
||||
import com.klp.flow.domain.bo.TsAcceptCoilRelBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 受理单关联钢卷中间Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
public interface ITsAcceptCoilRelService {
|
||||
|
||||
/**
|
||||
* 查询受理单关联钢卷中间
|
||||
*/
|
||||
TsAcceptCoilRelVo queryById(Long relId);
|
||||
|
||||
/**
|
||||
* 查询受理单关联钢卷中间列表
|
||||
*/
|
||||
TableDataInfo<TsAcceptCoilRelVo> queryPageList(TsAcceptCoilRelBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询受理单关联钢卷中间列表
|
||||
*/
|
||||
List<TsAcceptCoilRelVo> queryList(TsAcceptCoilRelBo bo);
|
||||
|
||||
/**
|
||||
* 新增受理单关联钢卷中间
|
||||
*/
|
||||
Boolean insertByBo(TsAcceptCoilRelBo bo);
|
||||
|
||||
/**
|
||||
* 修改受理单关联钢卷中间
|
||||
*/
|
||||
Boolean updateByBo(TsAcceptCoilRelBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除受理单关联钢卷中间信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.flow.service;
|
||||
|
||||
import com.klp.flow.domain.TsComplaintAccept;
|
||||
import com.klp.flow.domain.vo.TsComplaintAcceptVo;
|
||||
import com.klp.flow.domain.bo.TsComplaintAcceptBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 投诉受理单主Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
public interface ITsComplaintAcceptService {
|
||||
|
||||
/**
|
||||
* 查询投诉受理单主
|
||||
*/
|
||||
TsComplaintAcceptVo queryById(Long acceptId);
|
||||
|
||||
/**
|
||||
* 查询投诉受理单主列表
|
||||
*/
|
||||
TableDataInfo<TsComplaintAcceptVo> queryPageList(TsComplaintAcceptBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询投诉受理单主列表
|
||||
*/
|
||||
List<TsComplaintAcceptVo> queryList(TsComplaintAcceptBo bo);
|
||||
|
||||
/**
|
||||
* 新增投诉受理单主
|
||||
*/
|
||||
Boolean insertByBo(TsComplaintAcceptBo bo);
|
||||
|
||||
/**
|
||||
* 修改投诉受理单主
|
||||
*/
|
||||
Boolean updateByBo(TsComplaintAcceptBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除投诉受理单主信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.flow.service;
|
||||
|
||||
import com.klp.flow.domain.TsComplaintTask;
|
||||
import com.klp.flow.domain.vo.TsComplaintTaskVo;
|
||||
import com.klp.flow.domain.bo.TsComplaintTaskBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 各部门投诉代办任务&意见Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
public interface ITsComplaintTaskService {
|
||||
|
||||
/**
|
||||
* 查询各部门投诉代办任务&意见
|
||||
*/
|
||||
TsComplaintTaskVo queryById(Long taskId);
|
||||
|
||||
/**
|
||||
* 查询各部门投诉代办任务&意见列表
|
||||
*/
|
||||
TableDataInfo<TsComplaintTaskVo> queryPageList(TsComplaintTaskBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询各部门投诉代办任务&意见列表
|
||||
*/
|
||||
List<TsComplaintTaskVo> queryList(TsComplaintTaskBo bo);
|
||||
|
||||
/**
|
||||
* 新增各部门投诉代办任务&意见
|
||||
*/
|
||||
Boolean insertByBo(TsComplaintTaskBo bo);
|
||||
|
||||
/**
|
||||
* 修改各部门投诉代办任务&意见
|
||||
*/
|
||||
Boolean updateByBo(TsComplaintTaskBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除各部门投诉代办任务&意见信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.flow.service;
|
||||
|
||||
import com.klp.flow.domain.TsPlanExecuteRel;
|
||||
import com.klp.flow.domain.vo.TsPlanExecuteRelVo;
|
||||
import com.klp.flow.domain.bo.TsPlanExecuteRelBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 最终方案下发部门及执行反馈Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
public interface ITsPlanExecuteRelService {
|
||||
|
||||
/**
|
||||
* 查询最终方案下发部门及执行反馈
|
||||
*/
|
||||
TsPlanExecuteRelVo queryById(Long relId);
|
||||
|
||||
/**
|
||||
* 查询最终方案下发部门及执行反馈列表
|
||||
*/
|
||||
TableDataInfo<TsPlanExecuteRelVo> queryPageList(TsPlanExecuteRelBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询最终方案下发部门及执行反馈列表
|
||||
*/
|
||||
List<TsPlanExecuteRelVo> queryList(TsPlanExecuteRelBo bo);
|
||||
|
||||
/**
|
||||
* 新增最终方案下发部门及执行反馈
|
||||
*/
|
||||
Boolean insertByBo(TsPlanExecuteRelBo bo);
|
||||
|
||||
/**
|
||||
* 修改最终方案下发部门及执行反馈
|
||||
*/
|
||||
Boolean updateByBo(TsPlanExecuteRelBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除最终方案下发部门及执行反馈信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.klp.flow.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.flow.domain.bo.TsAcceptCoilRelBo;
|
||||
import com.klp.flow.domain.vo.TsAcceptCoilRelVo;
|
||||
import com.klp.flow.domain.TsAcceptCoilRel;
|
||||
import com.klp.flow.mapper.TsAcceptCoilRelMapper;
|
||||
import com.klp.flow.service.ITsAcceptCoilRelService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 受理单关联钢卷中间Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class TsAcceptCoilRelServiceImpl implements ITsAcceptCoilRelService {
|
||||
|
||||
private final TsAcceptCoilRelMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询受理单关联钢卷中间
|
||||
*/
|
||||
@Override
|
||||
public TsAcceptCoilRelVo queryById(Long relId){
|
||||
return baseMapper.selectVoById(relId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询受理单关联钢卷中间列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<TsAcceptCoilRelVo> queryPageList(TsAcceptCoilRelBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<TsAcceptCoilRel> lqw = buildQueryWrapper(bo);
|
||||
Page<TsAcceptCoilRelVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询受理单关联钢卷中间列表
|
||||
*/
|
||||
@Override
|
||||
public List<TsAcceptCoilRelVo> queryList(TsAcceptCoilRelBo bo) {
|
||||
LambdaQueryWrapper<TsAcceptCoilRel> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<TsAcceptCoilRel> buildQueryWrapper(TsAcceptCoilRelBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<TsAcceptCoilRel> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getAcceptId() != null, TsAcceptCoilRel::getAcceptId, bo.getAcceptId());
|
||||
lqw.eq(bo.getCoilId() != null, TsAcceptCoilRel::getCoilId, bo.getCoilId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增受理单关联钢卷中间
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(TsAcceptCoilRelBo bo) {
|
||||
TsAcceptCoilRel add = BeanUtil.toBean(bo, TsAcceptCoilRel.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setRelId(add.getRelId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改受理单关联钢卷中间
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(TsAcceptCoilRelBo bo) {
|
||||
TsAcceptCoilRel update = BeanUtil.toBean(bo, TsAcceptCoilRel.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(TsAcceptCoilRel entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除受理单关联钢卷中间
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
package com.klp.flow.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.flow.domain.bo.TsComplaintAcceptBo;
|
||||
import com.klp.flow.domain.vo.TsComplaintAcceptVo;
|
||||
import com.klp.flow.domain.TsComplaintAccept;
|
||||
import com.klp.flow.mapper.TsComplaintAcceptMapper;
|
||||
import com.klp.flow.service.ITsComplaintAcceptService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 投诉受理单主Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class TsComplaintAcceptServiceImpl implements ITsComplaintAcceptService {
|
||||
|
||||
private final TsComplaintAcceptMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询投诉受理单主
|
||||
*/
|
||||
@Override
|
||||
public TsComplaintAcceptVo queryById(Long acceptId){
|
||||
return baseMapper.selectVoById(acceptId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询投诉受理单主列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<TsComplaintAcceptVo> queryPageList(TsComplaintAcceptBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<TsComplaintAccept> lqw = buildQueryWrapper(bo);
|
||||
Page<TsComplaintAcceptVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询投诉受理单主列表
|
||||
*/
|
||||
@Override
|
||||
public List<TsComplaintAcceptVo> queryList(TsComplaintAcceptBo bo) {
|
||||
LambdaQueryWrapper<TsComplaintAccept> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<TsComplaintAccept> buildQueryWrapper(TsComplaintAcceptBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<TsComplaintAccept> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getComplaintNo()), TsComplaintAccept::getComplaintNo, bo.getComplaintNo());
|
||||
lqw.eq(bo.getComplaintDate() != null, TsComplaintAccept::getComplaintDate, bo.getComplaintDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getComplaintContent()), TsComplaintAccept::getComplaintContent, bo.getComplaintContent());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCustomerDemand()), TsComplaintAccept::getCustomerDemand, bo.getCustomerDemand());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFile()), TsComplaintAccept::getFile, bo.getFile());
|
||||
lqw.eq(bo.getAuditStatus() != null, TsComplaintAccept::getAuditStatus, bo.getAuditStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditOpinion()), TsComplaintAccept::getAuditOpinion, bo.getAuditOpinion());
|
||||
lqw.eq(bo.getAuditUserId() != null, TsComplaintAccept::getAuditUserId, bo.getAuditUserId());
|
||||
lqw.eq(bo.getAuditTime() != null, TsComplaintAccept::getAuditTime, bo.getAuditTime());
|
||||
lqw.eq(bo.getFlowStatus() != null, TsComplaintAccept::getFlowStatus, bo.getFlowStatus());
|
||||
lqw.eq(bo.getPrincipalUserId() != null, TsComplaintAccept::getPrincipalUserId, bo.getPrincipalUserId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPlanContent()), TsComplaintAccept::getPlanContent, bo.getPlanContent());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增投诉受理单主
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(TsComplaintAcceptBo bo) {
|
||||
TsComplaintAccept add = BeanUtil.toBean(bo, TsComplaintAccept.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setAcceptId(add.getAcceptId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改投诉受理单主
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(TsComplaintAcceptBo bo) {
|
||||
TsComplaintAccept update = BeanUtil.toBean(bo, TsComplaintAccept.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(TsComplaintAccept entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除投诉受理单主
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.klp.flow.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.flow.domain.bo.TsComplaintTaskBo;
|
||||
import com.klp.flow.domain.vo.TsComplaintTaskVo;
|
||||
import com.klp.flow.domain.TsComplaintTask;
|
||||
import com.klp.flow.mapper.TsComplaintTaskMapper;
|
||||
import com.klp.flow.service.ITsComplaintTaskService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 各部门投诉代办任务&意见Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class TsComplaintTaskServiceImpl implements ITsComplaintTaskService {
|
||||
|
||||
private final TsComplaintTaskMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询各部门投诉代办任务&意见
|
||||
*/
|
||||
@Override
|
||||
public TsComplaintTaskVo queryById(Long taskId){
|
||||
return baseMapper.selectVoById(taskId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询各部门投诉代办任务&意见列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<TsComplaintTaskVo> queryPageList(TsComplaintTaskBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<TsComplaintTask> lqw = buildQueryWrapper(bo);
|
||||
Page<TsComplaintTaskVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询各部门投诉代办任务&意见列表
|
||||
*/
|
||||
@Override
|
||||
public List<TsComplaintTaskVo> queryList(TsComplaintTaskBo bo) {
|
||||
LambdaQueryWrapper<TsComplaintTask> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<TsComplaintTask> buildQueryWrapper(TsComplaintTaskBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<TsComplaintTask> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getAcceptId() != null, TsComplaintTask::getAcceptId, bo.getAcceptId());
|
||||
lqw.eq(bo.getDeptId() != null, TsComplaintTask::getDeptId, bo.getDeptId());
|
||||
lqw.eq(bo.getTaskStatus() != null, TsComplaintTask::getTaskStatus, bo.getTaskStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFillNo()), TsComplaintTask::getFillNo, bo.getFillNo());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDeptOpinion()), TsComplaintTask::getDeptOpinion, bo.getDeptOpinion());
|
||||
lqw.eq(bo.getFillUserId() != null, TsComplaintTask::getFillUserId, bo.getFillUserId());
|
||||
lqw.eq(bo.getFillTime() != null, TsComplaintTask::getFillTime, bo.getFillTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFillFile()), TsComplaintTask::getFillFile, bo.getFillFile());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增各部门投诉代办任务&意见
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(TsComplaintTaskBo bo) {
|
||||
TsComplaintTask add = BeanUtil.toBean(bo, TsComplaintTask.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setTaskId(add.getTaskId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改各部门投诉代办任务&意见
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(TsComplaintTaskBo bo) {
|
||||
TsComplaintTask update = BeanUtil.toBean(bo, TsComplaintTask.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(TsComplaintTask entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除各部门投诉代办任务&意见
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.klp.flow.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.flow.domain.bo.TsPlanExecuteRelBo;
|
||||
import com.klp.flow.domain.vo.TsPlanExecuteRelVo;
|
||||
import com.klp.flow.domain.TsPlanExecuteRel;
|
||||
import com.klp.flow.mapper.TsPlanExecuteRelMapper;
|
||||
import com.klp.flow.service.ITsPlanExecuteRelService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 最终方案下发部门及执行反馈Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-06-18
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class TsPlanExecuteRelServiceImpl implements ITsPlanExecuteRelService {
|
||||
|
||||
private final TsPlanExecuteRelMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询最终方案下发部门及执行反馈
|
||||
*/
|
||||
@Override
|
||||
public TsPlanExecuteRelVo queryById(Long relId){
|
||||
return baseMapper.selectVoById(relId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询最终方案下发部门及执行反馈列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<TsPlanExecuteRelVo> queryPageList(TsPlanExecuteRelBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<TsPlanExecuteRel> lqw = buildQueryWrapper(bo);
|
||||
Page<TsPlanExecuteRelVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询最终方案下发部门及执行反馈列表
|
||||
*/
|
||||
@Override
|
||||
public List<TsPlanExecuteRelVo> queryList(TsPlanExecuteRelBo bo) {
|
||||
LambdaQueryWrapper<TsPlanExecuteRel> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<TsPlanExecuteRel> buildQueryWrapper(TsPlanExecuteRelBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<TsPlanExecuteRel> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getAcceptId() != null, TsPlanExecuteRel::getAcceptId, bo.getAcceptId());
|
||||
lqw.eq(bo.getDeptId() != null, TsPlanExecuteRel::getDeptId, bo.getDeptId());
|
||||
lqw.eq(bo.getExecuteStatus() != null, TsPlanExecuteRel::getExecuteStatus, bo.getExecuteStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getExecuteResult()), TsPlanExecuteRel::getExecuteResult, bo.getExecuteResult());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFeedbackNo()), TsPlanExecuteRel::getFeedbackNo, bo.getFeedbackNo());
|
||||
lqw.eq(bo.getFeedbackUserId() != null, TsPlanExecuteRel::getFeedbackUserId, bo.getFeedbackUserId());
|
||||
lqw.eq(bo.getFeedbackTime() != null, TsPlanExecuteRel::getFeedbackTime, bo.getFeedbackTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFeedbackFile()), TsPlanExecuteRel::getFeedbackFile, bo.getFeedbackFile());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增最终方案下发部门及执行反馈
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(TsPlanExecuteRelBo bo) {
|
||||
TsPlanExecuteRel add = BeanUtil.toBean(bo, TsPlanExecuteRel.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setRelId(add.getRelId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改最终方案下发部门及执行反馈
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(TsPlanExecuteRelBo bo) {
|
||||
TsPlanExecuteRel update = BeanUtil.toBean(bo, TsPlanExecuteRel.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(TsPlanExecuteRel entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除最终方案下发部门及执行反馈
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.klp.flow.mapper.TsAcceptCoilRelMapper">
|
||||
|
||||
<resultMap type="com.klp.flow.domain.TsAcceptCoilRel" id="TsAcceptCoilRelResult">
|
||||
<result property="relId" column="rel_id"/>
|
||||
<result property="acceptId" column="accept_id"/>
|
||||
<result property="coilId" column="coil_id"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.klp.flow.mapper.TsComplaintAcceptMapper">
|
||||
|
||||
<resultMap type="com.klp.flow.domain.TsComplaintAccept" id="TsComplaintAcceptResult">
|
||||
<result property="acceptId" column="accept_id"/>
|
||||
<result property="complaintNo" column="complaint_no"/>
|
||||
<result property="complaintDate" column="complaint_date"/>
|
||||
<result property="complaintContent" column="complaint_content"/>
|
||||
<result property="customerDemand" column="customer_demand"/>
|
||||
<result property="file" column="file"/>
|
||||
<result property="auditStatus" column="audit_status"/>
|
||||
<result property="auditOpinion" column="audit_opinion"/>
|
||||
<result property="auditUserId" column="audit_user_id"/>
|
||||
<result property="auditTime" column="audit_time"/>
|
||||
<result property="flowStatus" column="flow_status"/>
|
||||
<result property="principalUserId" column="principal_user_id"/>
|
||||
<result property="planContent" column="plan_content"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.klp.flow.mapper.TsComplaintTaskMapper">
|
||||
|
||||
<resultMap type="com.klp.flow.domain.TsComplaintTask" id="TsComplaintTaskResult">
|
||||
<result property="taskId" column="task_id"/>
|
||||
<result property="acceptId" column="accept_id"/>
|
||||
<result property="deptId" column="dept_id"/>
|
||||
<result property="taskStatus" column="task_status"/>
|
||||
<result property="fillNo" column="fill_no"/>
|
||||
<result property="deptOpinion" column="dept_opinion"/>
|
||||
<result property="fillUserId" column="fill_user_id"/>
|
||||
<result property="fillTime" column="fill_time"/>
|
||||
<result property="fillFile" column="fill_file"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.klp.flow.mapper.TsPlanExecuteRelMapper">
|
||||
|
||||
<resultMap type="com.klp.flow.domain.TsPlanExecuteRel" id="TsPlanExecuteRelResult">
|
||||
<result property="relId" column="rel_id"/>
|
||||
<result property="acceptId" column="accept_id"/>
|
||||
<result property="deptId" column="dept_id"/>
|
||||
<result property="executeStatus" column="execute_status"/>
|
||||
<result property="executeResult" column="execute_result"/>
|
||||
<result property="feedbackNo" column="feedback_no"/>
|
||||
<result property="feedbackUserId" column="feedback_user_id"/>
|
||||
<result property="feedbackTime" column="feedback_time"/>
|
||||
<result property="feedbackFile" column="feedback_file"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.klp.mes.eqp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo;
|
||||
import com.klp.mes.eqp.domain.bo.EqpEquipmentInspectionApprovalBo;
|
||||
import com.klp.mes.eqp.service.IEqpEquipmentInspectionApprovalService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 设备巡检审批(按产线+时间范围审批)
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-05-29
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/eqp/equipmentInspectionApproval")
|
||||
public class EqpEquipmentInspectionApprovalController extends BaseController {
|
||||
|
||||
private final IEqpEquipmentInspectionApprovalService iEqpEquipmentInspectionApprovalService;
|
||||
|
||||
/**
|
||||
* 查询设备巡检审批(按产线+时间范围审批)列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<EqpEquipmentInspectionApprovalVo> list(EqpEquipmentInspectionApprovalBo bo, PageQuery pageQuery) {
|
||||
return iEqpEquipmentInspectionApprovalService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出设备巡检审批(按产线+时间范围审批)列表
|
||||
*/
|
||||
@Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(EqpEquipmentInspectionApprovalBo bo, HttpServletResponse response) {
|
||||
List<EqpEquipmentInspectionApprovalVo> list = iEqpEquipmentInspectionApprovalService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "设备巡检审批(按产线+时间范围审批)", EqpEquipmentInspectionApprovalVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备巡检审批(按产线+时间范围审批)详细信息
|
||||
*
|
||||
* @param approvalId 主键
|
||||
*/
|
||||
@GetMapping("/{approvalId}")
|
||||
public R<EqpEquipmentInspectionApprovalVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long approvalId) {
|
||||
return R.ok(iEqpEquipmentInspectionApprovalService.queryById(approvalId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设备巡检审批(按产线+时间范围审批)
|
||||
*/
|
||||
@Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody EqpEquipmentInspectionApprovalBo bo) {
|
||||
return toAjax(iEqpEquipmentInspectionApprovalService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设备巡检审批(按产线+时间范围审批)
|
||||
*/
|
||||
@Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody EqpEquipmentInspectionApprovalBo bo) {
|
||||
return toAjax(iEqpEquipmentInspectionApprovalService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除设备巡检审批(按产线+时间范围审批)
|
||||
*
|
||||
* @param approvalIds 主键串
|
||||
*/
|
||||
@Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{approvalIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] approvalIds) {
|
||||
return toAjax(iEqpEquipmentInspectionApprovalService.deleteWithValidByIds(Arrays.asList(approvalIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.klp.mes.eqp.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 设备巡检审批(按产线+时间范围审批)对象 eqp_equipment_inspection_approval
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-05-29
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("eqp_equipment_inspection_approval")
|
||||
public class EqpEquipmentInspectionApproval extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 审批ID 主键
|
||||
*/
|
||||
@TableId(value = "approval_id")
|
||||
private Long approvalId;
|
||||
/**
|
||||
* 产线ID(对应你刚改的bigint类型)
|
||||
*/
|
||||
private Long productionLine;
|
||||
/**
|
||||
* 巡检开始时间
|
||||
*/
|
||||
private Date insStartTime;
|
||||
/**
|
||||
* 巡检结束时间
|
||||
*/
|
||||
private Date insEndTime;
|
||||
/**
|
||||
* 申请人
|
||||
*/
|
||||
private String applyUser;
|
||||
/**
|
||||
* 申请时间
|
||||
*/
|
||||
private Date applyTime;
|
||||
/**
|
||||
* 审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销
|
||||
*/
|
||||
private Integer approvalStatus;
|
||||
/**
|
||||
* 审批人
|
||||
*/
|
||||
private String approvalUser;
|
||||
/**
|
||||
* 审批时间
|
||||
*/
|
||||
private Date approvalTime;
|
||||
/**
|
||||
* 审批意见
|
||||
*/
|
||||
private String approvalOpinion;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标识 0正常 2删除
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
}
|
||||
@@ -31,7 +31,7 @@ public class EqpEquipmentPart extends BaseEntity {
|
||||
/**
|
||||
* 产线
|
||||
*/
|
||||
private String productionLine;
|
||||
private Long productionLine;
|
||||
/**
|
||||
* 产线段
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.klp.mes.eqp.domain.bo;
|
||||
|
||||
import com.klp.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 设备巡检审批(按产线+时间范围审批)业务对象 eqp_equipment_inspection_approval
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-05-29
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EqpEquipmentInspectionApprovalBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 审批ID 主键
|
||||
*/
|
||||
private Long approvalId;
|
||||
|
||||
/**
|
||||
* 产线ID(对应你刚改的bigint类型)
|
||||
*/
|
||||
private Long productionLine;
|
||||
|
||||
/**
|
||||
* 巡检开始时间
|
||||
*/
|
||||
private Date insStartTime;
|
||||
|
||||
/**
|
||||
* 巡检结束时间
|
||||
*/
|
||||
private Date insEndTime;
|
||||
|
||||
/**
|
||||
* 申请人
|
||||
*/
|
||||
private String applyUser;
|
||||
|
||||
/**
|
||||
* 申请时间
|
||||
*/
|
||||
private Date applyTime;
|
||||
|
||||
/**
|
||||
* 审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销
|
||||
*/
|
||||
private Integer approvalStatus;
|
||||
|
||||
/**
|
||||
* 审批人
|
||||
*/
|
||||
private String approvalUser;
|
||||
|
||||
/**
|
||||
* 审批时间
|
||||
*/
|
||||
private Date approvalTime;
|
||||
|
||||
/**
|
||||
* 审批意见
|
||||
*/
|
||||
private String approvalOpinion;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -65,6 +65,11 @@ public class EqpEquipmentInspectionRecordBo extends BaseEntity {
|
||||
*/
|
||||
private String photo;
|
||||
|
||||
/**
|
||||
* 产线
|
||||
*/
|
||||
private Long productionLine;
|
||||
|
||||
/**
|
||||
* 巡检时间开始
|
||||
*/
|
||||
|
||||
@@ -31,7 +31,7 @@ public class EqpEquipmentPartBo extends BaseEntity {
|
||||
/**
|
||||
* 产线
|
||||
*/
|
||||
private String productionLine;
|
||||
private Long productionLine;
|
||||
|
||||
/**
|
||||
* 产线段
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.klp.mes.eqp.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
import com.klp.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 设备巡检审批(按产线+时间范围审批)视图对象 eqp_equipment_inspection_approval
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-05-29
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class EqpEquipmentInspectionApprovalVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 审批ID 主键
|
||||
*/
|
||||
@ExcelProperty(value = "审批ID 主键")
|
||||
private Long approvalId;
|
||||
|
||||
/**
|
||||
* 产线ID(对应你刚改的bigint类型)
|
||||
*/
|
||||
@ExcelProperty(value = "产线ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "对=应你刚改的bigint类型")
|
||||
private Long productionLine;
|
||||
|
||||
/**
|
||||
* 巡检开始时间
|
||||
*/
|
||||
@ExcelProperty(value = "巡检开始时间")
|
||||
private Date insStartTime;
|
||||
|
||||
/**
|
||||
* 巡检结束时间
|
||||
*/
|
||||
@ExcelProperty(value = "巡检结束时间")
|
||||
private Date insEndTime;
|
||||
|
||||
/**
|
||||
* 申请人
|
||||
*/
|
||||
@ExcelProperty(value = "申请人")
|
||||
private String applyUser;
|
||||
|
||||
/**
|
||||
* 申请时间
|
||||
*/
|
||||
@ExcelProperty(value = "申请时间")
|
||||
private Date applyTime;
|
||||
|
||||
/**
|
||||
* 审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销
|
||||
*/
|
||||
@ExcelProperty(value = "审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销")
|
||||
private Integer approvalStatus;
|
||||
|
||||
/**
|
||||
* 审批人
|
||||
*/
|
||||
@ExcelProperty(value = "审批人")
|
||||
private String approvalUser;
|
||||
|
||||
/**
|
||||
* 审批时间
|
||||
*/
|
||||
@ExcelProperty(value = "审批时间")
|
||||
private Date approvalTime;
|
||||
|
||||
/**
|
||||
* 审批意见
|
||||
*/
|
||||
@ExcelProperty(value = "审批意见")
|
||||
private String approvalOpinion;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -84,5 +84,15 @@ public class EqpEquipmentInspectionRecordVo {
|
||||
*/
|
||||
private String checkStandard;
|
||||
|
||||
/**
|
||||
* 巡检部位
|
||||
*/
|
||||
private String inspectPart;
|
||||
|
||||
/**
|
||||
* 产线
|
||||
*/
|
||||
private String productionLine;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ public class EqpEquipmentPartVo {
|
||||
* 产线
|
||||
*/
|
||||
@ExcelProperty(value = "产线")
|
||||
private String productionLine;
|
||||
private Long productionLine;
|
||||
|
||||
/**
|
||||
* 产线段
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mes.eqp.mapper;
|
||||
|
||||
import com.klp.mes.eqp.domain.EqpEquipmentInspectionApproval;
|
||||
import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 设备巡检审批(按产线+时间范围审批)Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-05-29
|
||||
*/
|
||||
public interface EqpEquipmentInspectionApprovalMapper extends BaseMapperPlus<EqpEquipmentInspectionApprovalMapper, EqpEquipmentInspectionApproval, EqpEquipmentInspectionApprovalVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.mes.eqp.service;
|
||||
|
||||
import com.klp.mes.eqp.domain.EqpEquipmentInspectionApproval;
|
||||
import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo;
|
||||
import com.klp.mes.eqp.domain.bo.EqpEquipmentInspectionApprovalBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 设备巡检审批(按产线+时间范围审批)Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-05-29
|
||||
*/
|
||||
public interface IEqpEquipmentInspectionApprovalService {
|
||||
|
||||
/**
|
||||
* 查询设备巡检审批(按产线+时间范围审批)
|
||||
*/
|
||||
EqpEquipmentInspectionApprovalVo queryById(Long approvalId);
|
||||
|
||||
/**
|
||||
* 查询设备巡检审批(按产线+时间范围审批)列表
|
||||
*/
|
||||
TableDataInfo<EqpEquipmentInspectionApprovalVo> queryPageList(EqpEquipmentInspectionApprovalBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询设备巡检审批(按产线+时间范围审批)列表
|
||||
*/
|
||||
List<EqpEquipmentInspectionApprovalVo> queryList(EqpEquipmentInspectionApprovalBo bo);
|
||||
|
||||
/**
|
||||
* 新增设备巡检审批(按产线+时间范围审批)
|
||||
*/
|
||||
Boolean insertByBo(EqpEquipmentInspectionApprovalBo bo);
|
||||
|
||||
/**
|
||||
* 修改设备巡检审批(按产线+时间范围审批)
|
||||
*/
|
||||
Boolean updateByBo(EqpEquipmentInspectionApprovalBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除设备巡检审批(按产线+时间范围审批)信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
package com.klp.mes.eqp.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.klp.common.helper.LoginHelper;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.mes.eqp.domain.bo.EqpEquipmentInspectionApprovalBo;
|
||||
import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo;
|
||||
import com.klp.mes.eqp.domain.EqpEquipmentInspectionApproval;
|
||||
import com.klp.mes.eqp.mapper.EqpEquipmentInspectionApprovalMapper;
|
||||
import com.klp.mes.eqp.service.IEqpEquipmentInspectionApprovalService;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 设备巡检审批(按产线+时间范围审批)Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-05-29
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class EqpEquipmentInspectionApprovalServiceImpl implements IEqpEquipmentInspectionApprovalService {
|
||||
|
||||
private final EqpEquipmentInspectionApprovalMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询设备巡检审批(按产线+时间范围审批)
|
||||
*/
|
||||
@Override
|
||||
public EqpEquipmentInspectionApprovalVo queryById(Long approvalId){
|
||||
return baseMapper.selectVoById(approvalId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设备巡检审批(按产线+时间范围审批)列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<EqpEquipmentInspectionApprovalVo> queryPageList(EqpEquipmentInspectionApprovalBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<EqpEquipmentInspectionApproval> lqw = buildQueryWrapper(bo);
|
||||
Page<EqpEquipmentInspectionApprovalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设备巡检审批(按产线+时间范围审批)列表
|
||||
*/
|
||||
@Override
|
||||
public List<EqpEquipmentInspectionApprovalVo> queryList(EqpEquipmentInspectionApprovalBo bo) {
|
||||
LambdaQueryWrapper<EqpEquipmentInspectionApproval> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<EqpEquipmentInspectionApproval> buildQueryWrapper(EqpEquipmentInspectionApprovalBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<EqpEquipmentInspectionApproval> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getProductionLine() != null, EqpEquipmentInspectionApproval::getProductionLine, bo.getProductionLine());
|
||||
lqw.eq(bo.getInsStartTime() != null, EqpEquipmentInspectionApproval::getInsStartTime, bo.getInsStartTime());
|
||||
lqw.eq(bo.getInsEndTime() != null, EqpEquipmentInspectionApproval::getInsEndTime, bo.getInsEndTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApplyUser()), EqpEquipmentInspectionApproval::getApplyUser, bo.getApplyUser());
|
||||
lqw.eq(bo.getApplyTime() != null, EqpEquipmentInspectionApproval::getApplyTime, bo.getApplyTime());
|
||||
lqw.eq(bo.getApprovalStatus() != null, EqpEquipmentInspectionApproval::getApprovalStatus, bo.getApprovalStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApprovalUser()), EqpEquipmentInspectionApproval::getApprovalUser, bo.getApprovalUser());
|
||||
lqw.eq(bo.getApprovalTime() != null, EqpEquipmentInspectionApproval::getApprovalTime, bo.getApprovalTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApprovalOpinion()), EqpEquipmentInspectionApproval::getApprovalOpinion, bo.getApprovalOpinion());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设备巡检审批(按产线+时间范围审批)
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(EqpEquipmentInspectionApprovalBo bo) {
|
||||
EqpEquipmentInspectionApproval add = BeanUtil.toBean(bo, EqpEquipmentInspectionApproval.class);
|
||||
add.setApplyUser(LoginHelper.getNickName());
|
||||
add.setApplyTime(new Date());
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setApprovalId(add.getApprovalId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设备巡检审批(按产线+时间范围审批)
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(EqpEquipmentInspectionApprovalBo bo) {
|
||||
EqpEquipmentInspectionApproval update = BeanUtil.toBean(bo, EqpEquipmentInspectionApproval.class);
|
||||
if (bo.getApprovalStatus() != null && (bo.getApprovalStatus() == 2 || bo.getApprovalStatus() == 3)) {
|
||||
update.setApprovalUser(LoginHelper.getNickName());
|
||||
update.setApprovalTime(new Date());
|
||||
}
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(EqpEquipmentInspectionApproval entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除设备巡检审批(按产线+时间范围审批)
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -58,6 +58,7 @@ public class EqpEquipmentInspectionRecordServiceImpl implements IEqpEquipmentIns
|
||||
qw.eq(bo.getRunStatus() != null, "r.run_status", bo.getRunStatus());
|
||||
qw.eq(StringUtils.isNotBlank(bo.getInspector()), "r.inspector", bo.getInspector());
|
||||
qw.eq(StringUtils.isNotBlank(bo.getAbnormalDesc()), "r.abnormal_desc", bo.getAbnormalDesc());
|
||||
qw.eq(bo.getProductionLine() != null, "p.production_line", bo.getProductionLine());
|
||||
qw.ge(bo.getStartInspectTime() != null, "r.inspect_time", bo.getStartInspectTime());
|
||||
qw.le(bo.getEndInspectTime() != null, "r.inspect_time", bo.getEndInspectTime());
|
||||
qw.eq("r.del_flag", 0);
|
||||
|
||||
@@ -82,7 +82,7 @@ public class EqpEquipmentPartServiceImpl implements IEqpEquipmentPartService {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<EqpEquipmentPart> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspectPart()), EqpEquipmentPart::getInspectPart, bo.getInspectPart());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProductionLine()), EqpEquipmentPart::getProductionLine, bo.getProductionLine());
|
||||
lqw.eq(bo.getProductionLine() != null, EqpEquipmentPart::getProductionLine, bo.getProductionLine());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getLineSection()), EqpEquipmentPart::getLineSection, bo.getLineSection());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getResponsiblePerson()), EqpEquipmentPart::getResponsiblePerson, bo.getResponsiblePerson());
|
||||
return lqw;
|
||||
|
||||
@@ -70,6 +70,10 @@ public class QcCertificate extends BaseEntity {
|
||||
* 质保证明说明(注释)
|
||||
*/
|
||||
private String note;
|
||||
/**
|
||||
* 证书类型(如:出厂合格证、检测报告、质保书等)
|
||||
*/
|
||||
private String certificateType;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
||||
@@ -37,6 +37,10 @@ public class QcCertificateItem extends BaseEntity {
|
||||
* 钢卷号
|
||||
*/
|
||||
private String coilNo;
|
||||
/**
|
||||
* 原料卷号
|
||||
*/
|
||||
private String rawCoilNo;
|
||||
/**
|
||||
* 炉号
|
||||
*/
|
||||
@@ -81,10 +85,46 @@ public class QcCertificateItem extends BaseEntity {
|
||||
* Als
|
||||
*/
|
||||
private BigDecimal als;
|
||||
/**
|
||||
* 铝(%)
|
||||
*/
|
||||
private BigDecimal al;
|
||||
/**
|
||||
* 钛(%)
|
||||
*/
|
||||
private BigDecimal ti;
|
||||
/**
|
||||
* 铬(%)
|
||||
*/
|
||||
private BigDecimal cr;
|
||||
/**
|
||||
* 镍(%)
|
||||
*/
|
||||
private BigDecimal ni;
|
||||
/**
|
||||
* 铜(%)
|
||||
*/
|
||||
private BigDecimal cu;
|
||||
/**
|
||||
* 氮(%)
|
||||
*/
|
||||
private BigDecimal n;
|
||||
/**
|
||||
* 铁(%)
|
||||
*/
|
||||
private BigDecimal fe;
|
||||
/**
|
||||
* 硼(%)
|
||||
*/
|
||||
private BigDecimal b;
|
||||
/**
|
||||
* 拉伸试验-屈服强度(MPa)
|
||||
*/
|
||||
private BigDecimal yieldStrength;
|
||||
/**
|
||||
* 规定塑性延伸强度(MPa)
|
||||
*/
|
||||
private BigDecimal plasticExtensionStrength;
|
||||
/**
|
||||
* 拉伸试验-抗拉强度(MPa)
|
||||
*/
|
||||
@@ -109,6 +149,18 @@ public class QcCertificateItem extends BaseEntity {
|
||||
* 表面结构
|
||||
*/
|
||||
private String surfaceStructure;
|
||||
/**
|
||||
* 表面处理
|
||||
*/
|
||||
private String surfaceTreatment;
|
||||
/**
|
||||
* 镀层表面结构
|
||||
*/
|
||||
private String coatingSurfaceStructure;
|
||||
/**
|
||||
* 镀层重量 COATING MASS(g/m²)
|
||||
*/
|
||||
private BigDecimal coatingMass;
|
||||
/**
|
||||
* 边缘状态
|
||||
*/
|
||||
@@ -117,6 +169,10 @@ public class QcCertificateItem extends BaseEntity {
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 调质度
|
||||
*/
|
||||
private String temperDegree;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
|
||||
@@ -65,6 +65,38 @@ public class QcChemicalItem extends BaseEntity {
|
||||
* 酸溶铝(%)
|
||||
*/
|
||||
private BigDecimal als;
|
||||
/**
|
||||
* 铝(%)
|
||||
*/
|
||||
private BigDecimal al;
|
||||
/**
|
||||
* 钛(%)
|
||||
*/
|
||||
private BigDecimal ti;
|
||||
/**
|
||||
* 铬(%)
|
||||
*/
|
||||
private BigDecimal cr;
|
||||
/**
|
||||
* 镍(%)
|
||||
*/
|
||||
private BigDecimal ni;
|
||||
/**
|
||||
* 铜(%)
|
||||
*/
|
||||
private BigDecimal cu;
|
||||
/**
|
||||
* 氮(%)
|
||||
*/
|
||||
private BigDecimal n;
|
||||
/**
|
||||
* 铁(%)
|
||||
*/
|
||||
private BigDecimal fe;
|
||||
/**
|
||||
* 硼(%)
|
||||
*/
|
||||
private BigDecimal b;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
||||
@@ -94,6 +94,10 @@ public class QcInspectionTask extends BaseEntity {
|
||||
* 附件路径(多个用英文逗号分隔)
|
||||
*/
|
||||
private String attachmentFiles;
|
||||
/**
|
||||
* 厂家卷号集合,多个使用英文逗号分隔
|
||||
*/
|
||||
private String supplierCoilNos;
|
||||
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
|
||||
@@ -41,6 +41,10 @@ public class QcPhysicalItem extends BaseEntity {
|
||||
* 拉伸试验-屈服强度(MPa)
|
||||
*/
|
||||
private BigDecimal yieldStrength;
|
||||
/**
|
||||
* 规定塑性延伸强度(MPa)
|
||||
*/
|
||||
private BigDecimal plasticExtensionStrength;
|
||||
/**
|
||||
* 拉伸试验-抗拉强度(MPa)
|
||||
*/
|
||||
@@ -65,6 +69,14 @@ public class QcPhysicalItem extends BaseEntity {
|
||||
* 表面结构
|
||||
*/
|
||||
private String surfaceStructure;
|
||||
/**
|
||||
* 镀层表面结构
|
||||
*/
|
||||
private String coatingSurfaceStructure;
|
||||
/**
|
||||
* 镀层重量 COATING MASS(g/m²)
|
||||
*/
|
||||
private BigDecimal coatingMass;
|
||||
/**
|
||||
* 边缘状态
|
||||
*/
|
||||
|
||||
@@ -82,6 +82,11 @@ public class QcCertificateBo extends BaseEntity {
|
||||
*/
|
||||
private String note;
|
||||
|
||||
/**
|
||||
* 证书类型(如:出厂合格证、检测报告、质保书等)
|
||||
*/
|
||||
private String certificateType;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
||||
@@ -38,6 +38,11 @@ public class QcCertificateItemBo extends BaseEntity {
|
||||
*/
|
||||
private String coilNo;
|
||||
|
||||
/**
|
||||
* 原料卷号
|
||||
*/
|
||||
private String rawCoilNo;
|
||||
|
||||
/**
|
||||
* 炉号
|
||||
*/
|
||||
@@ -93,11 +98,56 @@ public class QcCertificateItemBo extends BaseEntity {
|
||||
*/
|
||||
private BigDecimal als;
|
||||
|
||||
/**
|
||||
* 铝(%)
|
||||
*/
|
||||
private BigDecimal al;
|
||||
|
||||
/**
|
||||
* 钛(%)
|
||||
*/
|
||||
private BigDecimal ti;
|
||||
|
||||
/**
|
||||
* 铬(%)
|
||||
*/
|
||||
private BigDecimal cr;
|
||||
|
||||
/**
|
||||
* 镍(%)
|
||||
*/
|
||||
private BigDecimal ni;
|
||||
|
||||
/**
|
||||
* 铜(%)
|
||||
*/
|
||||
private BigDecimal cu;
|
||||
|
||||
/**
|
||||
* 氮(%)
|
||||
*/
|
||||
private BigDecimal n;
|
||||
|
||||
/**
|
||||
* 铁(%)
|
||||
*/
|
||||
private BigDecimal fe;
|
||||
|
||||
/**
|
||||
* 硼(%)
|
||||
*/
|
||||
private BigDecimal b;
|
||||
|
||||
/**
|
||||
* 拉伸试验-屈服强度(MPa)
|
||||
*/
|
||||
private BigDecimal yieldStrength;
|
||||
|
||||
/**
|
||||
* 规定塑性延伸强度(MPa)
|
||||
*/
|
||||
private BigDecimal plasticExtensionStrength;
|
||||
|
||||
/**
|
||||
* 拉伸试验-抗拉强度(MPa)
|
||||
*/
|
||||
@@ -128,6 +178,21 @@ public class QcCertificateItemBo extends BaseEntity {
|
||||
*/
|
||||
private String surfaceStructure;
|
||||
|
||||
/**
|
||||
* 表面处理
|
||||
*/
|
||||
private String surfaceTreatment;
|
||||
|
||||
/**
|
||||
* 镀层表面结构
|
||||
*/
|
||||
private String coatingSurfaceStructure;
|
||||
|
||||
/**
|
||||
* 镀层重量 COATING MASS(g/m²)
|
||||
*/
|
||||
private BigDecimal coatingMass;
|
||||
|
||||
/**
|
||||
* 边缘状态
|
||||
*/
|
||||
@@ -138,5 +203,10 @@ public class QcCertificateItemBo extends BaseEntity {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 调质度
|
||||
*/
|
||||
private String temperDegree;
|
||||
|
||||
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user