v1.0.9 #16
@@ -100,7 +100,7 @@ public class GaoCustomerController {
|
||||
@RequireGaoPermission(GaoPermissionCode.CUSTOMER_UPDATE)
|
||||
@PostMapping("/update")
|
||||
public void update(@RequestBody GaoCustomer customer) {
|
||||
service.update(customer);
|
||||
service.updateWithAttachment(customer);
|
||||
}
|
||||
|
||||
@AOPLog
|
||||
|
||||
@@ -93,11 +93,24 @@ public class GaoEventRecordController {
|
||||
@AOPLog
|
||||
@RequestRateLimit
|
||||
@PostMapping("/create")
|
||||
@JsonView(ResponseView.Public.class)
|
||||
public void create(@RequestBody GaoEventRecord record) {
|
||||
service.create(record);
|
||||
}
|
||||
|
||||
@AOPLog
|
||||
@RequestRateLimit
|
||||
@PostMapping("/create/batch")
|
||||
public void createBatch(@RequestBody List<GaoEventRecord> recordList) {
|
||||
service.createBatch(recordList);
|
||||
}
|
||||
|
||||
@AOPLog
|
||||
@RequestRateLimit
|
||||
@PostMapping("/create/customer")
|
||||
public void createWithCustomer(@RequestBody GaoCustomer customer) {
|
||||
service.createWithCustomer(customer);
|
||||
}
|
||||
|
||||
@AOPLog
|
||||
@RequestRateLimit
|
||||
@RequireGaoPermission(GaoPermissionCode.EVENT_RECORD_UPDATE)
|
||||
|
||||
@@ -99,6 +99,9 @@ public class GaoCustomer extends UUIDEntity {
|
||||
@Transient
|
||||
private GaoEventRecord eventRecord;
|
||||
|
||||
@Transient
|
||||
private List<GaoEventRecord> eventRecordList;
|
||||
|
||||
public boolean hasIntroducer() {
|
||||
return TimiJava.isNotEmpty(introducerCustomerId);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ import java.util.stream.Collectors;
|
||||
/// @since 2026-07-27 14:12
|
||||
public interface GaoCustomerService extends BaseService<GaoCustomer, String> {
|
||||
|
||||
void updateWithAttachment(GaoCustomer customer);
|
||||
|
||||
/// 按编码查询客户
|
||||
///
|
||||
/// @param code 客户编码
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
package com.imyeyu.api.modules.gao.service;
|
||||
|
||||
import com.imyeyu.api.modules.gao.entity.GaoCustomer;
|
||||
import com.imyeyu.api.modules.gao.entity.GaoEventRecord;
|
||||
import com.imyeyu.api.modules.gao.vo.GaoCustomerEventRankView;
|
||||
import com.imyeyu.api.modules.gao.vo.GaoEventRecordPage;
|
||||
import com.imyeyu.api.modules.gao.vo.GaoEventRecordRankPage;
|
||||
import com.imyeyu.java.TimiJava;
|
||||
import com.imyeyu.spring.bean.PageResult;
|
||||
import com.imyeyu.spring.service.BaseService;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
/// 登记事件记录服务
|
||||
///
|
||||
@@ -15,6 +18,14 @@ import java.io.IOException;
|
||||
/// @since 2026-07-27 14:09
|
||||
public interface GaoEventRecordService extends BaseService<GaoEventRecord, String> {
|
||||
|
||||
default void createBatch(List<GaoEventRecord> recordList) {
|
||||
for (GaoEventRecord record : TimiJava.safeIterable(recordList)) {
|
||||
create(record);
|
||||
}
|
||||
}
|
||||
|
||||
void createWithCustomer(GaoCustomer customer);
|
||||
|
||||
/// 按任意时间范围查询登记事件记录
|
||||
///
|
||||
/// @param req 范围查询请求
|
||||
|
||||
+7
-3
@@ -146,10 +146,8 @@ public class GaoCustomerServiceImplement extends AbstractEntityService<GaoCustom
|
||||
dbCustomer.setRemark(customer.getRemark());
|
||||
dbCustomer.setDisease(customer.getDisease());
|
||||
dbCustomer.setConditioningPart(customer.getConditioningPart());
|
||||
|
||||
mapper.update(dbCustomer);
|
||||
// 附件
|
||||
attachmentService.updateByBizId(Attachment.BizType.GAO_CUSTOMER, customer.getId(), customer.getAttachmentList());
|
||||
|
||||
logger.setLevel(Logger.Level.INFO);
|
||||
logger.setResult(customer.getId());
|
||||
} catch (TimiException e) {
|
||||
@@ -191,6 +189,12 @@ public class GaoCustomerServiceImplement extends AbstractEntityService<GaoCustom
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateWithAttachment(GaoCustomer customer) {
|
||||
update(customer);
|
||||
attachmentService.updateByBizId(Attachment.BizType.GAO_CUSTOMER, customer.getId(), customer.getAttachmentList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public GaoCustomer getByCode(String code) {
|
||||
TimiException.required(code, "not found code");
|
||||
|
||||
+29
-5
@@ -5,6 +5,7 @@ import com.imyeyu.api.bean.ModuleCode;
|
||||
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
|
||||
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||
import com.imyeyu.api.modules.common.service.AttachmentService;
|
||||
import com.imyeyu.api.modules.gao.entity.GaoCustomer;
|
||||
import com.imyeyu.api.modules.gao.entity.GaoEvent;
|
||||
import com.imyeyu.api.modules.gao.entity.GaoEventRecord;
|
||||
import com.imyeyu.api.modules.gao.mapper.GaoEventRecordMapper;
|
||||
@@ -82,11 +83,6 @@ public class GaoEventRecordServiceImplement extends AbstractEntityService<GaoEve
|
||||
checkEventPermission(event);
|
||||
|
||||
List<String> customerIdList = TimiJava.defaultIfEmpty(record.getCustomerIdList(), List.of(record.getCustomerId()));
|
||||
if (TimiJava.isNotEmpty(record.getCustomer())) {
|
||||
// 客户未创建,补录客户后登记
|
||||
customerService.create(record.getCustomer());
|
||||
customerIdList.add(record.getCustomer().getId());
|
||||
}
|
||||
TimiException.required(customerIdList, "not found customerId or empty customerIdList");
|
||||
|
||||
GaoEventRecord firstRecord = null;
|
||||
@@ -171,6 +167,34 @@ public class GaoEventRecordServiceImplement extends AbstractEntityService<GaoEve
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(TimiServerDBConfig.ROLLBACKER)
|
||||
@Override
|
||||
public void createWithCustomer(GaoCustomer customer) {
|
||||
TimiException.required(customer, "not found customer");
|
||||
if (TimiJava.isNotEmpty(customer.getId())) {
|
||||
// 有 ID 表示给已有客户绑定新编码;编码不能被其他客户占用
|
||||
GaoCustomer dbCustomer = customerService.get(customer.getId());
|
||||
TimiException.required(dbCustomer, "not found customer");
|
||||
if (TimiJava.isNotEmpty(customer.getCode())) {
|
||||
GaoCustomer byCode = customerService.getByCode(customer.getCode());
|
||||
TimiException.requiredTrue(byCode == null || dbCustomer.getId().equals(byCode.getId()), "该编码客户已登记");
|
||||
dbCustomer.setCode(customer.getCode());
|
||||
customerService.update(dbCustomer);
|
||||
}
|
||||
customer.setId(dbCustomer.getId());
|
||||
} else {
|
||||
// 无 ID 表示新开客户档案;创建客户只强制姓名唯一,其余字段按请求透传
|
||||
customerService.create(customer);
|
||||
}
|
||||
if (TimiJava.isEmpty(customer.getEventRecordList())) {
|
||||
return;
|
||||
}
|
||||
for (GaoEventRecord record : TimiJava.safeIterable(customer.getEventRecordList())) {
|
||||
record.setCustomerId(customer.getId());
|
||||
}
|
||||
createBatch(customer.getEventRecordList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<GaoEventRecord> pageByRange(GaoEventRecordPage page) {
|
||||
PageResult<GaoEventRecord> result = new PageResult<>();
|
||||
|
||||
Reference in New Issue
Block a user