bug修改

This commit is contained in:
lym
2024-04-28 20:02:19 +08:00
parent e7c74dbb86
commit d3f84b08f1
12 changed files with 186 additions and 37 deletions
@@ -53,4 +53,5 @@ public interface ErrorCodeConstants {
ErrorCode APP_TOKEN_ERROR = new ErrorCode(1_002_029_006, "token获取失败");
ErrorCode PLATE_DATA_ERROR = new ErrorCode(1_002_029_006, "板材数据获取错误");
ErrorCode PARTS_DATA_ERROR = new ErrorCode(1_002_029_006, "配件数据获取错误");
ErrorCode BODY_DATA_ERROR = new ErrorCode(1_002_029_006, "柜体数据获取错误");
}
@@ -17,4 +17,8 @@ public interface ApiOrderService {
@RequestMapping(value = "/Api-erpOrders-partsList",method = RequestMethod.POST)
JSONObject getApiOrderPartsMessage(@RequestParam("token") String token, @RequestBody JSONObject json);
@RequestMapping(value = "/Api-erpOrders-boxsList",method = RequestMethod.POST)
JSONObject getApiOrderBodyMessage(@RequestParam("token") String token, @RequestBody JSONObject json);
}
@@ -414,8 +414,23 @@ public class OrderServiceImpl implements OrderService {
JSONObject value = apiOrderService.getApiOrderPartsMessage(token, jsonParts).getJSONObject("value");
mergeJSONObjects(dataParts, value);
}
// 柜体信息转换
JSONObject jsonBody = new JSONObject();
jsonBody.put("curr_page", 1);
jsonBody.put("page_count", PARTS_PAGE_MAX);
jsonBody.put("order_no", orderNo);
JSONObject body = apiOrderService.getApiOrderBodyMessage(token, jsonBody);
if (!body.getString("err_code").equals("0")) {
throw exception(BODY_DATA_ERROR);
}
JSONObject dataBody = new JSONObject();
for (int i = 1; i <= dataBody.getJSONObject("value").getInteger("PageCount"); i++) {
jsonParts.put("curr_page", i);
JSONObject value = apiOrderService.getApiOrderPartsMessage(token, jsonBody).getJSONObject("value");
mergeJSONObjects(dataBody, value);
}
// 转换
List<PlateDetail> plateDetails = (List<PlateDetail>) apiTypeChangeRealize.apiPlateDataChange(dataPlates.getJSONObject("value"),dataParts);
List<PlateDetail> plateDetails = (List<PlateDetail>) apiTypeChangeRealize.apiPlateDataChange(dataPlates.getJSONObject("value"),dataParts,dataBody);
System.out.println(plateDetails);
return null;
}
@@ -0,0 +1,27 @@
package com.cf.imes.module.executor.util.deviseData.dataTwo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 柜体基本信息
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BodyInfo {
// 板件所属信息
private String roomsName; //房间名称
private String roomNo; // 房间号
private String bodyName; //柜体名
private String bodyNo; // 柜体号
// 柜体 长 宽 深
private Double width;
private Double height;
private Double depth;
}
@@ -31,6 +31,7 @@ public class PlateDetail {
// 板件所属信息
private String roomsName; //房间名称
private String roomNo; // 房间号
private String bodyName; //柜体名
private String bodyNo; // 柜体号
// 柜体 长 宽 深
@@ -2,11 +2,16 @@ package com.cf.imes.module.executor.util.fileConversion.admin.api.webcad;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
import com.cf.imes.module.executor.util.deviseData.dataTwo.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
@@ -19,10 +24,14 @@ import java.util.stream.Collectors;
/**
* 实现数据格式转换
*/
@Service
@Validated
public class ApiTypeChangeRealize{
public <T> List<?> apiPlateDataChange(JSONObject dataPlates, JSONObject dataParts){
@Slf4j
@Component
public class ApiTypeChangeRealize {
@Resource
private IdentifierGenerator identifierGenerator;
public <T> List<?> apiPlateDataChange(JSONObject dataPlates, JSONObject dataParts, JSONObject dataBody) {
// 配件数据分类
List<PartsInfo> partsInfos = partsInfoChange(dataParts);
@@ -31,18 +40,54 @@ public class ApiTypeChangeRealize{
partsInfo -> partsInfo.getBodyNo() != null ? partsInfo.getBodyNo() : " ",
Collectors.toList()
));
// 柜体信息
List<BodyInfo> bodyInfos = bodyInfoChange(dataBody);
Map<String, List<BodyInfo>> bodyMap = bodyInfos.stream()
.collect(Collectors.groupingBy(
bodyInfo -> bodyInfo.getBodyNo() != null ? bodyInfo.getBodyNo() : " ",
Collectors.toList()
));
// 放入板材
List<PlateDetail> plateDetails = platesInfoChange(dataPlates);
List<PlateDetail> plateDetails = platesInfoChange(dataPlates,);
for (PlateDetail plateDetail : plateDetails) {
if (partsMap.get(plateDetail.getBodyNo()) != null){
if (partsMap.get(plateDetail.getBodyNo()) != null) {
plateDetail.setPartsInfos(partsMap.get(plateDetail.getBodyNo()));
}
if (bodyMap.get(plateDetail.getBodyNo()) != null) {
BodyInfo bodyInfo = bodyMap.get(plateDetail.getBodyNo()).get(0);
plateDetail.setRoomsName(bodyInfo.getRoomsName()).setRoomNo(bodyInfo.getRoomNo())
.setBodyName(bodyInfo.getBodyName()).setBodyNo(bodyInfo.getBodyNo())
.setWidth(bodyInfo.getWidth()).setHeight(bodyInfo.getHeight()).setDepth(bodyInfo.getDepth());
}
}
// 生产单信息获取
OrderDO orderDO = orderInfoChange(dataPlates);
Long orderId = orderDO.getId();// 生产单id
return plateDetails;
}
// 生产单信息获取
public OrderDO orderInfoChange(JSONObject dataPlates){
private List<BodyInfo> bodyInfoChange(JSONObject dataBody) {
List<BodyInfo> bodyInfos = new ArrayList<>();
dataBody.getJSONArray("List").forEach(item -> {
JSONObject body = (JSONObject) item;
BodyInfo bodyInfo = BodyInfo.builder()
.roomsName(body.getString("Room"))
.roomNo(body.getString("RoomID"))
.bodyName(body.getString("Name"))
.bodyNo(body.getString("BoxID"))
.width(body.getDouble("Width"))
.height(body.getDouble("Height"))
.depth(body.getDouble("Depth"))
.build();
bodyInfos.add(bodyInfo);
});
return bodyInfos;
}
// 生产单信息获取
public OrderDO orderInfoChange(JSONObject dataPlates) {
List<PlateDetail> plateDetails = new ArrayList<>();
// 获取 Orders 字段对应的数组
JSONObject order = dataPlates.getJSONObject("Orders");
@@ -50,31 +95,33 @@ public class ApiTypeChangeRealize{
// 如果 Orders 数组不为空,则获取第一个订单对象
if (order != null && !order.isEmpty()) {
// 获取生产单信息
// 使用 DateTimeFormatter 解析日期字符串
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter);
// 使用 DateTimeFormatter 解析日期字符串
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter);
OrderDO orderDO = OrderDO.builder()
.parentNo(0L)
.orderType(true)
.orderSort(0)
.dataType(1)
.status(0)
.customOrderNo(order.getString("OrderNo"))
.customer(order.getString("Consigee"))
.address(order.getString("ConsigeeAddress"))
.phoneNumber(order.getString("ConsigeePhone"))
.dealer(order.getString("CustomName"))
.salesman(order.getString("SalePerson"))
.remark(order.getString("Remark"))
.deliveryDate(deliveryDate.atStartOfDay())
.build();
return orderDO;
OrderDO orderDO = OrderDO.builder()
.id(identifierGenerator.nextId(null).longValue())
.parentNo(0L)
.orderType(true)
.orderSort(0)
.dataType(1)
.status(0)
.customOrderNo(order.getString("OrderNo"))
.customer(order.getString("Consigee"))
.address(order.getString("ConsigeeAddress"))
.phoneNumber(order.getString("ConsigeePhone"))
.dealer(order.getString("CustomName"))
.salesman(order.getString("SalePerson"))
.remark(order.getString("Remark"))
.deliveryDate(deliveryDate.atStartOfDay())
.build();
return orderDO;
}
return null;
}
// 板材数据转换
public List<PlateDetail> platesInfoChange(JSONObject dataPlates){
// 板材数据转换
public List<PlateDetail> platesInfoChange(JSONObject dataPlates) {
List<PlateDetail> plateDetails = new ArrayList<>();
// 获取 Orders 字段对应的数组
JSONArray ordersArray = dataPlates.getJSONArray("Orders");
@@ -82,13 +129,24 @@ public class ApiTypeChangeRealize{
// 如果 Orders 数组不为空,则获取第一个订单对象
if (ordersArray != null && !ordersArray.isEmpty()) {
// 获取生产单信息
List<RawGoodsDO> rawGoodsDOS = new ArrayList<>();
for (int i = 0; i < ordersArray.size(); i++) {
JSONObject order = ordersArray.getJSONObject(i);
// 获取材料信息
if (order.getJSONArray("Materials") != null && !order.getJSONArray("Materials").isEmpty()) {
for (int j = 0; j < order.getJSONArray("Materials").size(); j++) {
JSONObject material = order.getJSONArray("Materials").getJSONObject(j);
// rawGoodsDOS.add(RawGoodsDO.builder()
// .id(identifierGenerator.nextId(null).longValue())
// .orderId(organId)
// .goodsName(material.getString("MaterialName"))
// .material(material.getString("MaterialName"))
// .color(material.getString("Color"))
// .brand(material.getString("Brand"))
// .price(material.getDouble("Price"))
// .spec(material.getString("Spec"))
// .unit(material.getString("Unit"))
// .build());
// 板件信息
if (material.getJSONArray("Blocks") != null && !material.getJSONArray("Blocks").isEmpty()) {
for (int k = 0; k < material.getJSONArray("Blocks").size(); k++) {
@@ -46,11 +46,17 @@ public class PlateServiceImpl implements PlateService {
@Override
public Long createPlate(PlateSaveReqVO createReqVO) {
PlateDO plate = BeanUtils.toBean(createReqVO, PlateDO.class);
if (createReqVO.getOrganId() == null && createReqVO.getOrganId() == 0 ){
if (createReqVO.getOrganId() != null && createReqVO.getOrganId() != 0 ){
validateOrganExists(createReqVO.getOrganId());
validateGoodExists(createReqVO.getGoodsId(), createReqVO.getOrganId());
plate.setOrganId(OrganContextHolder.getOrganId());
}
// 判断板材是否存在
PlateDO existPlate = plateMapper.selectByGoodID(createReqVO.getGoodsId(), OrganContextHolder.getOrganId());
System.out.println(" existPlate " + existPlate);
if (existPlate != null){
throw exception(ErrorCodeConstants.PLATE_EXISTS);
}
plateMapper.insert(plate);// 组织id未传输
// 返回
return plate.getId();
@@ -179,6 +179,7 @@ public interface ErrorCodeConstants {
//=========== 工序信息 1-002-028-000 ============
ErrorCode PROCESS_NOT_EXISTS = new ErrorCode(1_002_028_000, "工序不存在");
ErrorCode PROCESS_IS_ENABLED = new ErrorCode(1_002_028_000, "工序以启用,禁止关闭");
ErrorCode PROCESS_ID_IS_NULL = new ErrorCode(1_002_028_000, "工序ID填写错误不存在");
ErrorCode PROCESS_STATUS_DISABLE = new ErrorCode(1_002_028_000, "工序状态以已禁用");
@@ -9,6 +9,8 @@ import com.cf.imes.module.system.dal.dataobject.process.ProcessGroupDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 工序组表 process_group Mapper
*
@@ -32,4 +34,10 @@ public interface ProcessGroupMapper extends BaseMapperX<ProcessGroupDO> {
ProcessDO selectOneById(@Param("id") Long id, @Param("organId") Long organId);
int updateIsDefault(@Param("processGroupId") Long processGroupId, @Param("organId") Long organId);
// 模糊匹配items
default List<ProcessGroupDO> selectListByItems(@Param("items") String items) {
return selectList(new LambdaQueryWrapperX<ProcessGroupDO>()
.likeIfPresent(ProcessGroupDO::getItems, items));
}
}
@@ -42,9 +42,12 @@ public interface ProcessMapper extends BaseMapperX<ProcessDO> {
ProcessDO selectOneById(@Param("id") Long id, @Param("organId") Long organId);
default List<ProcessDO> selectAll() {
default List<ProcessDO> selectAll(Long organId) {
return selectList(new LambdaQueryWrapperX<ProcessDO>()
.orderByDesc(ProcessDO::getId));
.orderByDesc(ProcessDO::getId)
.eqIfPresent(ProcessDO::getOrganId, organId)
.eqIfPresent(ProcessDO::getIsEnabled, true));
}
int deleteById(@Param("id") Long id);
}
@@ -7,6 +7,7 @@ import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.system.controller.admin.process.vo.process.*;
import com.cf.imes.module.system.controller.admin.process.vo.processUser.ProcessAndUserSaveReqVO;
import com.cf.imes.module.system.dal.dataobject.process.ProcessUserDO;
import com.cf.imes.module.system.dal.mysql.process.ProcessGroupMapper;
import com.cf.imes.module.system.enums.ErrorCodeConstants;
import com.cf.imes.module.system.service.user.AdminUserService;
import org.springframework.stereotype.Service;
@@ -41,6 +42,9 @@ public class ProcessServiceImpl implements ProcessService {
@Resource
private ProcessMapper processMapper;
@Resource
private ProcessGroupMapper processGroupMapper;
@Resource
private ProcessUserService processUserService;
@@ -84,7 +88,9 @@ public class ProcessServiceImpl implements ProcessService {
// 校验存在
validateProcessExists(updateReqVO.getId());
if (updateReqVO.getIsEnabled()) {//为禁用
throw exception(PROCESS_STATUS_DISABLE);
if (isProcessUsed(String.valueOf(updateReqVO.getId()))){
throw exception(PROCESS_IS_ENABLED);
}
}
ProcessDO updateProcess = BeanUtils.toBean(updateReqVO, ProcessDO.class);
@@ -111,11 +117,23 @@ public class ProcessServiceImpl implements ProcessService {
}
processMapper.updateById(updateProcess);
}
// 判断此工序是否已在工序组中使用
public boolean isProcessUsed(String items) {
System.out.println("processGroupMapper.selectListByItems(items) " + processGroupMapper.selectListByItems(items));
System.out.println(processGroupMapper.selectListByItems(items) != null);
System.out.println(processGroupMapper.selectListByItems(items).size());
if (processGroupMapper.selectListByItems(items) != null)
return true;
return false;
}
@Override
public void deleteProcess(Long id) {
// 校验存在
validateProcessExists(id);
if (isProcessUsed(String.valueOf(id))){
throw exception(PROCESS_IS_ENABLED);
}
// 删除
processMapper.deleteById(id);
@@ -163,7 +181,9 @@ public class ProcessServiceImpl implements ProcessService {
@Override
public List<ProcessDO> getAllProcess() {
List<ProcessDO> processDOList = processMapper.selectAll();
// 获取组织id
Long organId = OrganContextHolder.getOrganId();
List<ProcessDO> processDOList = processMapper.selectAll(organId);
return processDOList;
}
@@ -67,4 +67,9 @@
from process p
where p.id = #{id} and p.organ_id = #{organId} and p.deleted = 0
</select>
<delete id="deleteById" parameterType="java.lang.Long">
DELETE FROM process
WHERE id = #{id};
</delete>
</mapper>