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 APP_TOKEN_ERROR = new ErrorCode(1_002_029_006, "token获取失败");
ErrorCode PLATE_DATA_ERROR = new ErrorCode(1_002_029_006, "板材数据获取错误"); ErrorCode PLATE_DATA_ERROR = new ErrorCode(1_002_029_006, "板材数据获取错误");
ErrorCode PARTS_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) @RequestMapping(value = "/Api-erpOrders-partsList",method = RequestMethod.POST)
JSONObject getApiOrderPartsMessage(@RequestParam("token") String token, @RequestBody JSONObject json); 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"); JSONObject value = apiOrderService.getApiOrderPartsMessage(token, jsonParts).getJSONObject("value");
mergeJSONObjects(dataParts, 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); System.out.println(plateDetails);
return null; 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 roomsName; //房间名称
private String roomNo; // 房间号
private String bodyName; //柜体名 private String bodyName; //柜体名
private String bodyNo; // 柜体号 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.JSONArray;
import com.alibaba.fastjson.JSONObject; 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.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
import com.cf.imes.module.executor.util.deviseData.dataTwo.*; 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.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
@@ -19,10 +24,14 @@ import java.util.stream.Collectors;
/** /**
* 实现数据格式转换 * 实现数据格式转换
*/ */
@Service @Slf4j
@Validated @Component
public class ApiTypeChangeRealize { public class ApiTypeChangeRealize {
public <T> List<?> apiPlateDataChange(JSONObject dataPlates, JSONObject dataParts){
@Resource
private IdentifierGenerator identifierGenerator;
public <T> List<?> apiPlateDataChange(JSONObject dataPlates, JSONObject dataParts, JSONObject dataBody) {
// 配件数据分类 // 配件数据分类
List<PartsInfo> partsInfos = partsInfoChange(dataParts); List<PartsInfo> partsInfos = partsInfoChange(dataParts);
@@ -31,16 +40,52 @@ public class ApiTypeChangeRealize{
partsInfo -> partsInfo.getBodyNo() != null ? partsInfo.getBodyNo() : " ", partsInfo -> partsInfo.getBodyNo() != null ? partsInfo.getBodyNo() : " ",
Collectors.toList() 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) { for (PlateDetail plateDetail : plateDetails) {
if (partsMap.get(plateDetail.getBodyNo()) != null) { if (partsMap.get(plateDetail.getBodyNo()) != null) {
plateDetail.setPartsInfos(partsMap.get(plateDetail.getBodyNo())); 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; return plateDetails;
} }
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) { public OrderDO orderInfoChange(JSONObject dataPlates) {
List<PlateDetail> plateDetails = new ArrayList<>(); List<PlateDetail> plateDetails = new ArrayList<>();
@@ -55,6 +100,7 @@ public class ApiTypeChangeRealize{
LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter); LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter);
OrderDO orderDO = OrderDO.builder() OrderDO orderDO = OrderDO.builder()
.id(identifierGenerator.nextId(null).longValue())
.parentNo(0L) .parentNo(0L)
.orderType(true) .orderType(true)
.orderSort(0) .orderSort(0)
@@ -73,6 +119,7 @@ public class ApiTypeChangeRealize{
} }
return null; return null;
} }
// 板材数据转换 // 板材数据转换
public List<PlateDetail> platesInfoChange(JSONObject dataPlates) { public List<PlateDetail> platesInfoChange(JSONObject dataPlates) {
List<PlateDetail> plateDetails = new ArrayList<>(); List<PlateDetail> plateDetails = new ArrayList<>();
@@ -82,13 +129,24 @@ public class ApiTypeChangeRealize{
// 如果 Orders 数组不为空,则获取第一个订单对象 // 如果 Orders 数组不为空,则获取第一个订单对象
if (ordersArray != null && !ordersArray.isEmpty()) { if (ordersArray != null && !ordersArray.isEmpty()) {
// 获取生产单信息 // 获取生产单信息
List<RawGoodsDO> rawGoodsDOS = new ArrayList<>();
for (int i = 0; i < ordersArray.size(); i++) { for (int i = 0; i < ordersArray.size(); i++) {
JSONObject order = ordersArray.getJSONObject(i); JSONObject order = ordersArray.getJSONObject(i);
// 获取材料信息 // 获取材料信息
if (order.getJSONArray("Materials") != null && !order.getJSONArray("Materials").isEmpty()) { if (order.getJSONArray("Materials") != null && !order.getJSONArray("Materials").isEmpty()) {
for (int j = 0; j < order.getJSONArray("Materials").size(); j++) { for (int j = 0; j < order.getJSONArray("Materials").size(); j++) {
JSONObject material = order.getJSONArray("Materials").getJSONObject(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()) { if (material.getJSONArray("Blocks") != null && !material.getJSONArray("Blocks").isEmpty()) {
for (int k = 0; k < material.getJSONArray("Blocks").size(); k++) { for (int k = 0; k < material.getJSONArray("Blocks").size(); k++) {
@@ -46,11 +46,17 @@ public class PlateServiceImpl implements PlateService {
@Override @Override
public Long createPlate(PlateSaveReqVO createReqVO) { public Long createPlate(PlateSaveReqVO createReqVO) {
PlateDO plate = BeanUtils.toBean(createReqVO, PlateDO.class); PlateDO plate = BeanUtils.toBean(createReqVO, PlateDO.class);
if (createReqVO.getOrganId() == null && createReqVO.getOrganId() == 0 ){ if (createReqVO.getOrganId() != null && createReqVO.getOrganId() != 0 ){
validateOrganExists(createReqVO.getOrganId()); validateOrganExists(createReqVO.getOrganId());
validateGoodExists(createReqVO.getGoodsId(), createReqVO.getOrganId()); validateGoodExists(createReqVO.getGoodsId(), createReqVO.getOrganId());
plate.setOrganId(OrganContextHolder.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未传输 plateMapper.insert(plate);// 组织id未传输
// 返回 // 返回
return plate.getId(); return plate.getId();
@@ -179,6 +179,7 @@ public interface ErrorCodeConstants {
//=========== 工序信息 1-002-028-000 ============ //=========== 工序信息 1-002-028-000 ============
ErrorCode PROCESS_NOT_EXISTS = new ErrorCode(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_ID_IS_NULL = new ErrorCode(1_002_028_000, "工序ID填写错误不存在");
ErrorCode PROCESS_STATUS_DISABLE = new ErrorCode(1_002_028_000, "工序状态以已禁用"); 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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 工序组表 process_group Mapper * 工序组表 process_group Mapper
* *
@@ -32,4 +34,10 @@ public interface ProcessGroupMapper extends BaseMapperX<ProcessGroupDO> {
ProcessDO selectOneById(@Param("id") Long id, @Param("organId") Long organId); ProcessDO selectOneById(@Param("id") Long id, @Param("organId") Long organId);
int updateIsDefault(@Param("processGroupId") Long processGroupId, @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); 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>() 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.process.*;
import com.cf.imes.module.system.controller.admin.process.vo.processUser.ProcessAndUserSaveReqVO; 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.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.enums.ErrorCodeConstants;
import com.cf.imes.module.system.service.user.AdminUserService; import com.cf.imes.module.system.service.user.AdminUserService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -41,6 +42,9 @@ public class ProcessServiceImpl implements ProcessService {
@Resource @Resource
private ProcessMapper processMapper; private ProcessMapper processMapper;
@Resource
private ProcessGroupMapper processGroupMapper;
@Resource @Resource
private ProcessUserService processUserService; private ProcessUserService processUserService;
@@ -84,7 +88,9 @@ public class ProcessServiceImpl implements ProcessService {
// 校验存在 // 校验存在
validateProcessExists(updateReqVO.getId()); validateProcessExists(updateReqVO.getId());
if (updateReqVO.getIsEnabled()) {//为禁用 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); ProcessDO updateProcess = BeanUtils.toBean(updateReqVO, ProcessDO.class);
@@ -111,11 +117,23 @@ public class ProcessServiceImpl implements ProcessService {
} }
processMapper.updateById(updateProcess); 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 @Override
public void deleteProcess(Long id) { public void deleteProcess(Long id) {
// 校验存在 // 校验存在
validateProcessExists(id); validateProcessExists(id);
if (isProcessUsed(String.valueOf(id))){
throw exception(PROCESS_IS_ENABLED);
}
// 删除 // 删除
processMapper.deleteById(id); processMapper.deleteById(id);
@@ -163,7 +181,9 @@ public class ProcessServiceImpl implements ProcessService {
@Override @Override
public List<ProcessDO> getAllProcess() { public List<ProcessDO> getAllProcess() {
List<ProcessDO> processDOList = processMapper.selectAll(); // 获取组织id
Long organId = OrganContextHolder.getOrganId();
List<ProcessDO> processDOList = processMapper.selectAll(organId);
return processDOList; return processDOList;
} }
@@ -67,4 +67,9 @@
from process p from process p
where p.id = #{id} and p.organ_id = #{organId} and p.deleted = 0 where p.id = #{id} and p.organ_id = #{organId} and p.deleted = 0
</select> </select>
<delete id="deleteById" parameterType="java.lang.Long">
DELETE FROM process
WHERE id = #{id};
</delete>
</mapper> </mapper>