From 97304f6bb74875063755e53721d44b2f2a587cc5 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 15 三月 2025 17:32:41 +0800
Subject: [PATCH] #修改 1. mybatis Map驼峰不转换问题修复 2. 字段修改导致接口显示问题修复
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java | 13 ++
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java | 30 ++--
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/AsnOrderAndItemsParams.java | 28 ++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java | 3
rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml | 36 ++++++
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 16 +-
/dev/null | 12 --
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java | 1
rsf-server/src/main/java/com/vincent/rsf/server/system/utils/ExtendFieldsUtils.java | 95 +++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java | 42 +++---
rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java | 25 ++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java | 32 +++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemService.java | 10 +
rsf-server/src/main/resources/application.yml | 1
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/dto/ReceiptDetlsDto.java | 2
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/AsnOrderItemMapper.java | 12 ++
16 files changed, 301 insertions(+), 57 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/dto/ReceiptDetlsDto.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/dto/ReceiptDetlsDto.java
index a5b525b..426cf07 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/dto/ReceiptDetlsDto.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/dto/ReceiptDetlsDto.java
@@ -35,7 +35,7 @@
private String poCode;
@ApiModelProperty("鐗╂枡鍚嶇О")
- private String matnk;
+ private String maktx;
@ApiModelProperty("渚涘簲鍟嗘壒娆�")
private String splrBatch;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
index 798c9d7..527cf7b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -204,7 +204,6 @@
.setShiperId(matnr.getShipperId())
.setValue(extendFields.get(key).toString())
.setUuid(uuid16);
-
fieldsItems.add(fieldsItem);
//鍞竴鏍囪瘑鍏ュ簱
item.setFieldsIndex(uuid16);
@@ -294,7 +293,7 @@
ReceiptDetlsDto detlsDto = new ReceiptDetlsDto();
detlsDto.setAsnCode(asnOrderItem.getAsnCode())
- .setMatnk(asnOrderItem.getMaktx())
+ .setMaktx(asnOrderItem.getMaktx())
.setBarcode(asnOrderItem.getBarcode())
.setPoCode(asnOrderItem.getPoCode())
.setPurQty(asnOrderItem.getAnfme())
@@ -325,14 +324,17 @@
detlsDto.setStockQty(stockItem.getQty() + stockItem.getWorkQty());
}
- //鑾峰彇閲囪喘鍗曟槑缁嗕俊鎭�
- PurchaseItem purchaseItem = purchaseItemMapper.selectOne(new LambdaQueryWrapper<PurchaseItem>().eq(PurchaseItem::getId, asnOrderItem.getPoDetlId()));
- //SET 骞冲彴琛屽彿
- detlsDto.setPlatformId(purchaseItem.getPlatItemId());
+ if (!Objects.isNull(asnOrderItem.getPoDetlId())) {
+ //鑾峰彇閲囪喘鍗曟槑缁嗕俊鎭�
+ PurchaseItem purchaseItem = purchaseItemMapper.selectOne(new LambdaQueryWrapper<PurchaseItem>().eq(PurchaseItem::getId, asnOrderItem.getPoDetlId()));
+ if (Objects.isNull(purchaseItem)) {
+ //SET 骞冲彴琛屽彿
+ detlsDto.setPlatformId(purchaseItem.getPlatItemId());
+ }
+ }
detlsDtos.add(detlsDto);
});
-
return R.ok(detlsDtos);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
index d955fd9..3f58834 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
@@ -1,5 +1,8 @@
package com.vincent.rsf.server.common.config;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
+import com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
@@ -12,6 +15,7 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
import java.util.Arrays;
@@ -22,6 +26,7 @@
* @since 2018-02-22 11:29:28
*/
@Configuration
+@EnableTransactionManagement
public class MybatisPlusConfig {
@Bean
@@ -78,4 +83,24 @@
return new LongValue(1);
}
+
+ /**
+ * 瑙e喅Map鏄犲皠闈為┘宄�
+ * @return
+ */
+ @Bean
+ public ConfigurationCustomizer mybatisConfigurationCustomizer(){
+ return new ConfigurationCustomizer() {
+ /**
+ * Customize the given a {@link MybatisConfiguration} object.
+ *
+ * @param configuration the configuration object to customize
+ */
+ @Override
+ public void customize(MybatisConfiguration configuration) {
+ configuration.setObjectWrapperFactory(new MybatisMapWrapperFactory());
+ }
+ };
+ }
+
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
index 8453c56..0f8d3ec 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
@@ -10,6 +10,7 @@
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
+import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import com.vincent.rsf.server.manager.service.AsnOrderService;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
@@ -54,6 +55,7 @@
}
@PreAuthorize("hasAuthority('manager:asnOrder:list')")
+ @OperationLog("琛ㄥ崟鏌ヨ")
@GetMapping("/asnOrder/{id}")
public R get(@PathVariable("id") Long id) {
return R.ok().add(asnOrderService.getById(id));
@@ -159,4 +161,15 @@
}
return asnOrderService.generateBarcode(orders);
}
+
+
+ @PostMapping("/asnOrder/items/save")
+ @ApiOperation("淇濆瓨涓诲崟鍙婃槑缁�")
+ @PreAuthorize("hasAuthority('manager:asnOrder:save')")
+ public R orderAndItem(@RequestBody AsnOrderAndItemsParams params) {
+ if (Objects.isNull(params)) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ return asnOrderService.saveOrderAndItems(params);
+ }
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java
index dff2932..d192832 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java
@@ -1,28 +1,20 @@
package com.vincent.rsf.server.manager.controller;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
+
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
-import com.vincent.rsf.server.common.utils.CommonUtil;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
-import com.vincent.rsf.server.manager.controller.params.AsnOrderItemParams;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
import com.vincent.rsf.server.manager.service.AsnOrderItemService;
import com.vincent.rsf.server.system.controller.BaseController;
-import com.vincent.rsf.server.system.entity.Fields;
-import com.vincent.rsf.server.system.entity.FieldsItem;
-import com.vincent.rsf.server.system.service.FieldsItemService;
-import com.vincent.rsf.server.system.service.FieldsService;
-import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,10 +22,8 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
-import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
-import java.util.stream.Collectors;
@Api(tags = "ASN鍗曟槑缁�")
@RestController
@@ -43,11 +33,12 @@
private AsnOrderItemService asnOrderItemService;
@PreAuthorize("hasAuthority('manager:asnOrderItem:list')")
+ @ApiOperation("鍒嗛〉鑾峰彇鍒楄〃")
@PostMapping("/asnOrderItem/page")
public R page(@RequestBody Map<String, Object> map) {
BaseParam baseParam = buildParam(map, BaseParam.class);
PageParam<AsnOrderItem, BaseParam> pageParam = new PageParam<>(baseParam, AsnOrderItem.class);
- return R.ok().add(asnOrderItemService.page(pageParam, pageParam.buildWrapper(true)));
+ return R.ok().add(asnOrderItemService.listByAsnId(pageParam, pageParam.buildWrapper(true)));
}
@PreAuthorize("hasAuthority('manager:asnOrderItem:list')")
@@ -84,6 +75,19 @@
return R.ok("Save Success");
}
+
+ @PreAuthorize("hasAuthority('manager:asnOrderItem:list')")
+ @ApiOperation("鑾峰彇ASN鍗曟槑缁嗕俊鎭�")
+ @PostMapping("/asnOrderItem/all/list")
+ public R listByAsnId(@RequestBody Map<String, Object> map) {
+ if (Objects.isNull(map)) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ return R.ok();
+// return asnOrderItemService.listByAsnId(map);
+ }
+
+
@PreAuthorize("hasAuthority('manager:asnOrderItem:update')")
@OperationLog("Update ASN鍗曟嵁")
@@ -123,7 +127,7 @@
@PreAuthorize("hasAuthority('manager:asnOrderItem:list')")
@PostMapping("/asnOrderItem/export")
- @ApiOperation("鏀惰揣閫氱煡鍗曟槑缁�")
+ @ApiOperation("瀵煎嚭鏀惰揣閫氱煡鍗曟槑缁�")
public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
AsnOrderTemplate template = ExcelUtil.mockData(AsnOrderTemplate.class);
List<AsnOrderTemplate> list = new ArrayList<>();
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java
index 112b6f7..f32b867 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java
@@ -109,4 +109,5 @@
ExcelUtil.build(ExcelUtil.create(qlyInspectService.list(), QlyInspect.class), response);
}
+
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/AsnOrderAndItemsParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/AsnOrderAndItemsParams.java
new file mode 100644
index 0000000..411eade
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/AsnOrderAndItemsParams.java
@@ -0,0 +1,28 @@
+package com.vincent.rsf.server.manager.controller.params;
+
+import com.vincent.rsf.server.manager.entity.AsnOrder;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Ryan
+ * @version 1.0
+ * @title AsnOrderAndItemsParams
+ * @description
+ * @create 2025/3/15 08:52
+ */
+@Data
+@ApiModel(value = "AsnOrderAndItemsParams", description = "涓诲崟鏄庣粏")
+public class AsnOrderAndItemsParams implements Serializable {
+
+ @ApiModelProperty("涓诲崟淇℃伅")
+ private AsnOrder orders;
+
+ @ApiModelProperty("鏄庣粏")
+ private List<Map<String, Object>> items;
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/AsnOrderItemMapper.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/AsnOrderItemMapper.java
index 48b4de4..25d621b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/AsnOrderItemMapper.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/AsnOrderItemMapper.java
@@ -1,12 +1,24 @@
package com.vincent.rsf.server.manager.mapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.vincent.rsf.server.common.domain.BaseParam;
+import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
+
+import java.util.Map;
@Mapper
@Repository
public interface AsnOrderItemMapper extends BaseMapper<AsnOrderItem> {
+ IPage<Map<String, Object>> resultForMap(PageParam<AsnOrderItem, BaseParam> pages, @Param(Constants.WRAPPER) QueryWrapper<AsnOrderItem> buildWrapper);
+
+// List<Map<String, Object>> resultForMap(long pageParam, @Param(Constants.WRAPPER) QueryWrapper<AsnOrderItem> ew);
+
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemService.java
index c677466..3b15e3a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemService.java
@@ -1,12 +1,14 @@
package com.vincent.rsf.server.manager.service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.framework.common.R;
-import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.common.domain.BaseParam;
+import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import org.springframework.web.multipart.MultipartFile;
-import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@@ -15,4 +17,8 @@
R excelImport(MultipartFile file, HashMap<String, Object> hashMap) throws Exception;
boolean fieldsSave(Map<String, Object> params);
+
+// R listByAsnId(Map<String, Object> map);
+
+ IPage<Map<String, Object>> listByAsnId(PageParam<AsnOrderItem, BaseParam> pageParam, QueryWrapper<AsnOrderItem> buildWrapper);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java
index 3ea6b5d..5f9e5c8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import java.util.List;
@@ -14,4 +15,6 @@
R generateBarcode(List<AsnOrder> orders);
List<AsnOrder> getListByMatnr(Map<String, String> params);
+
+ R saveOrderAndItems(AsnOrderAndItemsParams params);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
index 60596bb..c9e55fa 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -4,9 +4,12 @@
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
-import com.vincent.rsf.server.common.utils.CommonUtil;
+import com.vincent.rsf.server.common.domain.BaseParam;
+import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
@@ -15,10 +18,9 @@
import com.vincent.rsf.server.manager.mapper.AsnOrderMapper;
import com.vincent.rsf.server.manager.service.AsnOrderItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vincent.rsf.server.system.entity.Fields;
-import com.vincent.rsf.server.system.entity.FieldsItem;
import com.vincent.rsf.server.system.service.FieldsItemService;
import com.vincent.rsf.server.system.service.FieldsService;
+import com.vincent.rsf.server.system.utils.ExtendFieldsUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -36,6 +38,7 @@
@Autowired
private FieldsService fieldsService;
+
@Autowired
private FieldsItemService fieldsItemService;
@@ -69,28 +72,23 @@
@Override
public boolean fieldsSave(Map<String, Object> params) {
- List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getStatus, 1).eq(Fields::getFlagEnable, 1));
- List<FieldsItem> fieldsItems = new ArrayList<>();
- if (!fields.isEmpty()) {
- String uuid16 = CommonUtil.randomUUID16();
- for (Fields obj : fields) {
- if (!Objects.isNull(params.get(obj.getFields()))) {
- FieldsItem item = new FieldsItem();
- item.setUuid(uuid16)
- .setValue(params.get(obj.getFields()).toString())
- .setMatnrId(Long.parseLong(params.get("matnrId").toString()))
- .setFieldsId(obj.getId());
- fieldsItems.add(item);
- }
- }
- if (!fieldsItemService.saveBatch(fieldsItems)) {
- throw new CoolException("鍗曟嵁鏄庣粏鎵╁睍瀛楁淇濆瓨澶辫触锛侊紒");
- }
- }
+ //淇濆瓨鎵╁睍瀛楁
+ ExtendFieldsUtils.saveFields(params);
AsnOrderItem asnOrderItem = JSONObject.parseObject(JSONObject.toJSONString(params), AsnOrderItem.class);
- if (!this.save(asnOrderItem)) {
+ if (!this.saveOrUpdate(asnOrderItem)) {
throw new CoolException("鏀惰揣閫氱煡鍗曟槑缁嗕繚瀛樺け璐ワ紒锛�");
}
return true;
}
+
+ @Override
+ public IPage<Map<String, Object>> listByAsnId(PageParam<AsnOrderItem, BaseParam> pageParam, QueryWrapper<AsnOrderItem> buildWrapper) {
+ IPage<Map<String, Object>> hsahMap = this.baseMapper.resultForMap(pageParam, buildWrapper);
+ if (hsahMap.getRecords().isEmpty()) {
+ return hsahMap.setRecords(new ArrayList<>());
+ }
+ hsahMap.setRecords(ExtendFieldsUtils.getExtendFields(hsahMap.getRecords()));
+ return hsahMap;
+
+ }
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
index 99da85e..098d817 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
@@ -6,6 +6,7 @@
import com.vincent.rsf.server.api.entity.dto.PoItemsDto;
import com.vincent.rsf.server.api.service.ReceiveMsgService;
import com.vincent.rsf.server.api.service.ReportMsgService;
+import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.mapper.AsnOrderItemMapper;
import com.vincent.rsf.server.manager.mapper.AsnOrderMapper;
@@ -98,4 +99,35 @@
return this.listByIds(longList);
}
+
+ @Override
+ public R saveOrderAndItems(AsnOrderAndItemsParams params) {
+ if (Objects.isNull(params.getOrders())) {
+ throw new CoolException("涓诲崟淇℃伅涓嶈兘涓虹┖");
+ }
+ AsnOrder orders = params.getOrders();
+
+ String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, orders);
+ if (Objects.isNull(ruleCode)) {
+ throw new CoolException("鏀惰揣閫氱煡鍗曠紪鐮佺敓鎴愬け璐ワ紒锛�");
+ }
+ orders.setCode(ruleCode);
+ if (!this.save(orders)) {
+ throw new CoolException("涓诲崟淇濆瓨澶辫触锛侊紒");
+ }
+ if (params.getItems().isEmpty()) {
+ throw new CoolException("鏀惰揣閫氱煡鍗曟槑缁嗕笉鑳戒负瀵掗鑺傦紒锛�");
+ }
+ params.getItems().forEach(item -> {
+ item.put("asnId", orders.getId());
+ item.put("asnCode", orders.getCode());
+ item.put("poCode", orders.getPoCode());
+
+ if (!asnOrderItemService.fieldsSave(item)) {
+ throw new CoolException("鏄庣粏淇濆瓨澶辫触锛侊紒");
+ }
+
+ });
+ return R.ok("淇濆瓨鎴愬姛!!");
+ }
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/ExtendFieldsUtils.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/ExtendFieldsUtils.java
new file mode 100644
index 0000000..8972eff
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/ExtendFieldsUtils.java
@@ -0,0 +1,95 @@
+package com.vincent.rsf.server.system.utils;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.framework.common.SpringUtils;
+import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.common.utils.CommonUtil;
+import com.vincent.rsf.server.system.entity.Fields;
+import com.vincent.rsf.server.system.entity.FieldsItem;
+import com.vincent.rsf.server.system.service.FieldsItemService;
+import com.vincent.rsf.server.system.service.FieldsService;
+import org.springframework.beans.BeanUtils;
+
+import java.util.*;
+
+/**
+ * @author Ryan
+ * @version 1.0
+ * @title ExtendFieldsUtils
+ * @description
+ * @create 2025/3/15 12:40
+ */
+public class ExtendFieldsUtils {
+
+ /**
+ * @author Ryan
+ * @description 鏄庣粏鍗曟嵁淇濆瓨鎵╁睍瀛楁
+ * @param
+ * @return
+ * @time 2025/3/15 13:36
+ */
+ public static Boolean saveFields(Map<String, Object> params) {
+ FieldsService fieldsService = SpringUtils.getBean(FieldsService.class);
+ List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>()
+ .eq(Fields::getStatus, 1)
+ .eq(Fields::getFlagEnable, 1));
+ List<FieldsItem> fieldsItems = new ArrayList<>();
+ if (!fields.isEmpty()) {
+ String uuid16 = CommonUtil.randomUUID16();
+ for (Fields obj : fields) {
+ if (!Objects.isNull(params.get(obj.getFields()))) {
+ FieldsItem item = new FieldsItem();
+ item.setUuid(uuid16)
+ .setValue(params.get(obj.getFields()).toString())
+ .setMatnrId(Long.parseLong(params.get("matnrId").toString()))
+ .setFieldsId(obj.getId());
+ fieldsItems.add(item);
+ }
+ params.put("fieldsIndex", uuid16);
+ }
+ FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
+ if (!fieldsItemService.saveBatch(fieldsItems)) {
+ throw new CoolException("鍗曟嵁鏄庣粏鎵╁睍瀛楁淇濆瓨澶辫触锛侊紒");
+ }
+ }
+ return true;
+ }
+
+
+ /**
+ * @author Ryan
+ * @description 鑾峰彇鎵╁睍瀛楁key-value鍊�
+ * @param
+ * @return
+ * @time 2025/3/15 15:05
+ */
+ public static List<Map<String, Object>> getExtendFields(List<Map<String, Object>> params) {
+ FieldsService fieldsService = SpringUtils.getBean(FieldsService.class);
+ List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>()
+ .eq(Fields::getStatus, 1)
+ .eq(Fields::getFlagEnable, 1));
+ FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (Map<String, Object> param : params) {
+ result.add(param);
+ if (Objects.isNull(param.get("fieldsIndex"))) {
+ continue;
+ }
+ List<FieldsItem> itemList = fieldsItemService
+ .list(new LambdaQueryWrapper<FieldsItem>()
+ .eq(FieldsItem::getUuid, param.get("fieldsIndex")));
+ if (itemList.isEmpty()) {
+ continue;
+ }
+ fields.forEach(fds -> {
+ for (FieldsItem fieldsItem : itemList) {
+ if (!Objects.isNull(fieldsItem.getFieldsId()) && fieldsItem.getFieldsId().equals(fds.getId())) {
+ param.put(fds.getFields(), fieldsItem.getValue());
+ }
+ }
+ });
+ }
+
+ return result;
+ }
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/test/controller/QlyInspectController.java b/rsf-server/src/main/java/com/vincent/rsf/server/test/controller/QlyInspectController.java
deleted file mode 100644
index 573f495..0000000
--- a/rsf-server/src/main/java/com/vincent/rsf/server/test/controller/QlyInspectController.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.vincent.rsf.server.test.controller;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.vincent.rsf.framework.common.Cools;
-import com.vincent.rsf.framework.common.R;
-import com.vincent.rsf.server.common.utils.ExcelUtil;
-import com.vincent.rsf.server.common.annotation.OperationLog;
-import com.vincent.rsf.server.common.domain.BaseParam;
-import com.vincent.rsf.server.common.domain.KeyValVo;
-import com.vincent.rsf.server.common.domain.PageParam;
-import com.vincent.rsf.server.test.entity.QlyInspect;
-import com.vincent.rsf.server.test.service.QlyInspectService;
-import com.vincent.rsf.server.system.controller.BaseController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.*;
-
-@RestController
-public class QlyInspectController extends BaseController {
-
- @Autowired
- private QlyInspectService qlyInspectService;
-
- @PreAuthorize("hasAuthority('test:qlyInspect:list')")
- @PostMapping("/qlyInspect/page")
- public R page(@RequestBody Map<String, Object> map) {
- BaseParam baseParam = buildParam(map, BaseParam.class);
- PageParam<QlyInspect, BaseParam> pageParam = new PageParam<>(baseParam, QlyInspect.class);
- return R.ok().add(qlyInspectService.page(pageParam, pageParam.buildWrapper(true)));
- }
-
- @PreAuthorize("hasAuthority('test:qlyInspect:list')")
- @PostMapping("/qlyInspect/list")
- public R list(@RequestBody Map<String, Object> map) {
- return R.ok().add(qlyInspectService.list());
- }
-
- @PreAuthorize("hasAuthority('test:qlyInspect:list')")
- @PostMapping({"/qlyInspect/many/{ids}", "/qlyInspects/many/{ids}"})
- public R many(@PathVariable Long[] ids) {
- return R.ok().add(qlyInspectService.listByIds(Arrays.asList(ids)));
- }
-
- @PreAuthorize("hasAuthority('test:qlyInspect:list')")
- @GetMapping("/qlyInspect/{id}")
- public R get(@PathVariable("id") Long id) {
- return R.ok().add(qlyInspectService.getById(id));
- }
-
- @PreAuthorize("hasAuthority('test:qlyInspect:save')")
- @OperationLog("Create 璐ㄦ淇℃伅")
- @PostMapping("/qlyInspect/save")
- public R save(@RequestBody QlyInspect qlyInspect) {
- qlyInspect.setCreateBy(getLoginUserId());
- qlyInspect.setCreateTime(new Date());
- qlyInspect.setUpdateBy(getLoginUserId());
- qlyInspect.setUpdateTime(new Date());
- if (!qlyInspectService.save(qlyInspect)) {
- return R.error("Save Fail");
- }
- return R.ok("Save Success").add(qlyInspect);
- }
-
- @PreAuthorize("hasAuthority('test:qlyInspect:update')")
- @OperationLog("Update 璐ㄦ淇℃伅")
- @PostMapping("/qlyInspect/update")
- public R update(@RequestBody QlyInspect qlyInspect) {
- qlyInspect.setUpdateBy(getLoginUserId());
- qlyInspect.setUpdateTime(new Date());
- if (!qlyInspectService.updateById(qlyInspect)) {
- return R.error("Update Fail");
- }
- return R.ok("Update Success").add(qlyInspect);
- }
-
- @PreAuthorize("hasAuthority('test:qlyInspect:remove')")
- @OperationLog("Delete 璐ㄦ淇℃伅")
- @PostMapping("/qlyInspect/remove/{ids}")
- public R remove(@PathVariable Long[] ids) {
- if (!qlyInspectService.removeByIds(Arrays.asList(ids))) {
- return R.error("Delete Fail");
- }
- return R.ok("Delete Success").add(ids);
- }
-
- @PreAuthorize("hasAuthority('test:qlyInspect:list')")
- @PostMapping("/qlyInspect/query")
- public R query(@RequestParam(required = false) String condition) {
- List<KeyValVo> vos = new ArrayList<>();
- LambdaQueryWrapper<QlyInspect> wrapper = new LambdaQueryWrapper<>();
- if (!Cools.isEmpty(condition)) {
- wrapper.like(QlyInspect::getId, condition);
- }
- qlyInspectService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
- item -> vos.add(new KeyValVo(item.getId(), item.getId()))
- );
- return R.ok().add(vos);
- }
-
- @PreAuthorize("hasAuthority('test:qlyInspect:list')")
- @PostMapping("/qlyInspect/export")
- public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
- ExcelUtil.build(ExcelUtil.create(qlyInspectService.list(), QlyInspect.class), response);
- }
-
-}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/test/entity/QlyInspect.java b/rsf-server/src/main/java/com/vincent/rsf/server/test/entity/QlyInspect.java
deleted file mode 100644
index 13d8af9..0000000
--- a/rsf-server/src/main/java/com/vincent/rsf/server/test/entity/QlyInspect.java
+++ /dev/null
@@ -1,222 +0,0 @@
-package com.vincent.rsf.server.test.entity;
-
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import com.vincent.rsf.framework.common.Cools;
-import com.vincent.rsf.framework.common.SpringUtils;
-import com.vincent.rsf.server.system.service.UserService;
-import com.vincent.rsf.server.system.entity.User;
-import java.io.Serializable;
-import java.util.Date;
-
-@Data
-@TableName("man_qly_inspect")
-public class QlyInspect implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * ID
- */
- @ApiModelProperty(value= "ID")
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 缂栫爜
- */
- @ApiModelProperty(value= "缂栫爜")
- private String code;
-
- /**
- * 涓氬姟绫诲瀷
- */
- @ApiModelProperty(value= "涓氬姟绫诲瀷")
- private String wkType;
-
- /**
- * 鍚堟牸鏁伴噺
- */
- @ApiModelProperty(value= "鍚堟牸鏁伴噺")
- private Double safeQty;
-
- /**
- * 閫佽揣鏁伴噺
- */
- @ApiModelProperty(value= "閫佽揣鏁伴噺")
- private Double dlyQty;
-
- /**
- * 鏀惰揣鏁伴噺
- */
- @ApiModelProperty(value= "鏀惰揣鏁伴噺")
- private Double rcptQty;
-
- /**
- * 璐ㄦ鏁伴噺
- */
- @ApiModelProperty(value= "璐ㄦ鏁伴噺")
- private Double isptQty;
-
- /**
- * 鐘舵�� 1: 璐ㄦ瀹屾垚 0: 寰呰川妫� 2: 璐ㄦ涓� 3: 鍏抽棴
- */
- @ApiModelProperty(value= "鐘舵�� 1: 璐ㄦ瀹屾垚 0: 寰呰川妫� 2: 璐ㄦ涓� 3: 鍏抽棴 ")
- private Integer status;
-
- /**
- * 鏄惁鍒犻櫎 1: 鏄� 0: 鍚�
- */
- @ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄� 0: 鍚� ")
- @TableLogic
- private Integer deleted;
-
- /**
- * 绉熸埛
- */
- @ApiModelProperty(value= "绉熸埛")
- private Integer tenantId;
-
- /**
- * 娣诲姞浜哄憳
- */
- @ApiModelProperty(value= "娣诲姞浜哄憳")
- private Long createBy;
-
- /**
- * 娣诲姞鏃堕棿
- */
- @ApiModelProperty(value= "娣诲姞鏃堕棿")
- @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
- private Date createTime;
-
- /**
- * 淇敼浜哄憳
- */
- @ApiModelProperty(value= "淇敼浜哄憳")
- private Long updateBy;
-
- /**
- * 淇敼鏃堕棿
- */
- @ApiModelProperty(value= "淇敼鏃堕棿")
- @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
- private Date updateTime;
-
- /**
- * 澶囨敞
- */
- @ApiModelProperty(value= "澶囨敞")
- private String memo;
-
- public QlyInspect() {}
-
- public QlyInspect(String code,String wkType,Double safeQty,Double dlyQty,Double rcptQty,Double isptQty,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
- this.code = code;
- this.wkType = wkType;
- this.safeQty = safeQty;
- this.dlyQty = dlyQty;
- this.rcptQty = rcptQty;
- this.isptQty = isptQty;
- this.status = status;
- this.deleted = deleted;
- this.tenantId = tenantId;
- this.createBy = createBy;
- this.createTime = createTime;
- this.updateBy = updateBy;
- this.updateTime = updateTime;
- this.memo = memo;
- }
-
-// QlyInspect qlyInspect = new QlyInspect(
-// null, // 缂栫爜[闈炵┖]
-// null, // 涓氬姟绫诲瀷
-// null, // 鍚堟牸鏁伴噺
-// null, // 閫佽揣鏁伴噺
-// null, // 鏀惰揣鏁伴噺
-// null, // 璐ㄦ鏁伴噺
-// null, // 鐘舵�乕闈炵┖]
-// null, // 鏄惁鍒犻櫎[闈炵┖]
-// null, // 绉熸埛
-// null, // 娣诲姞浜哄憳
-// null, // 娣诲姞鏃堕棿[闈炵┖]
-// null, // 淇敼浜哄憳
-// null, // 淇敼鏃堕棿[闈炵┖]
-// null // 澶囨敞
-// );
-
- public String getStatus$(){
- if (null == this.status){ return null; }
- switch (this.status){
- case 1:
- return "璐ㄦ瀹屾垚";
- case 0:
- return "寰呰川妫�";
- case 2:
- return "璐ㄦ涓�";
- case 3:
- return "鍏抽棴";
- default:
- return String.valueOf(this.status);
- }
- }
-
- public String getCreateBy$(){
- UserService service = SpringUtils.getBean(UserService.class);
- User user = service.getById(this.createBy);
- if (!Cools.isEmpty(user)){
- return String.valueOf(user.getNickname());
- }
- return null;
- }
-
- public String getCreateTime$(){
- if (Cools.isEmpty(this.createTime)){
- return "";
- }
- return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
- }
-
- public String getUpdateBy$(){
- UserService service = SpringUtils.getBean(UserService.class);
- User user = service.getById(this.updateBy);
- if (!Cools.isEmpty(user)){
- return String.valueOf(user.getNickname());
- }
- return null;
- }
-
- public String getUpdateTime$(){
- if (Cools.isEmpty(this.updateTime)){
- return "";
- }
- return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
- }
-
-
-
- public Boolean getStatusBool(){
- if (null == this.status){ return null; }
- switch (this.status){
- case 1:
- return true;
- case 0:
- return false;
- default:
- return null;
- }
- }
-
-}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/test/mapper/QlyInspectMapper.java b/rsf-server/src/main/java/com/vincent/rsf/server/test/mapper/QlyInspectMapper.java
deleted file mode 100644
index 0df2c7a..0000000
--- a/rsf-server/src/main/java/com/vincent/rsf/server/test/mapper/QlyInspectMapper.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.vincent.rsf.server.test.mapper;
-
-import com.vincent.rsf.server.test.entity.QlyInspect;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
-
-@Mapper
-@Repository
-public interface QlyInspectMapper extends BaseMapper<QlyInspect> {
-
-}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/test/service/QlyInspectService.java b/rsf-server/src/main/java/com/vincent/rsf/server/test/service/QlyInspectService.java
deleted file mode 100644
index 023eeeb..0000000
--- a/rsf-server/src/main/java/com/vincent/rsf/server/test/service/QlyInspectService.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.vincent.rsf.server.test.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.vincent.rsf.server.test.entity.QlyInspect;
-
-public interface QlyInspectService extends IService<QlyInspect> {
-
-}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/test/service/impl/QlyInspectServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/test/service/impl/QlyInspectServiceImpl.java
deleted file mode 100644
index db841c4..0000000
--- a/rsf-server/src/main/java/com/vincent/rsf/server/test/service/impl/QlyInspectServiceImpl.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.vincent.rsf.server.test.service.impl;
-
-import com.vincent.rsf.server.test.mapper.QlyInspectMapper;
-import com.vincent.rsf.server.test.entity.QlyInspect;
-import com.vincent.rsf.server.test.service.QlyInspectService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-@Service("qlyInspectService")
-public class QlyInspectServiceImpl extends ServiceImpl<QlyInspectMapper, QlyInspect> implements QlyInspectService {
-
-}
diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml
index 94a4edf..e416c3e 100644
--- a/rsf-server/src/main/resources/application.yml
+++ b/rsf-server/src/main/resources/application.yml
@@ -26,6 +26,7 @@
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
cache-enabled: true
+# object-wrapper-factory: com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory
global-config:
:banner: false
db-config:
diff --git a/rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml b/rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml
index 8aced59..15f722f 100644
--- a/rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml
+++ b/rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml
@@ -2,4 +2,40 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vincent.rsf.server.manager.mapper.AsnOrderItemMapper">
+ <select id="resultForMap" resultType="java.util.Map">
+ SELECT
+ id,
+ asn_id,
+ asn_code,
+ plat_item_id,
+ po_detl_id,
+ po_code,
+ fields_index,
+ matnr_id,
+ matnr_code,
+ maktx,
+ anfme,
+ stock_unit,
+ pur_qty,
+ pur_unit,
+ qty,
+ splr_code,
+ splr_batch,
+ splr_name,
+ qrcode,
+ track_code,
+ barcode,
+ pack_name,
+ nty_status,
+ `status` deleted,
+ tenant_id,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ memo
+ FROM
+ man_asn_order_item
+ ${ew.customSqlSegment}
+ </select>
</mapper>
--
Gitblit v1.9.1