From 4af26c71d9414b8b8f568c0f119f123790cab152 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 12 三月 2025 13:31:42 +0800
Subject: [PATCH] #修改 动态字段key-value值新增,显示优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java | 8
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrService.java | 5
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java | 3
rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java | 3
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java | 58 +++++++
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java | 9 +
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/ReceiptParams.java | 1
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java | 6
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java | 7 -
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 145 ++++++++++++++------
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java | 15 +
rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java | 6
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java | 5
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WarehouseAreasItemServiceImpl.java | 15 ++
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Matnr.java | 8 +
rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java | 58 ++++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WarehouseAreasItemService.java | 4
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasItemController.java | 7
rsf-server/src/main/java/com/vincent/rsf/server/system/entity/FieldsItem.java | 3
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/MatnrsTemplate.java | 12
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/dto/ReceiptDetlsDto.java | 25 +++
rsf-server/src/main/java/com/vincent/rsf/server/system/entity/Fields.java | 1
22 files changed, 316 insertions(+), 88 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java
index 40f2243..2181e8a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java
@@ -94,7 +94,6 @@
if (Objects.isNull(params)) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
-
return mobileService.otherReceipt(params);
}
@@ -114,4 +113,12 @@
}
+ @PreAuthorize("hasAuthority('manager:asnOrder:list')")
+ @GetMapping("/dynamic/fields")
+ @ApiOperation("鑾峰彇鍔ㄦ�佸瓧娈�")
+ public R getDynamicFields() {
+ return R.ok(mobileService.getDynamicFields());
+ }
+
+
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/ReceiptParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/ReceiptParams.java
index e2f53d8..a933489 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/ReceiptParams.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/ReceiptParams.java
@@ -7,6 +7,7 @@
import lombok.experimental.Accessors;
import java.util.List;
+import java.util.Map;
/**
* @author Ryan
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 ae83305..a5b525b 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
@@ -1,12 +1,17 @@
package com.vincent.rsf.server.api.entity.dto;
-import io.swagger.annotations.Api;
+import com.alibaba.fastjson.JSONObject;
+import com.vincent.rsf.server.api.controller.params.ReceiptParams;
+import com.vincent.rsf.server.common.utils.CommonUtil;
+import com.vincent.rsf.server.common.utils.FieldsUtils;
+import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
+import java.util.Map;
/**
* @author Ryan
@@ -64,4 +69,22 @@
@ApiModelProperty("渚涘簲鍟嗙紪鐮�")
private String splrCode;
+
+ @ApiModelProperty("鎵╁睍瀛楁")
+ private Map<String, Object> extendFields;
+
+ public static void main(String[] args) {
+ String abc = "";
+ String s = CommonUtil.randomUUID16();
+ System.out.println("閲嶅瀛楃涓诧細" + s);
+// for (int i = 0; i < 10000; i++) {
+// String s = CommonUtil.randomUUID16();
+// if (abc.equals(s)) {
+// System.out.println("閲嶅瀛楃涓诧細" + abc);
+// }
+// abc = s;
+// }
+ }
}
+
+
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java
index 2b67cd6..a4f69d4 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java
@@ -5,6 +5,7 @@
import com.vincent.rsf.server.api.controller.params.ReceiptParams;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import com.vincent.rsf.server.system.controller.param.LoginParam;
+import com.vincent.rsf.server.system.entity.Fields;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@@ -29,4 +30,6 @@
List<AsnOrder> getAllAsnOrders();
R getReceiptAreas();
+
+ List<Fields> getDynamicFields();
}
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 b740cd0..a62dd3b 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
@@ -1,5 +1,6 @@
package com.vincent.rsf.server.api.service.impl;
+import com.alibaba.druid.sql.visitor.functions.If;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
@@ -12,6 +13,7 @@
import com.vincent.rsf.server.common.config.ConfigProperties;
import com.vincent.rsf.server.common.enums.WarehouseAreaType;
import com.vincent.rsf.server.common.security.JwtSubject;
+import com.vincent.rsf.server.common.utils.CommonUtil;
import com.vincent.rsf.server.common.utils.JwtUtil;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.mapper.*;
@@ -20,11 +22,12 @@
import com.vincent.rsf.server.system.constant.CodeRes;
import com.vincent.rsf.server.system.controller.param.LoginParam;
import com.vincent.rsf.server.system.controller.result.LoginResult;
-import com.vincent.rsf.server.system.entity.Tenant;
-import com.vincent.rsf.server.system.entity.User;
-import com.vincent.rsf.server.system.entity.UserLogin;
+import com.vincent.rsf.server.system.entity.*;
+import com.vincent.rsf.server.system.mapper.FieldsMapper;
import com.vincent.rsf.server.system.mapper.TenantMapper;
import com.vincent.rsf.server.system.mapper.UserMapper;
+import com.vincent.rsf.server.system.service.FieldsItemService;
+import com.vincent.rsf.server.system.service.FieldsService;
import com.vincent.rsf.server.system.service.UserLoginService;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import org.apache.tika.utils.StringUtils;
@@ -73,6 +76,11 @@
private StockItemMapper stockItemMapper;
@Resource
private PurchaseItemMapper purchaseItemMapper;
+ @Resource
+ private FieldsMapper fieldsMapper;
+
+ @Autowired
+ private FieldsItemService fieldsItemService;
/**
@@ -122,7 +130,7 @@
if (StringUtils.isEmpty(barcode)) {
return R.error("鏍囩鐮佷笉鑳戒负绌猴紒锛�");
}
- AsnOrderItem asnOrderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getBarcode, barcode));
+ List<AsnOrderItem> asnOrderItem = asnOrderItemMapper.selectList(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getBarcode, barcode));
if (Objects.isNull(asnOrderItem)) {
throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
}
@@ -146,10 +154,14 @@
if (Objects.isNull(params.getWhAreaId())) {
throw new CoolException("搴撳尯鏍囪瘑涓嶈兘涓虹┖锛侊紒");
}
+
WarehouseAreas areasItem = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getId, params.getWhAreaId()));
if (Objects.isNull(areasItem)) {
throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶅簱鍖轰笉瀛樺湪锛侊紒");
}
+ //鑾峰彇宸插惎鐢ㄧ殑鍔ㄦ�佹墿灞曞瓧
+ List<Fields> fields = fieldsMapper.selectList(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1));
+
List<ReceiptDetlsDto> receipts = params.getReceipts();
List<WarehouseAreasItem> allOrders = new ArrayList<>();
receipts.forEach(dto -> {
@@ -175,7 +187,36 @@
.setShipperId(matnr.getShipperId());
//TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲
+ if (!Objects.isNull(fields)) {
+ if (!Objects.isNull(dto.getExtendFields())) {
+ //鑾峰彇16浣島uid
+ String uuid16 = CommonUtil.randomUUID16();
+ Map<String, Object> extendFields = dto.getExtendFields();
+ //瀛楁闆嗗悎鐢虫槑
+ List<FieldsItem> fieldsItems = new ArrayList<>();
+ extendFields.keySet().forEach(key -> {
+ fields.forEach(obj -> {
+ //鍒ゆ柇key鍊间笌fields琛ㄥ瓧娈垫槸鍚︾浉鍚�
+ if (obj.getFields().equals(key)) {
+ FieldsItem fieldsItem = new FieldsItem();
+ fieldsItem.setMatnrId(matnr.getId()).setFieldsId(obj.getId())
+ .setShiperId(matnr.getShipperId())
+ .setValue(extendFields.get(key).toString())
+ .setUuid(uuid16);
+
+ fieldsItems.add(fieldsItem);
+ //鍞竴鏍囪瘑鍏ュ簱
+ item.setFieldsIndex(uuid16);
+ }
+ });
+ });
+ if (!fieldsItemService.saveBatch(fieldsItems)) {
+ throw new CoolException("鎵╁睍瀛楁淇濆瓨澶辫触锛侊紒");
+ }
+ }
+ }
allOrders.add(item);
+
});
if (!warehouseAreasItemService.saveBatch(allOrders)) {
@@ -196,7 +237,7 @@
if (Objects.isNull(params.getAsnCode())) {
throw new CoolException("閫氱煡鍗曚笉鑳戒负绌猴紒锛�");
}
- AsnOrderItem asnOrderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>()
+ List<AsnOrderItem> asnOrderItem = asnOrderItemMapper.selectList(new LambdaQueryWrapper<AsnOrderItem>()
.eq(AsnOrderItem::getAsnCode, params.getAsnCode())
.eq(!Objects.isNull(params.getBarcode()) ,AsnOrderItem::getBarcode, params.getBarcode()));
@@ -232,49 +273,67 @@
}
/**
- * 鑾峰彇ReceiptDetlsDto
+ * @author Ryan
+ * @description 鑾峰彇鎵�鏈夊惎鐢ㄥ姩鎬佸瓧娈�
+ * @param
+ * @return
+ * @time 2025/3/12 09:23
*/
- private R getAsnOrderItem(AsnOrderItem asnOrderItem) {
- ReceiptDetlsDto detlsDto = new ReceiptDetlsDto();
+ @Override
+ public List<Fields> getDynamicFields() {
+ return fieldsMapper.selectList(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1));
+ }
- detlsDto.setAsnCode(asnOrderItem.getAsnCode())
- .setMatnk(asnOrderItem.getMatnk())
- .setBarcode(asnOrderItem.getBarcode())
- .setPoCode(asnOrderItem.getPoCode())
- .setPurQty(asnOrderItem.getAnfme())
- .setSplrBatch(asnOrderItem.getSplrBatch());
+ /**
+ * 鑾峰彇ReceiptDetlsDtos
+ */
+ private R getAsnOrderItem(List<AsnOrderItem> items) {
+ List<ReceiptDetlsDto> detlsDtos = new ArrayList<>();
+ items.forEach(asnOrderItem -> {
+ ReceiptDetlsDto detlsDto = new ReceiptDetlsDto();
- Matnr matnr = matnrMapper.selectById(asnOrderItem.getMatnrId());
- if (Objects.isNull(matnr)) {
- throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪锛侊紒");
- }
- //SET 鐗╂枡鏈�澶у瓨鏀炬暟閲�
- detlsDto.setMaxQty(matnr.getMaxQty())
- .setMatnrId(matnr.getId())
- .setStockUnit(matnr.getStockUnit());
- QlyInspect inspect = qlyInspectMapper.selectOne(new LambdaQueryWrapper<QlyInspect>()
- .eq(QlyInspect::getAsnItemId, asnOrderItem.getId()).eq(QlyInspect::getPoItemId, asnOrderItem.getPoDetlId()));
- if (!Objects.isNull(inspect)) {
- //set 璐ㄦ缁撴灉
- detlsDto.setInspect(inspect.getStatus$());
- }
- //鑾峰彇褰撳墠搴撳瓨淇℃伅
- StockItem stockItem = stockItemMapper.selectOne(new LambdaQueryWrapper<StockItem>()
- .eq(StockItem::getAsnItemId, asnOrderItem.getId())
- .eq(StockItem::getMatnrId, asnOrderItem.getMatnrId()));
- //SET 褰撳墠搴撳瓨鏁伴噺
- if (Objects.isNull(stockItem)) {
- detlsDto.setStockQty(0.0);
- } else {
- detlsDto.setStockQty(stockItem.getQty() + stockItem.getWorkQty());
- }
+ detlsDto.setAsnCode(asnOrderItem.getAsnCode())
+ .setMatnk(asnOrderItem.getMatnk())
+ .setBarcode(asnOrderItem.getBarcode())
+ .setPoCode(asnOrderItem.getPoCode())
+ .setPurQty(asnOrderItem.getAnfme())
+ .setSplrBatch(asnOrderItem.getSplrBatch());
- //鑾峰彇閲囪喘鍗曟槑缁嗕俊鎭�
- PurchaseItem purchaseItem = purchaseItemMapper.selectOne(new LambdaQueryWrapper<PurchaseItem>().eq(PurchaseItem::getId, asnOrderItem.getPoDetlId()));
- //SET 骞冲彴琛屽彿
- detlsDto.setPlatformId(purchaseItem.getPlatItemId());
+ Matnr matnr = matnrMapper.selectById(asnOrderItem.getMatnrId());
+ if (Objects.isNull(matnr)) {
+ throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪锛侊紒");
+ }
+ //SET 鐗╂枡鏈�澶у瓨鏀炬暟閲�
+ detlsDto.setMaxQty(matnr.getMaxQty())
+ .setMatnrId(matnr.getId())
+ .setStockUnit(matnr.getStockUnit());
+ QlyInspect inspect = qlyInspectMapper.selectOne(new LambdaQueryWrapper<QlyInspect>()
+ .eq(QlyInspect::getAsnItemId, asnOrderItem.getId()).eq(QlyInspect::getPoItemId, asnOrderItem.getPoDetlId()));
+ if (!Objects.isNull(inspect)) {
+ //set 璐ㄦ缁撴灉
+ detlsDto.setInspect(inspect.getStatus$());
+ }
+ //鑾峰彇褰撳墠搴撳瓨淇℃伅
+ StockItem stockItem = stockItemMapper.selectOne(new LambdaQueryWrapper<StockItem>()
+ .eq(StockItem::getAsnItemId, asnOrderItem.getId())
+ .eq(StockItem::getMatnrId, asnOrderItem.getMatnrId()));
+ //SET 褰撳墠搴撳瓨鏁伴噺
+ if (Objects.isNull(stockItem)) {
+ detlsDto.setStockQty(0.0);
+ } else {
+ detlsDto.setStockQty(stockItem.getQty() + stockItem.getWorkQty());
+ }
- return R.ok(detlsDto);
+ //鑾峰彇閲囪喘鍗曟槑缁嗕俊鎭�
+ PurchaseItem purchaseItem = purchaseItemMapper.selectOne(new LambdaQueryWrapper<PurchaseItem>().eq(PurchaseItem::getId, asnOrderItem.getPoDetlId()));
+ //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/CodeBuilder.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java
index 7fc4da5..addfeef 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java
@@ -22,9 +22,9 @@
// generator.username="sa";
// generator.password="Zoneyung@zy56$";
- generator.table="sys_fields_item";
- generator.tableDesc="鎵╁睍瀛楁鏄庣粏琛�";
- generator.packagePath="com.vincent.rsf.server.system";
+ generator.table="man_qly_inspect";
+ generator.tableDesc="璐ㄦ淇℃伅";
+ generator.packagePath="com.vincent.rsf.server.manager";
generator.build();
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java
new file mode 100644
index 0000000..c9f0206
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java
@@ -0,0 +1,58 @@
+package com.vincent.rsf.server.common.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.framework.common.SpringUtils;
+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.context.annotation.Configuration;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author Ryan
+ * @version 1.0
+ * @title FieldsUtils
+ * @description
+ * @create 2025/3/12 12:33
+ */
+
+public class FieldsUtils {
+
+ /**
+ * @author Ryan
+ * @description 閫氳繃瀛楁鍞竴鏍囪瘑鑾峰彇鍔ㄦ�佸瓧娈礛ap
+ * @param
+ * @return
+ * @time 2025/3/12 12:50
+ */
+ public static Map<String, String> getFields(String uuid) {
+ Map<String, String> fieldsMap = new HashMap<>();
+ FieldsService fieldsService = SpringUtils.getBean(FieldsService.class);
+ List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1));
+ if (fields.isEmpty()) {
+ return null;
+ }
+ FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
+ List<FieldsItem> fieldsItems = fieldsItemService.list(new LambdaQueryWrapper<FieldsItem>().eq(FieldsItem::getUuid, uuid));
+ for (Fields field : fields ) {
+ if (fieldsItems.isEmpty()) {
+ fieldsMap.put(field.getFields(), null);
+ continue;
+ }
+ fieldsItems.forEach(fieldsItem -> {
+ if (fieldsItem.getFieldsId().equals(field.getId())) {
+ fieldsMap.put(field.getFields(), fieldsItem.getValue());
+ }
+ });
+ }
+
+ return fieldsMap;
+ }
+
+}
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 02f32e6..8e070ac 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
@@ -60,9 +60,7 @@
@ApiOperation("淇濆瓨")
public R save(@RequestBody AsnOrder asnOrder) {
asnOrder.setCreateBy(getLoginUserId());
- asnOrder.setCreateTime(new Date());
asnOrder.setUpdateBy(getLoginUserId());
- asnOrder.setUpdateTime(new Date());
if (!asnOrderService.save(asnOrder)) {
return R.error("Save Fail");
}
@@ -133,5 +131,11 @@
}
}
+ @PostMapping("/asnOrder")
+ @ApiOperation("ASN瀵煎叆鎺ュ彛")
+ @PreAuthorize("hasAuthority('manager:asnOrder:update')")
+ public R importExcel() {
+ return R.ok();
+ }
}
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 118c505..a4a54c6 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
@@ -56,9 +56,8 @@
@PostMapping("/asnOrderItem/save")
public R save(@RequestBody AsnOrderItem asnOrderItem) {
asnOrderItem.setCreateBy(getLoginUserId());
- asnOrderItem.setCreateTime(new Date());
asnOrderItem.setUpdateBy(getLoginUserId());
- asnOrderItem.setUpdateTime(new Date());
+// asnOrderItemService.getFieldsExtend
if (!asnOrderItemService.save(asnOrderItem)) {
return R.error("Save Fail");
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java
index 3b4fc39..29842a3 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java
@@ -137,13 +137,11 @@
@PreAuthorize("hasAuthority('manager:matnr:save')")
@ApiOperation(value = "excel琛ㄦ牸瀵煎叆鐗╂枡淇℃伅")
@PostMapping("/matnr/import")
- public R listImport(@RequestParam MultipartFile file) throws Exception {
+ public R listImport(MultipartFile file) throws Exception {
if (Objects.isNull(file)) {
throw new CoolException("鏂囦欢涓嶈兘涓虹┖锛侊紒");
}
- matnrService.importExcels(file);
-
- return R.ok();
+ return matnrService.importExcels(file);
}
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasItemController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasItemController.java
index f2e71f2..7bd0a7c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasItemController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasItemController.java
@@ -12,6 +12,7 @@
import com.vincent.rsf.server.manager.entity.WarehouseAreasItem;
import com.vincent.rsf.server.manager.service.WarehouseAreasItemService;
import com.vincent.rsf.server.system.controller.BaseController;
+import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -19,6 +20,7 @@
import javax.servlet.http.HttpServletResponse;
import java.util.*;
+@Api(tags = "搴撳尯搴撳瓨鏄庣粏")
@RestController
public class WarehouseAreasItemController extends BaseController {
@@ -36,10 +38,11 @@
@PreAuthorize("hasAuthority('manager:warehouseAreasItem:list')")
@PostMapping("/warehouseAreasItem/list")
public R list(@RequestBody Map<String, Object> map) {
- return R.ok().add(warehouseAreasItemService.list());
+ return R.ok(warehouseAreasItemService.getList());
+// return R.ok().add(warehouseAreasItemService.list());
}
- @PreAuthorize("hasAuthority('manager:warehouseAreasItem:list')")
+ @PreAuthorize("hasAuthority('manager:warehouseAreasItem:list' )")
@PostMapping({"/warehouseAreasItem/many/{ids}", "/warehouseAreasItems/many/{ids}"})
public R many(@PathVariable Long[] ids) {
return R.ok().add(warehouseAreasItemService.listByIds(Arrays.asList(ids)));
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java
index 226114d..f1e98da 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java
@@ -6,14 +6,10 @@
import lombok.experimental.Accessors;
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;
@@ -21,7 +17,6 @@
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
@Accessors(chain = true)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Matnr.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Matnr.java
index b4af411..d127f14 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Matnr.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Matnr.java
@@ -9,6 +9,7 @@
import com.vincent.rsf.server.manager.service.CompanysService;
import com.vincent.rsf.server.manager.service.MatnrGroupService;
import com.vincent.rsf.server.manager.service.ShipperService;
+import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -27,6 +28,7 @@
@Data
@TableName("man_matnr")
+@Accessors(chain = true)
@ApiModel(value = "Matnr", description = "鐗╂枡鎵�鏈夊熀纭�灞炴��")
public class Matnr implements Serializable {
@@ -67,6 +69,12 @@
private Long groupId;
/**
+ * 鍒嗙粍鍔╄鐮�
+ */
+ @ApiModelProperty(value = "鍒嗙粍鍔╄鐮�")
+ private String groupCode;
+
+ /**
* 瑙勫垯浠g爜
*/
@ApiModelProperty(value= "瑙勫垯浠g爜")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java
index 01005f3..d0b12a5 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java
@@ -1,6 +1,7 @@
package com.vincent.rsf.server.manager.entity;
-import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -10,10 +11,7 @@
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;
@@ -23,9 +21,11 @@
import com.vincent.rsf.server.system.entity.User;
import java.io.Serializable;
import java.util.Date;
+import java.util.Map;
@Data
@Accessors(chain = true)
+@ApiModel(value = "WarehouseAreasItem", description = "搴撳尯搴撳瓨淇℃伅")
@TableName("man_warehouse_areas_item")
public class WarehouseAreasItem implements Serializable {
@@ -55,6 +55,9 @@
*/
@ApiModelProperty(value= "鐗╂枡鏍囪瘑")
private Long matnrId;
+
+ @ApiModelProperty(value = "鎵╁睍瀛楁鍞竴鏍囪瘑")
+ private String fieldsIndex;
/**
* 鐗╂枡鍚嶇О
@@ -179,6 +182,10 @@
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
+ @ApiModelProperty("鎵╁睍瀛楁")
+ @TableField(exist = false)
+ private Map<String, String> extendFields;
+
/**
* 澶囨敞
*/
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/MatnrsTemplate.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/MatnrsTemplate.java
index 7ecf8b2..8ea3665 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/MatnrsTemplate.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/MatnrsTemplate.java
@@ -30,9 +30,9 @@
@ExcelComment(example = "鍗庝负鎵嬫満")
private String name;
- @Excel(name = "璐т富缂栫爜")
- @ExcelComment(example = "PO12625")
- private String shipperCode;
+ @Excel(name = "鍒嗙被鍔╄鐮�")
+ @ExcelComment(example = "256874556")
+ private String groupCode;
@Excel(name = "鍒嗙被鍚嶇О")
@ExcelComment(example = "绉诲姩璁惧")
@@ -79,7 +79,7 @@
private String purUnit;
@Excel(name = "ABC绫�")
- @ExcelComment(notNull = false, example = "A")
+ @ExcelComment(notNull = false, example = "0")
private String stockLevel;
@Excel(name = "瀹夊叏搴撳瓨閲�")
@@ -107,11 +107,11 @@
private String barcode;
@Excel(name = "鏁堟湡棰勮闃堝��")
- @ExcelComment(notNull = false, example = "2025-01-25 14:25:36")
+ @ExcelComment(notNull = false, example = "90")
private String validWarn;
@Excel(name = "鏄惁鍏嶆")
- @ExcelComment(notNull = false, example = "鍚�")
+ @ExcelComment(notNull = false, example = "0")
private String flagCheck;
private Integer rowNum;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
index cf99f59..bf9ce37 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
@@ -92,7 +92,6 @@
throw new CoolException("ASN鍗曟嵁淇濆瓨澶辫触锛侊紒");
}
List<AsnOrderItem> orderItems = new ArrayList<>();
- String uuid16 = CommonUtil.randomUUID16();
items.forEach(item -> {
AsnOrderItem orderItem = new AsnOrderItem();
Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, item.getMatnrCode()));
@@ -115,12 +114,6 @@
.setPurUnit(item.getUnit())
.setMatnk(matnr.getName())
.setMatnrId(matnr.getId() + "");
- //鍒ゆ柇PO鍗曟槸鍚﹀凡璁剧疆鍔ㄦ�佸瓧娈电储寮�
- if (Objects.isNull(item.getFieldsIndex())) {
- orderItem.setFieldsIndex(uuid16);
- } else {
- orderItem.setFieldsIndex(item.getFieldsIndex());
- }
orderItems.add(orderItem);
});
if (!asnOrderItemService.saveBatch(orderItems)) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrService.java
index d17885a..435af53 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrService.java
@@ -1,12 +1,11 @@
package com.vincent.rsf.server.manager.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.manager.entity.Matnr;
import org.springframework.web.multipart.MultipartFile;
-import java.io.IOException;
-
public interface MatnrService extends IService<Matnr> {
- void importExcels(MultipartFile file) throws Exception;
+ R importExcels(MultipartFile file) throws Exception;
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WarehouseAreasItemService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WarehouseAreasItemService.java
index 594363f..3018867 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WarehouseAreasItemService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WarehouseAreasItemService.java
@@ -3,6 +3,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.server.manager.entity.WarehouseAreasItem;
+import java.util.List;
+import java.util.Map;
+
public interface WarehouseAreasItemService extends IService<WarehouseAreasItem> {
+ List<WarehouseAreasItem> getList();
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
index 8ffcc4f..ccfd8ca 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
@@ -2,33 +2,81 @@
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.utils.ExcelUtil;
+import com.vincent.rsf.server.manager.entity.MatnrGroup;
import com.vincent.rsf.server.manager.entity.excel.MatnrsTemplate;
import com.vincent.rsf.server.manager.mapper.MatnrMapper;
import com.vincent.rsf.server.manager.entity.Matnr;
+import com.vincent.rsf.server.manager.service.MatnrGroupService;
import com.vincent.rsf.server.manager.service.MatnrService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
-import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
@Service("matnrService")
public class MatnrServiceImpl extends ServiceImpl<MatnrMapper, Matnr> implements MatnrService {
+ @Autowired
+ private MatnrGroupService matnrGroupService;
+
/**
+ * @return
+ * @throws
* @author Ryan
* @description 鐗╂枡鏁版嵁瀵煎叆鎺ュ鐞嗗疄鐜�
- * @throws
- * @return
* @time 2025/3/3 13:08
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public void importExcels(MultipartFile file) throws Exception {
+ public R importExcels(MultipartFile file) throws Exception {
//璇诲彇涓婁紶鏂囦欢鍐呭
ExcelImportResult<MatnrsTemplate> result = ExcelImportUtil.importExcelMore(file.getInputStream(), MatnrsTemplate.class, ExcelUtil.getDefaultImportParams());
- //TODO 鐗╂枡鍐欏叆澶勭悊
+ if (result.getList().isEmpty()) {
+ throw new CoolException("鐗╂枡瀵煎叆澶辫触锛侊紒");
+ }
+ List<Matnr> matnrs = new ArrayList<>();
+ result.getList().forEach(template -> {
+ Matnr matnr = new Matnr();
+ matnr.setBarcode(template.getBarcode())
+ .setCode(template.getErpCode())
+ .setDescrible(template.getDescrible())
+ .setColor(template.getColor())
+ .setFlagCheck(Short.parseShort(template.getFlagCheck()))
+ .setWeight(Double.parseDouble(template.getWeight()))
+ .setValidWarn(Integer.parseInt(template.getValidWarn()))
+ .setValid(Integer.parseInt(template.getValid()))
+ .setUnit(template.getUnit())
+ .setStockUnit(template.getPurUnit())
+ .setSpec(template.getSpec())
+ .setStagn(Integer.parseInt(template.getStagn()))
+ .setModel(template.getModel())
+ .setGroupCode(template.getGroupCode())
+ .setPurUnit(template.getPurUnit())
+ .setStockLevel(Short.parseShort(template.getStockLevel()))
+ .setSafeQty(Double.parseDouble(template.getSafeQty()))
+ .setMinQty(Double.parseDouble(template.getMinQty()));
+ if (Objects.isNull(template.getGroupCode()) && Objects.isNull(template.getGroupName())) {
+ MatnrGroup matnrGroups = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
+ .eq(!Objects.isNull(template.getGroupCode()), MatnrGroup::getCode, template.getGroupCode())
+ .eq(!Objects.isNull(template.getGroupName()),MatnrGroup::getName, template.getName()));
+ matnr.setGroupId(matnrGroups.getId());
+ }
+
+ matnrs.add(matnr);
+ });
+
+ if (!this.saveBatch(matnrs)) {
+ throw new CoolException("瀵煎叆澶辫触锛侊紒");
+ }
+ return R.ok("瀵煎叆鎴愬姛锛侊紒");
}
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WarehouseAreasItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WarehouseAreasItemServiceImpl.java
index 430cd8e..bc7d6c3 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WarehouseAreasItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WarehouseAreasItemServiceImpl.java
@@ -1,12 +1,27 @@
package com.vincent.rsf.server.manager.service.impl;
+import com.vincent.rsf.server.common.utils.FieldsUtils;
import com.vincent.rsf.server.manager.mapper.WarehouseAreasItemMapper;
import com.vincent.rsf.server.manager.entity.WarehouseAreasItem;
import com.vincent.rsf.server.manager.service.WarehouseAreasItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Objects;
+
@Service("warehouseAreasItemService")
public class WarehouseAreasItemServiceImpl extends ServiceImpl<WarehouseAreasItemMapper, WarehouseAreasItem> implements WarehouseAreasItemService {
+ @Override
+ public List<WarehouseAreasItem> getList() {
+ List<WarehouseAreasItem> areasItems = this.list();
+ for (WarehouseAreasItem areasItem : areasItems) {
+ if (Objects.isNull(areasItem.getFieldsIndex())) {
+ continue;
+ }
+ areasItem.setExtendFields(FieldsUtils.getFields(areasItem.getFieldsIndex()));
+ }
+ return areasItems;
+ }
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/Fields.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/Fields.java
index b0c0f07..3b1d374 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/Fields.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/Fields.java
@@ -21,6 +21,7 @@
@Data
@TableName("sys_fields")
+@ApiModel(value = "Fields", description = "鍔ㄦ�佸瓧娈�")
public class Fields implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/FieldsItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/FieldsItem.java
index 4f0d218..eedc181 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/FieldsItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/FieldsItem.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.text.SimpleDateFormat;
import java.util.Date;
+
+import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -22,6 +24,7 @@
import java.util.Date;
@Data
+@Accessors(chain = true)
@TableName("sys_fields_item")
public class FieldsItem implements Serializable {
--
Gitblit v1.9.1