mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
配件新增、删除逻辑修改
This commit is contained in:
+19
-5
@@ -99,6 +99,10 @@ public class OrderController {
|
|||||||
@Resource
|
@Resource
|
||||||
private RedisLockUtil redisLockUtil;
|
private RedisLockUtil redisLockUtil;
|
||||||
|
|
||||||
|
private String lockKey = "order:1631:lock:";
|
||||||
|
private String errKey = "api数据导入异常";
|
||||||
|
private String errValue = "当前存在导入情况,请稍后";
|
||||||
|
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
@Operation(summary = "更新生产单")
|
@Operation(summary = "更新生产单")
|
||||||
@PreAuthorize("@ss.hasPermission('production:manager-list:edit')")
|
@PreAuthorize("@ss.hasPermission('production:manager-list:edit')")
|
||||||
@@ -200,7 +204,11 @@ public class OrderController {
|
|||||||
@PreAuthorize("@ss.hasPermission('production:manager-list:create')")
|
@PreAuthorize("@ss.hasPermission('production:manager-list:create')")
|
||||||
public CommonResult<String> getApiData(@RequestParam(value = "orderNo") String orderNo){
|
public CommonResult<String> getApiData(@RequestParam(value = "orderNo") String orderNo){
|
||||||
|
|
||||||
redisLockUtil.lock(orderNo);
|
boolean isLocked = redisLockUtil.lock(lockKey);
|
||||||
|
if (!isLocked) {
|
||||||
|
log.error(errKey, errValue);
|
||||||
|
return success(errValue);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
Long orderId = (Long) identifierGenerator.nextId(null);
|
Long orderId = (Long) identifierGenerator.nextId(null);
|
||||||
Long organId = getUserOrganId();
|
Long organId = getUserOrganId();
|
||||||
@@ -237,10 +245,10 @@ public class OrderController {
|
|||||||
Long id = orderService.importApiData(listMap);
|
Long id = orderService.importApiData(listMap);
|
||||||
return success(String.valueOf(id));
|
return success(String.valueOf(id));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("api数据导入异常", e);
|
log.error(errKey, e);
|
||||||
return success(e.getMessage());
|
return success(e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
redisLockUtil.unlock(orderNo);
|
redisLockUtil.unlock(lockKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -269,7 +277,11 @@ public class OrderController {
|
|||||||
|
|
||||||
Boolean flag = true;
|
Boolean flag = true;
|
||||||
String customOrderNoKey = "自定义单号";
|
String customOrderNoKey = "自定义单号";
|
||||||
redisLockUtil.lock(file.getOriginalFilename());
|
boolean isLocked = redisLockUtil.lock(lockKey);
|
||||||
|
if (!isLocked) {
|
||||||
|
log.error(errKey, errValue);
|
||||||
|
|
||||||
|
} else {
|
||||||
try {
|
try {
|
||||||
if (type == 0) { //excel
|
if (type == 0) { //excel
|
||||||
excelReadUtil.setErr(0);
|
excelReadUtil.setErr(0);
|
||||||
@@ -376,10 +388,12 @@ public class OrderController {
|
|||||||
XMLUtil.writeErr(response, xmlStr, " order_add_xml_err.xml");
|
XMLUtil.writeErr(response, xmlStr, " order_add_xml_err.xml");
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
redisLockUtil.unlock(file.getOriginalFilename());
|
redisLockUtil.unlock(lockKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 生产单详情
|
// 生产单详情
|
||||||
@GetMapping("/get-room")
|
@GetMapping("/get-room")
|
||||||
|
|||||||
+20
@@ -33,6 +33,14 @@ public class OrderPartsRespVO {
|
|||||||
@ExcelProperty("材质")
|
@ExcelProperty("材质")
|
||||||
private String material;
|
private String material;
|
||||||
|
|
||||||
|
@Schema(description = "颜色", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("颜色")
|
||||||
|
private String color;
|
||||||
|
|
||||||
|
@Schema(description = "配件主类", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("配件主类")
|
||||||
|
private String category;
|
||||||
|
|
||||||
@Schema(description = "配件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
@Schema(description = "配件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||||
@ExcelProperty("配件类型")
|
@ExcelProperty("配件类型")
|
||||||
private String type;
|
private String type;
|
||||||
@@ -41,6 +49,18 @@ public class OrderPartsRespVO {
|
|||||||
@ExcelProperty("型号")
|
@ExcelProperty("型号")
|
||||||
private String model;
|
private String model;
|
||||||
|
|
||||||
|
@Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("宽度")
|
||||||
|
private Double width;
|
||||||
|
|
||||||
|
@Schema(description = "长度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("长度")
|
||||||
|
private Double length;
|
||||||
|
|
||||||
|
@Schema(description = "厚度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("厚度")
|
||||||
|
private Double thickness;
|
||||||
|
|
||||||
@Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("规格")
|
@ExcelProperty("规格")
|
||||||
private String spec;
|
private String spec;
|
||||||
|
|||||||
+1
-2
@@ -128,7 +128,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
|||||||
@Param("bodyId") Set<Long> bodyId, @Param("groupId") Set<Long> groupId, @Param("goodsId") Set<Long> goodsId,
|
@Param("bodyId") Set<Long> bodyId, @Param("groupId") Set<Long> groupId, @Param("goodsId") Set<Long> goodsId,
|
||||||
@Param("organId") Long organId, @Param("deleted") Integer deleted);
|
@Param("organId") Long organId, @Param("deleted") Integer deleted);
|
||||||
|
|
||||||
List<Long> selectPartsNotId(@Param("orderId") Long orderId, @Param("roomId") Long roomId,
|
Integer countPartsNotId(@Param("orderId") Long orderId, @Param("bodyId") Set<Long> bodyIds, @Param("goodsId") Long partsId,
|
||||||
@Param("bodyId") Long bodyId, @Param("groupId") Long groupId, @Param("goodsId") Long goodsId,
|
|
||||||
@Param("organId") Long organId, @Param("deleted") Integer deleted);
|
@Param("organId") Long organId, @Param("deleted") Integer deleted);
|
||||||
}
|
}
|
||||||
+28
-20
@@ -292,13 +292,17 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
|
|
||||||
if (!partsList.isEmpty()){
|
if (!partsList.isEmpty()){
|
||||||
// // 判断是否含有重复的配件
|
// // 判断是否含有重复的配件
|
||||||
// List<Long> partsNot = new ArrayList<>();
|
Iterator<Long> iterator = partsList.iterator();
|
||||||
// for (Long partsId : partsList) {
|
while (iterator.hasNext()) {
|
||||||
// Long partNot = orderItemMapper.selectPartsNotId(partsId, getUserOrganId(), orderId);
|
Long id = iterator.next(); // 配件id判断是否重复
|
||||||
// if (!groupIds.isEmpty()) {
|
// 判断不符合删除配件的规则
|
||||||
// orderGroupMapper.updateDeletedGroup(groupIds, getUserOrganId(), orderId);
|
Integer partsCount = orderItemMapper.countPartsNotId(orderId, new HashSet<>(bodyIds), id, getUserOrganId(), 0);
|
||||||
// }
|
if (partsCount > 0){
|
||||||
// }
|
iterator.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!partsList.isEmpty()) {
|
||||||
orderPartsMapper.updateDeletedParts(partsList, getUserOrganId(),orderId);
|
orderPartsMapper.updateDeletedParts(partsList, getUserOrganId(),orderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -731,7 +735,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
return partsDOS;
|
return partsDOS;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, List<?>> getPlateGoods(List<GoodsDO> goodsLists) {
|
private Map<String, List<?>> getPlateGoods(List<GoodsDO> goodsLists) { // order_goods list
|
||||||
Map<String, List<?>> map = new HashMap<>();
|
Map<String, List<?>> map = new HashMap<>();
|
||||||
List<PlateGoodDO> plateGoodLists = new ArrayList<>();
|
List<PlateGoodDO> plateGoodLists = new ArrayList<>();
|
||||||
|
|
||||||
@@ -739,17 +743,15 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
return Collections.emptyMap();
|
return Collections.emptyMap();
|
||||||
}
|
}
|
||||||
for (GoodsDO goodsDO : goodsLists) {
|
for (GoodsDO goodsDO : goodsLists) {
|
||||||
PlateGoodDO plateGoodDO = null;
|
PlateGoodDO plateGoodDO = null; // plate
|
||||||
List<PlateGoodDO> plateGoodDOS = null;
|
List<PlateGoodDO> plateGoodDOS = null; // plate list
|
||||||
if (goodsDO.getGoodsId() != null) { // 有goodsId
|
if (goodsDO.getGoodsId() != null && !goodsDO.getGoodsId().isEmpty()) { // 有goodsId
|
||||||
plateGoodDO = getPlateGood(goodsDO.getGoodsId(), OrganContextHolder.getOrganId());
|
plateGoodDO = getPlateGood(goodsDO.getGoodsId(), OrganContextHolder.getOrganId());
|
||||||
} else { // 没有goodsId 其他信息匹配
|
} else { // 没有goodsId 其他信息匹配
|
||||||
plateGoodDOS = plateGoodMapper.selectGood(goodsDO.getGoodsName(), goodsDO.getMaterial(), goodsDO.getColor(),
|
plateGoodDOS = plateGoodMapper.selectGood(goodsDO.getGoodsName(), goodsDO.getMaterial(), goodsDO.getColor(),
|
||||||
goodsDO.getTexture(), goodsDO.getWidth(), goodsDO.getThickness(), goodsDO.getHeight(), goodsDO.getBrand(),
|
goodsDO.getTexture(), goodsDO.getWidth(), goodsDO.getThickness(), goodsDO.getHeight(), goodsDO.getBrand(),
|
||||||
goodsDO.getSpec(), OrganContextHolder.getOrganId());
|
goodsDO.getSpec(), OrganContextHolder.getOrganId());
|
||||||
long plateNo = idWorker.nextId();
|
|
||||||
long obtainingTime = idWorker.obtainingTime();
|
|
||||||
goodsDO.setGoodsId((obtainingTime) + Long.toString(plateNo).substring(2));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plateGoodDOS != null && !plateGoodDOS.isEmpty()) {//存在板材
|
if (plateGoodDOS != null && !plateGoodDOS.isEmpty()) {//存在板材
|
||||||
@@ -757,7 +759,13 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
} else if (plateGoodDO != null) { // 存在板材
|
} else if (plateGoodDO != null) { // 存在板材
|
||||||
goodsDO.setGoodsId(plateGoodDO.getGoodsId());
|
goodsDO.setGoodsId(plateGoodDO.getGoodsId());
|
||||||
} else { // 不存在板材
|
} else { // 不存在板材
|
||||||
String goodsId = goodsDO.getGoodsId();
|
|
||||||
|
long plateNo = idWorker.nextId();
|
||||||
|
long obtainingTime = idWorker.obtainingTime();
|
||||||
|
|
||||||
|
String goodsId = (obtainingTime) + Long.toString(plateNo).substring(2);
|
||||||
|
goodsDO.setGoodsId(goodsId);
|
||||||
|
|
||||||
|
|
||||||
Long plateGoods = (Long) identifierGenerator.nextId(null);
|
Long plateGoods = (Long) identifierGenerator.nextId(null);
|
||||||
|
|
||||||
@@ -765,11 +773,11 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
.setId(plateGoods)
|
.setId(plateGoods)
|
||||||
.setGoodsId(goodsId);
|
.setGoodsId(goodsId);
|
||||||
// 判断是否存在raw_goods_id
|
// 判断是否存在raw_goods_id
|
||||||
if (goodsDO.getGoodsId() != null) {
|
// if (goodsDO.getGoodsId() != null) {
|
||||||
plateGoodDO.setGoodsId(goodsDO.getGoodsId());
|
// plateGoodDO.setGoodsId(goodsDO.getGoodsId());
|
||||||
} else {
|
// } else {
|
||||||
goodsDO.setGoodsId(plateGoodDO.getGoodsId());
|
// goodsDO.setGoodsId(plateGoodDO.getGoodsId());
|
||||||
}
|
// }
|
||||||
plateGoodLists.add(plateGoodDO);
|
plateGoodLists.add(plateGoodDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+69
-25
@@ -61,6 +61,9 @@ public class ApiTypeRealize {
|
|||||||
private static String PART_THICKNESS = "thickness";
|
private static String PART_THICKNESS = "thickness";
|
||||||
private static String PART_COLOR = "color";
|
private static String PART_COLOR = "color";
|
||||||
private static String PART_MATERIAL = "material";
|
private static String PART_MATERIAL = "material";
|
||||||
|
private static String PART_CATEGORY_ONE = "封边条";
|
||||||
|
private static String PART_CATEGORY_TWO = "五金";
|
||||||
|
private static String PART_CATEGORY_THREE = "组件";
|
||||||
/**
|
/**
|
||||||
* @param dataPlates: 板件生产信息 造型数据
|
* @param dataPlates: 板件生产信息 造型数据
|
||||||
* @param dataParts: 配件信息
|
* @param dataParts: 配件信息
|
||||||
@@ -93,7 +96,7 @@ public class ApiTypeRealize {
|
|||||||
|
|
||||||
|
|
||||||
// 商品信息数据 信息以全
|
// 商品信息数据 信息以全
|
||||||
Map<String, Object> goodsInfoChange = rawGoodsInfoChange(dataGoods, orderId, organId);
|
Map<String, Object> goodsInfoChange = rawGoodsInfoChange(dataGoods, orderId, organId, token);
|
||||||
Map<Long, RawGoodsDO> rawGoodsDOS = (Map<Long, RawGoodsDO>) goodsInfoChange.get(FieldConstants.RAW_GOODS);
|
Map<Long, RawGoodsDO> rawGoodsDOS = (Map<Long, RawGoodsDO>) goodsInfoChange.get(FieldConstants.RAW_GOODS);
|
||||||
Map<Long, GoodsDO> goodsDOS = (Map<Long, GoodsDO>) goodsInfoChange.get(FieldConstants.GOODS);
|
Map<Long, GoodsDO> goodsDOS = (Map<Long, GoodsDO>) goodsInfoChange.get(FieldConstants.GOODS);
|
||||||
|
|
||||||
@@ -163,6 +166,8 @@ public class ApiTypeRealize {
|
|||||||
map.put(FieldConstants.ITEM, itemsList);
|
map.put(FieldConstants.ITEM, itemsList);
|
||||||
if (bodyItemsPlates != null) {
|
if (bodyItemsPlates != null) {
|
||||||
map.put(FieldConstants.BODY, new ArrayList<>(bodyItemsPlates.values()));
|
map.put(FieldConstants.BODY, new ArrayList<>(bodyItemsPlates.values()));
|
||||||
|
} else {
|
||||||
|
map.put(FieldConstants.BODY, new ArrayList<>(bodyInfoChange.values())); // Map<Long, OrderBodyDO> bodyInfoChange
|
||||||
}
|
}
|
||||||
|
|
||||||
return map;
|
return map;
|
||||||
@@ -374,7 +379,8 @@ public class ApiTypeRealize {
|
|||||||
*/
|
*/
|
||||||
public Map<String, Object> rawGoodsInfoChange(JSONObject dataRawGoods,
|
public Map<String, Object> rawGoodsInfoChange(JSONObject dataRawGoods,
|
||||||
Long orderId,
|
Long orderId,
|
||||||
Long organId) {
|
Long organId,
|
||||||
|
String token) {
|
||||||
|
|
||||||
JSONArray goodsLists = dataRawGoods.getJSONArray(ProduceApiConstants.LIST);
|
JSONArray goodsLists = dataRawGoods.getJSONArray(ProduceApiConstants.LIST);
|
||||||
if (goodsLists == null || goodsLists.isEmpty()) {
|
if (goodsLists == null || goodsLists.isEmpty()) {
|
||||||
@@ -389,10 +395,17 @@ public class ApiTypeRealize {
|
|||||||
for (int i = 0; i < goodsLists.size(); i++) {
|
for (int i = 0; i < goodsLists.size(); i++) {
|
||||||
JSONObject goods = goodsLists.getJSONObject(i);
|
JSONObject goods = goodsLists.getJSONObject(i);
|
||||||
|
|
||||||
|
Long goodsId = goods.getLong(ProduceApiConstants.G_DOOR_ID);
|
||||||
|
String goodsSn = null;
|
||||||
|
if (goodsId != null) {
|
||||||
|
goodsSn = getGoodsSn(goods.getLong(ProduceApiConstants.G_DOOR_ID), token);
|
||||||
|
}
|
||||||
|
|
||||||
RawGoodsDO rawGoodsDO = RawGoodsDO.builder()
|
RawGoodsDO rawGoodsDO = RawGoodsDO.builder()
|
||||||
.id((Long) identifierGenerator.nextId(null))
|
.id((Long) identifierGenerator.nextId(null))
|
||||||
.orderId(orderId)
|
.orderId(orderId)
|
||||||
.rawGoodsId(goods.getString(ProduceApiConstants.G_DOOR_ID))
|
// .rawGoodsId(goods.getString(ProduceApiConstants.G_DOOR_ID))
|
||||||
|
.rawGoodsId(goodsSn)
|
||||||
.goodsName(goods.getString(ProduceApiConstants.G_GOODS_NAME))
|
.goodsName(goods.getString(ProduceApiConstants.G_GOODS_NAME))
|
||||||
.material(goods.getString(ProduceApiConstants.G_MATERIAL))
|
.material(goods.getString(ProduceApiConstants.G_MATERIAL))
|
||||||
.color(goods.getString(ProduceApiConstants.G_COLOR))
|
.color(goods.getString(ProduceApiConstants.G_COLOR))
|
||||||
@@ -408,7 +421,8 @@ public class ApiTypeRealize {
|
|||||||
.id((Long) identifierGenerator.nextId(null))
|
.id((Long) identifierGenerator.nextId(null))
|
||||||
.orderId(orderId)
|
.orderId(orderId)
|
||||||
.rawGoodsId(String.valueOf(rawGoodsDO.getId()))
|
.rawGoodsId(String.valueOf(rawGoodsDO.getId()))
|
||||||
.goodsId(goods.getString(ProduceApiConstants.G_DOOR_ID)) // 先填这个,后面改
|
// .goodsId(goods.getString(ProduceApiConstants.G_DOOR_ID)) // 先填这个,后面改
|
||||||
|
.goodsId(goodsSn)
|
||||||
.goodsName(goods.getString(ProduceApiConstants.G_GOODS_NAME))
|
.goodsName(goods.getString(ProduceApiConstants.G_GOODS_NAME))
|
||||||
.material(goods.getString(ProduceApiConstants.G_MATERIAL))
|
.material(goods.getString(ProduceApiConstants.G_MATERIAL))
|
||||||
.color(goods.getString(ProduceApiConstants.G_COLOR))
|
.color(goods.getString(ProduceApiConstants.G_COLOR))
|
||||||
@@ -489,9 +503,13 @@ public class ApiTypeRealize {
|
|||||||
private Map<String,Object> getPartsSize(JSONObject size, JSONObject spec) {
|
private Map<String,Object> getPartsSize(JSONObject size, JSONObject spec) {
|
||||||
Map<String,Object> map = new HashMap<>();
|
Map<String,Object> map = new HashMap<>();
|
||||||
if (size != null && !size.isEmpty()) {
|
if (size != null && !size.isEmpty()) {
|
||||||
map.put(PART_WIDTH, size.getInteger(ProduceApiConstants.PD_WIDTH));
|
map.put(PART_WIDTH, size.getDouble(ProduceApiConstants.PD_WIDTH));
|
||||||
map.put(PART_LENGTH, size.getInteger(ProduceApiConstants.PD_LENGTH));
|
map.put(PART_LENGTH, size.getDouble(ProduceApiConstants.PD_LENGTH));
|
||||||
map.put(PART_THICKNESS, size.getInteger(ProduceApiConstants.PD_THICKNESS));
|
map.put(PART_THICKNESS, size.getDouble(ProduceApiConstants.PD_THICKNESS));
|
||||||
|
} else {
|
||||||
|
map.put(PART_WIDTH, 0.0);
|
||||||
|
map.put(PART_LENGTH, 0.0);
|
||||||
|
map.put(PART_THICKNESS, 0.0);
|
||||||
}
|
}
|
||||||
if (spec != null && !spec.isEmpty()) {
|
if (spec != null && !spec.isEmpty()) {
|
||||||
map.put(PART_COLOR, spec.getString(ProduceApiConstants.PD_PARTS_SPEC_COLOR));
|
map.put(PART_COLOR, spec.getString(ProduceApiConstants.PD_PARTS_SPEC_COLOR));
|
||||||
@@ -532,15 +550,20 @@ public class ApiTypeRealize {
|
|||||||
Long organId,
|
Long organId,
|
||||||
String token) {
|
String token) {
|
||||||
|
|
||||||
if (value == null || value.isEmpty()) {
|
|
||||||
return Collections.emptyMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
Map<Long, OrderPartsDO> partsInfos = new HashMap<>();
|
Map<Long, OrderPartsDO> partsInfos = new HashMap<>();
|
||||||
Map<Long, OrderItemDO> partsItem = new HashMap<>();
|
Map<Long, OrderItemDO> partsItem = new HashMap<>();
|
||||||
Map<Long, OrderPartsRemark> remarks = new HashMap<>();
|
Map<Long, OrderPartsRemark> remarks = new HashMap<>();
|
||||||
|
|
||||||
|
map.put("partsInfos", partsInfos);
|
||||||
|
map.put("partsItems", partsItem);
|
||||||
|
map.put("remarks", remarks);
|
||||||
|
|
||||||
|
if (value == null || value.isEmpty()) {
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
JSONArray partsLists = value.getJSONArray(ProduceApiConstants.LIST);
|
JSONArray partsLists = value.getJSONArray(ProduceApiConstants.LIST);
|
||||||
for (int i = 0; i < partsLists.size(); i++) {
|
for (int i = 0; i < partsLists.size(); i++) {
|
||||||
@@ -553,10 +576,15 @@ public class ApiTypeRealize {
|
|||||||
// Long goodsId = goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)) != null
|
// Long goodsId = goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)) != null
|
||||||
// ? goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)).getId() : parts.getLong(ProduceApiConstants.PD_GOODS_ID);
|
// ? goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)).getId() : parts.getLong(ProduceApiConstants.PD_GOODS_ID);
|
||||||
Long goodsId = parts.getLong(ProduceApiConstants.PD_GOODS_ID);
|
Long goodsId = parts.getLong(ProduceApiConstants.PD_GOODS_ID);
|
||||||
|
|
||||||
String goodsSn = null;
|
String goodsSn = null;
|
||||||
if (goodsId != null) {
|
Long key = parts.getLong(ProduceApiConstants.PD_ITEM_NO);
|
||||||
|
// goods_id不为0时,要判断是否有存相同的goods_id,为0时,新增一条order_parts
|
||||||
|
if (goodsId != 0) {
|
||||||
goodsSn = getGoodsSn(parts.getLong(ProduceApiConstants.PD_GOODS_ID), token);
|
goodsSn = getGoodsSn(parts.getLong(ProduceApiConstants.PD_GOODS_ID), token);
|
||||||
|
key = goodsId;
|
||||||
}
|
}
|
||||||
|
|
||||||
OrderPartsDO partsInfo = OrderPartsDO.builder()
|
OrderPartsDO partsInfo = OrderPartsDO.builder()
|
||||||
.id(partsId)
|
.id(partsId)
|
||||||
.orderId(orderId)
|
.orderId(orderId)
|
||||||
@@ -579,8 +607,17 @@ public class ApiTypeRealize {
|
|||||||
.remark(parts.getString(ProduceApiConstants.PD_REMARK))
|
.remark(parts.getString(ProduceApiConstants.PD_REMARK))
|
||||||
.organId(organId)
|
.organId(organId)
|
||||||
.build();
|
.build();
|
||||||
remarks.put(parts.getLong(ProduceApiConstants.PD_ITEM_NO), partsRemarkChange(parts, orderId, partsId));
|
|
||||||
partsInfos.put(parts.getLong(ProduceApiConstants.PD_ITEM_NO), partsInfo);
|
// 主分类赋值
|
||||||
|
if (parts.getString(ProduceApiConstants.PD_OBJECT_TYPE).equals(PART_CATEGORY_ONE)) {
|
||||||
|
partsInfo.setCategory(PART_CATEGORY_ONE);
|
||||||
|
} else {
|
||||||
|
if (parts.getBoolean(ProduceApiConstants.PD_IS_COMPOSITE)) {
|
||||||
|
partsInfo.setCategory(PART_CATEGORY_THREE);
|
||||||
|
} else {
|
||||||
|
partsInfo.setCategory(PART_CATEGORY_TWO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// item 明细
|
// item 明细
|
||||||
OrderItemDO item = OrderItemDO.builder()
|
OrderItemDO item = OrderItemDO.builder()
|
||||||
@@ -597,12 +634,20 @@ public class ApiTypeRealize {
|
|||||||
.organId(organId)
|
.organId(organId)
|
||||||
.build();
|
.build();
|
||||||
partsItem.put(parts.getLong(ProduceApiConstants.PD_ITEM_NO), item);
|
partsItem.put(parts.getLong(ProduceApiConstants.PD_ITEM_NO), item);
|
||||||
|
|
||||||
|
if (partsInfos.get(goodsId) != null) { //有存,下一条
|
||||||
|
partsId = partsInfos.get(goodsId).getId();
|
||||||
|
partsItem.get(parts.getLong(ProduceApiConstants.PD_ITEM_NO)).setPartsId(partsId);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
remarks.put(key, partsRemarkChange(parts, orderId, partsId));
|
||||||
|
partsInfos.put(key, partsInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
map.put("partsInfos", partsInfos);
|
// map.put("partsInfos", partsInfos);
|
||||||
map.put("partsItems", partsItem);
|
// map.put("partsItems", partsItem);
|
||||||
map.put("remarks", remarks);
|
// map.put("remarks", remarks);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -853,13 +898,17 @@ public class ApiTypeRealize {
|
|||||||
JSONObject order = ordersArray.getJSONObject(i);
|
JSONObject order = ordersArray.getJSONObject(i);
|
||||||
// 获取材料信息
|
// 获取材料信息
|
||||||
JSONArray materialJson = order.getJSONArray(ProduceApiConstants.BPD_MATERIALS);
|
JSONArray materialJson = order.getJSONArray(ProduceApiConstants.BPD_MATERIALS);
|
||||||
if (materialJson != null && !materialJson.isEmpty()) {
|
if (materialJson == null || materialJson.isEmpty()) {
|
||||||
|
return plateDetails;
|
||||||
|
}
|
||||||
for (int j = 0; j < materialJson.size(); j++) {
|
for (int j = 0; j < materialJson.size(); j++) {
|
||||||
JSONObject material = materialJson.getJSONObject(j);
|
JSONObject material = materialJson.getJSONObject(j);
|
||||||
|
|
||||||
// 板件信息
|
// 板件信息
|
||||||
JSONArray blocks = material.getJSONArray(ProduceApiConstants.BPD_BLOCKS);
|
JSONArray blocks = material.getJSONArray(ProduceApiConstants.BPD_BLOCKS);
|
||||||
if (blocks != null && !blocks.isEmpty()) {
|
if (blocks == null || blocks.isEmpty()) {
|
||||||
|
return plateDetails;
|
||||||
|
}
|
||||||
for (int k = 0; k < blocks.size(); k++) {
|
for (int k = 0; k < blocks.size(); k++) {
|
||||||
JSONObject block = blocks.getJSONObject(k);// 每块板
|
JSONObject block = blocks.getJSONObject(k);// 每块板
|
||||||
|
|
||||||
@@ -910,15 +959,10 @@ public class ApiTypeRealize {
|
|||||||
}
|
}
|
||||||
plateDetails.put(block.getLong(ProduceApiConstants.BPD_BLOCK_NO), plateDetail);
|
plateDetails.put(block.getLong(ProduceApiConstants.BPD_BLOCK_NO), plateDetail);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// System.out.println("板块 " + plateDetails);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return plateDetails;
|
return plateDetails;
|
||||||
|
|||||||
+111
-24
@@ -42,12 +42,15 @@ public class ExcelTypeRealize {
|
|||||||
private SnowFlakeGenerator snowFlakeGenerator;
|
private SnowFlakeGenerator snowFlakeGenerator;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
SnowflakeIdWorker3rd idWorker;
|
private SnowflakeIdWorker3rd idWorker;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DictDataApi dictDataApi;
|
private DictDataApi dictDataApi;
|
||||||
|
|
||||||
final String NOT_ASSIGNED = "未命名";
|
final String NOT_ASSIGNED = "未命名";
|
||||||
|
final String PLATE = "plate";
|
||||||
|
final String PARTS = "parts";
|
||||||
|
|
||||||
|
|
||||||
// 数据转换 + 错误验证
|
// 数据转换 + 错误验证
|
||||||
public Map<String, Object> changeDate(List<OrderPlateImportExcelVO> excelVOS, Long orderId) {
|
public Map<String, Object> changeDate(List<OrderPlateImportExcelVO> excelVOS, Long orderId) {
|
||||||
@@ -73,23 +76,21 @@ public class ExcelTypeRealize {
|
|||||||
|
|
||||||
HashMap<String, List<OrderPlateImportExcelVO>> checkMap = classifyGoods(excelVOS);
|
HashMap<String, List<OrderPlateImportExcelVO>> checkMap = classifyGoods(excelVOS);
|
||||||
|
|
||||||
Map<String, List<OrderPlateImportExcelVO>> goodsIdMap = checkMap.get("plate").stream().collect(
|
Map<String, List<OrderPlateImportExcelVO>> goodsIdMap = checkMap.get(PLATE).stream().collect(
|
||||||
Collectors.groupingBy(
|
Collectors.groupingBy(
|
||||||
excelVO -> excelVO.getGoodsId() != null ? excelVO.getGoodsId() : " ",
|
excelVO -> excelVO.getGoodsId() != null ? excelVO.getGoodsId() : " ",
|
||||||
Collectors.toList()
|
Collectors.toList()
|
||||||
));
|
));
|
||||||
goodsIdMap.forEach((key, value) -> {
|
goodsIdMap.forEach((key, value) -> {
|
||||||
if (value.get(0).getGoodsId() == null) { // 没有商品编号的
|
if (key.equals(" ")) { // 没有商品编号的 value.get(0).getGoodsId() == null
|
||||||
// 将相同条件的元素归为一个集合
|
// 将相同条件的元素归为一个集合
|
||||||
Map<List<Object>, List<OrderPlateImportExcelVO>> goodsMap = value.stream()
|
Map<List<Object>, List<OrderPlateImportExcelVO>> goodsMap = value.stream()
|
||||||
.collect(Collectors.groupingBy(
|
.collect(Collectors.groupingBy(
|
||||||
p -> Arrays.asList(p.getGoodsName(),
|
p -> Arrays.asList(p.getGoodsName(),
|
||||||
p.getGoodsName(),
|
|
||||||
p.getThickness(),
|
|
||||||
p.getMaterial(),
|
p.getMaterial(),
|
||||||
|
p.getWave(), // 纹理
|
||||||
p.getColor(),
|
p.getColor(),
|
||||||
p.getSpec(),
|
p.getSpec(),
|
||||||
p.getWave(), // 纹理
|
|
||||||
p.getGoodsHeight(),
|
p.getGoodsHeight(),
|
||||||
p.getGoodsWidth(),
|
p.getGoodsWidth(),
|
||||||
p.getGoodsThickness(),
|
p.getGoodsThickness(),
|
||||||
@@ -131,6 +132,92 @@ public class ExcelTypeRealize {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 配件信息合集,添加生产单id,添加生产单配件设计端商品编码,配件信息写入order_parts
|
||||||
|
Map<String, List<OrderPlateImportExcelVO>> partsIdMap = checkMap.get(PARTS).stream().collect(
|
||||||
|
Collectors.groupingBy(
|
||||||
|
excelVO -> excelVO.getGoodsId() != null ? excelVO.getGoodsId() : " ",
|
||||||
|
Collectors.toList()
|
||||||
|
));
|
||||||
|
partsIdMap.forEach((key, value) -> {
|
||||||
|
if (key.equals(" ")) { // 没有商品编号的 value.get(0).getGoodsId() == null
|
||||||
|
// 将相同条件的元素归为一个集合
|
||||||
|
Map<List<Object>, List<OrderPlateImportExcelVO>> partsMap = value.stream()
|
||||||
|
.collect(Collectors.groupingBy(
|
||||||
|
p -> Arrays.asList(p.getGoodsName(),
|
||||||
|
p.getMaterial(),
|
||||||
|
p.getColor(),
|
||||||
|
p.getIsComposite(),
|
||||||
|
p.getCategory(),
|
||||||
|
p.getType(),
|
||||||
|
p.getFactory(),
|
||||||
|
p.getModel(),
|
||||||
|
p.getSpec(),
|
||||||
|
p.getGoodsHeight(),
|
||||||
|
p.getGoodsWidth(),
|
||||||
|
p.getGoodsThickness(),
|
||||||
|
p.getUnit(),
|
||||||
|
p.getBrand()),
|
||||||
|
Collectors.toList()
|
||||||
|
));
|
||||||
|
|
||||||
|
partsMap.forEach((partKey, partValue) -> {
|
||||||
|
// 配件信息集合,key不同,生成不同的id,写入order_parts表中
|
||||||
|
Long partId = (Long) snowFlakeGenerator.nextId(null);
|
||||||
|
OrderPlateImportExcelVO part = partValue.get(0);
|
||||||
|
OrderPartsDO orderPartsDO = OrderPartsDO.builder().id(partId).orderId(orderId)
|
||||||
|
.color(part.getColor()).category(part.getCategory()).type(part.getType())
|
||||||
|
.length(Double.valueOf(StringUtils.isEmpty(part.getGoodsHeight()) ? "0" : part.getGoodsHeight()))
|
||||||
|
.width(Double.valueOf(StringUtils.isEmpty(part.getGoodsWidth()) ? "0" : part.getGoodsWidth()))
|
||||||
|
.thickness(Double.valueOf(StringUtils.isEmpty(part.getGoodsThickness()) ? "0" : part.getGoodsThickness()))
|
||||||
|
.isComposite(Boolean.valueOf(part.getIsComposite()))
|
||||||
|
.name(part.getGoodsName()).material(part.getMaterial())
|
||||||
|
.model(part.getModel()).spec(part.getSpec()).brand(part.getBrand()).factory(part.getFactory())
|
||||||
|
.unit(part.getUnit()).price(0.0).isComposite(false).remark(remarkExtract(part.remarkJSON())).isComposite(false).build();
|
||||||
|
orderPartsDOS.add(orderPartsDO);
|
||||||
|
// 赋值给板件未对应前order_raw_goods的id
|
||||||
|
StringBuilder remark = new StringBuilder();
|
||||||
|
for (OrderPlateImportExcelVO reqVO : partValue) {
|
||||||
|
reqVO.setGoodId(partId);
|
||||||
|
String extractedRemark = remarkExtract(reqVO.remarkJSON());
|
||||||
|
if (extractedRemark != null) {
|
||||||
|
remark.append(extractedRemark);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 配件备注信息存储
|
||||||
|
OrderPartsRemark orderPartsRemark = OrderPartsRemark.builder().partsId(partId).orderId(orderId)
|
||||||
|
.remark(String.valueOf(remark)).build();
|
||||||
|
orderPartsRemarks.add(orderPartsRemark);
|
||||||
|
});
|
||||||
|
} else { // 商品编码有的
|
||||||
|
// 板材信息合集,添加生产单id,添加生产单板材设计端商品编码,板材信息写入order_raw_goods
|
||||||
|
Long partId = (Long) snowFlakeGenerator.nextId(null);
|
||||||
|
OrderPlateImportExcelVO part = value.get(0);
|
||||||
|
OrderPartsDO orderPartsDO = OrderPartsDO.builder().id(partId).orderId(orderId)
|
||||||
|
.color(part.getColor()).category(part.getCategory()).type(part.getType()).goodsId(part.getGoodsId())
|
||||||
|
.length(Double.valueOf(StringUtils.isEmpty(part.getGoodsHeight()) ? "0" : part.getGoodsHeight()))
|
||||||
|
.width(Double.valueOf(StringUtils.isEmpty(part.getGoodsWidth()) ? "0" : part.getGoodsWidth()))
|
||||||
|
.thickness(Double.valueOf(StringUtils.isEmpty(part.getGoodsThickness()) ? "0" : part.getGoodsThickness()))
|
||||||
|
.isComposite(Boolean.valueOf(part.getIsComposite()))
|
||||||
|
.name(part.getGoodsName()).material(part.getMaterial())
|
||||||
|
.model(part.getModel()).spec(part.getSpec()).brand(part.getBrand()).factory(part.getFactory())
|
||||||
|
.unit(part.getUnit()).price(0.0).isComposite(false).remark(remarkExtract(part.remarkJSON())).isComposite(false).build();
|
||||||
|
orderPartsDOS.add(orderPartsDO);
|
||||||
|
// 赋值给板件未对应前order_raw_goods的id
|
||||||
|
StringBuilder remark = new StringBuilder();
|
||||||
|
for (OrderPlateImportExcelVO reqVO : value) {
|
||||||
|
reqVO.setGoodId(partId);
|
||||||
|
String extractedRemark = remarkExtract(reqVO.remarkJSON());
|
||||||
|
if (extractedRemark != null) {
|
||||||
|
remark.append(extractedRemark);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 配件备注信息存储
|
||||||
|
OrderPartsRemark orderPartsRemark = OrderPartsRemark.builder().partsId(partId).orderId(orderId)
|
||||||
|
.remark(String.valueOf(remark)).build();
|
||||||
|
orderPartsRemarks.add(orderPartsRemark);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// 房间名称为条件进行分组
|
// 房间名称为条件进行分组
|
||||||
Map<String, List<OrderPlateImportExcelVO>> roomCollect = excelVOS.stream().collect(
|
Map<String, List<OrderPlateImportExcelVO>> roomCollect = excelVOS.stream().collect(
|
||||||
@@ -239,23 +326,23 @@ public class ExcelTypeRealize {
|
|||||||
} else {
|
} else {
|
||||||
//配件
|
//配件
|
||||||
|
|
||||||
Long partsId = (Long) snowFlakeGenerator.nextId(null);
|
// Long partsId = (Long) snowFlakeGenerator.nextId(null);
|
||||||
OrderPartsDO orderPartsDO = OrderPartsDO.builder().id(partsId).orderId(orderId).goodsId(combination.getGoodsId())
|
// OrderPartsDO orderPartsDO = OrderPartsDO.builder().id(partsId).orderId(orderId).goodsId(combination.getGoodsId())
|
||||||
.color(combination.getColor()).category(combination.getCategory()).type(combination.getType())
|
// .color(combination.getColor()).category(combination.getCategory()).type(combination.getType())
|
||||||
.length(Double.valueOf(StringUtils.isEmpty(combination.getGoodsHeight()) ? "0" : combination.getGoodsHeight()))
|
// .length(Double.valueOf(StringUtils.isEmpty(combination.getGoodsHeight()) ? "0" : combination.getGoodsHeight()))
|
||||||
.width(Double.valueOf(StringUtils.isEmpty(combination.getGoodsWidth()) ? "0" : combination.getGoodsWidth()))
|
// .width(Double.valueOf(StringUtils.isEmpty(combination.getGoodsWidth()) ? "0" : combination.getGoodsWidth()))
|
||||||
.thickness(Double.valueOf(StringUtils.isEmpty(combination.getGoodsThickness()) ? "0" : combination.getGoodsThickness()))
|
// .thickness(Double.valueOf(StringUtils.isEmpty(combination.getGoodsThickness()) ? "0" : combination.getGoodsThickness()))
|
||||||
.isComposite(Boolean.valueOf(combination.getIsComposite()))
|
// .isComposite(Boolean.valueOf(combination.getIsComposite()))
|
||||||
.name(combination.getGoodsName()).material(combination.getMaterial()).type(combination.getGoodType())
|
// .name(combination.getGoodsName()).material(combination.getMaterial()).type(combination.getGoodType())
|
||||||
.model(combination.getModel()).spec(combination.getSpec()).brand(combination.getBrand()).factory(combination.getFactory())
|
// .model(combination.getModel()).spec(combination.getSpec()).brand(combination.getBrand()).factory(combination.getFactory())
|
||||||
.unit(combination.getUnit()).price(0.0).isComposite(false).remark(remarkExtract(combination.remarkJSON())).isComposite(false).build();
|
// .unit(combination.getUnit()).price(0.0).isComposite(false).remark(remarkExtract(combination.remarkJSON())).isComposite(false).build();
|
||||||
orderPartsDOS.add(orderPartsDO);
|
// orderPartsDOS.add(orderPartsDO);
|
||||||
// 配件备注信息存储
|
// // 配件备注信息存储
|
||||||
OrderPartsRemark orderPartsRemark = OrderPartsRemark.builder().partsId(partsId).orderId(orderId)
|
// OrderPartsRemark orderPartsRemark = OrderPartsRemark.builder().partsId(partsId).orderId(orderId)
|
||||||
.remark(remarkExtract(combination.remarkJSON())).build();
|
// .remark(remarkExtract(combination.remarkJSON())).build();
|
||||||
orderPartsRemarks.add(orderPartsRemark);
|
// orderPartsRemarks.add(orderPartsRemark);
|
||||||
OrderItemDO orderItemDO = OrderItemDO.builder().orderId(orderId).type(OrderItemTypeEnum.PARTS_ITEM.getStatus())
|
OrderItemDO orderItemDO = OrderItemDO.builder().orderId(orderId).type(OrderItemTypeEnum.PARTS_ITEM.getStatus())
|
||||||
.roomId(roomName != " " ? roomId : null).bodyId(bodyName != " " ? bodyId : null).partsId(partsId).groupId(synthesisTypeName != " " ? groupId : null)
|
.roomId(roomName != " " ? roomId : null).bodyId(bodyName != " " ? bodyId : null).partsId(combination.getGoodId()).groupId(synthesisTypeName != " " ? groupId : null)
|
||||||
.num(Double.valueOf(combination.getGoodsNumber())).build();
|
.num(Double.valueOf(combination.getGoodsNumber())).build();
|
||||||
orderItemDOS.add(orderItemDO);
|
orderItemDOS.add(orderItemDO);
|
||||||
}
|
}
|
||||||
@@ -382,8 +469,8 @@ public class ExcelTypeRealize {
|
|||||||
partsLists.add(detail);
|
partsLists.add(detail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
map.put("plate", plateLists);
|
map.put(PLATE, plateLists);
|
||||||
map.put("parts", partsLists);
|
map.put(PARTS, partsLists);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -706,7 +706,7 @@ public class XMLUtil {
|
|||||||
// 板材数据格式验证
|
// 板材数据格式验证
|
||||||
public void checkPlates(List<PlateXmlVO> plateXmlVOList, AtomicBoolean flag) {
|
public void checkPlates(List<PlateXmlVO> plateXmlVOList, AtomicBoolean flag) {
|
||||||
for (PlateXmlVO plate : plateXmlVOList) {
|
for (PlateXmlVO plate : plateXmlVOList) {
|
||||||
isEmptyAndBack(plate::getItemCode, "板材名称", plate::setItemCode, flag);
|
isEmptyAndBack(plate::getName, "板材名称", plate::setName, flag);
|
||||||
isEmptyAndBack(plate::getMaterial, "板材材质", plate::setMaterial, flag);
|
isEmptyAndBack(plate::getMaterial, "板材材质", plate::setMaterial, flag);
|
||||||
|
|
||||||
// 纹理有效性判断
|
// 纹理有效性判断
|
||||||
|
|||||||
+52
-7
@@ -36,11 +36,12 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectPartsDetailByOrderId" resultType="com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO">
|
<select id="selectPartsDetailByOrderId" resultType="com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO">
|
||||||
SELECT DISTINCT i.order_id, p.id, p.model, p.spec, p.name,i.num, p.unit, p.brand, p.factory, p.remark,p.type,p.price,
|
SELECT i.order_id, p.id, p.model, p.spec, p.name, SUM(i.num) AS num, p.unit, p.brand, p.factory, p.remark,p.type,p.price,
|
||||||
p.is_composite,p.create_time
|
p.is_composite,p.create_time, p.color, p.category, p.length, p.width, p.thickness, p.material, p.goods_id
|
||||||
FROM order_item i
|
FROM order_item i
|
||||||
RIGHT JOIN `order_parts` p ON i.parts_id = p.id
|
RIGHT JOIN `order_parts` p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.parts_id = p.id
|
||||||
WHERE i.order_id = #{orderId} AND i.organ_id = #{organId} AND p.deleted = #{deleted}
|
RIGHT JOIN `order_body` ob ON i.organ_id = ob.organ_id AND i.order_id = ob.order_id AND i.body_id = ob.id
|
||||||
|
WHERE i.organ_id = #{organId} AND i.order_id = #{orderId} AND ob.deleted = #{deleted}
|
||||||
<if test="roomId != null and roomId.size() > 0">
|
<if test="roomId != null and roomId.size() > 0">
|
||||||
AND i.room_id IN
|
AND i.room_id IN
|
||||||
<foreach item="roomIdItem" collection="roomId" open="(" separator="," close=")">
|
<foreach item="roomIdItem" collection="roomId" open="(" separator="," close=")">
|
||||||
@@ -62,14 +63,36 @@
|
|||||||
<if test="name != null">
|
<if test="name != null">
|
||||||
AND p.name = #{name}
|
AND p.name = #{name}
|
||||||
</if>
|
</if>
|
||||||
|
GROUP BY
|
||||||
|
i.order_id,
|
||||||
|
p.id,
|
||||||
|
p.model,
|
||||||
|
p.spec,
|
||||||
|
p.name,
|
||||||
|
p.unit,
|
||||||
|
p.brand,
|
||||||
|
p.factory,
|
||||||
|
p.remark,
|
||||||
|
p.type,
|
||||||
|
p.price,
|
||||||
|
p.is_composite,
|
||||||
|
p.create_time
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectPartsByOrderId"
|
<select id="selectPartsByOrderId"
|
||||||
resultType="com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDetailRespVO">
|
resultType="com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDetailRespVO">
|
||||||
SELECT DISTINCT i.order_id, i.room_id, i.body_id, i.parts_id, p.`name` as part_name, i.num as plate_num, p.unit
|
SELECT DISTINCT i.order_id, i.room_id, i.body_id, i.parts_id, p.`name` as part_name, SUM(i.num) AS plate_num, p.unit
|
||||||
FROM `order_item` i
|
FROM `order_item` i
|
||||||
RIGHT JOIN `order_parts` p ON i.parts_id = p.id
|
RIGHT JOIN `order_parts` p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.parts_id = p.id
|
||||||
WHERE i.order_id = #{orderId} AND i.organ_id = #{organId} AND p.deleted = #{deleted}
|
RIGHT JOIN `order_body` ob ON i.organ_id = ob.organ_id AND i.order_id = ob.order_id AND i.body_id = ob.id
|
||||||
|
WHERE i.organ_id = #{organId} AND i.order_id = #{orderId} AND ob.deleted = #{deleted}
|
||||||
|
GROUP BY
|
||||||
|
i.order_id,
|
||||||
|
i.room_id,
|
||||||
|
i.body_id,
|
||||||
|
i.parts_id,
|
||||||
|
p.name,
|
||||||
|
p.unit
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
@@ -278,4 +301,26 @@
|
|||||||
g.id, g.order_id, g.brand, g.goods_id, g.goods_name, g.material, g.texture, g.color, g.color_black, g.width, g.height, g.thickness, g.remark, g.spec;
|
g.id, g.order_id, g.brand, g.goods_id, g.goods_name, g.material, g.texture, g.color, g.color_black, g.width, g.height, g.thickness, g.remark, g.spec;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="countPartsNotId" resultType="java.lang.Integer">
|
||||||
|
|
||||||
|
SELECT COUNT(i.id)
|
||||||
|
FROM order_item i
|
||||||
|
LEFT JOIN order_body ob
|
||||||
|
ON i.organ_id = ob.organ_id
|
||||||
|
AND i.order_id = ob.order_id
|
||||||
|
AND i.body_id = ob.id
|
||||||
|
WHERE i.organ_id = #{organId}
|
||||||
|
AND i.order_id = #{orderId}
|
||||||
|
|
||||||
|
<if test="bodyId != null and bodyId.size() > 0">
|
||||||
|
AND i.body_id NOT IN
|
||||||
|
<foreach item="bodyIdItem" collection="bodyId" open="(" separator="," close=")">
|
||||||
|
#{bodyIdItem}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
|
||||||
|
AND ob.deleted = #{deleted}
|
||||||
|
AND i.parts_id = #{goodsId};
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user