禅道438,395Bug修改,未排单查询条件补全

This commit is contained in:
liuzhaotian
2024-09-03 15:27:04 +08:00
parent d7af73a305
commit 954ad9b75a
11 changed files with 235 additions and 183 deletions
@@ -217,7 +217,9 @@ public interface ErrorCodeConstants {
ErrorCode THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS = new ErrorCode(1_002_029_008, "当前机台配置的模板中,该品牌已存在,请重新输入品牌名称");
ErrorCode THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST = new ErrorCode(1_002_029_009, "该型号的机台不存在,请进行配置");
ErrorCode THE_CURRENT_BRAND = new ErrorCode(1_002_029_010, "品牌ID错误,或品牌不存在");
ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前模板创建的机台数量已达到最大,无法继续创建");
ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前模板创建的机台数量已达到最大,无法继续创建");
ErrorCode MACHINE_NAME_ERROR = new ErrorCode(1_002_029_012, "当前机台名称已存在,请重新输入机台名称");
ErrorCode MACHINETEMPLATE_NAME_ERROR = new ErrorCode(1_002_029_013, "当前机台模板的名称已存在,请重新输入机台模板名称");
// ========== 标签模板 1-002-300-000 ==========
ErrorCode LABEL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_300_000, "标签模板不存在");
@@ -1,5 +1,8 @@
package com.cf.imes.module.system.controller.admin.machine;
import com.cf.imes.framework.common.pojo.CommonResult;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.es.core.valid.CreateGroup;
import com.cf.imes.framework.es.core.valid.UpdateGroup;
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
@@ -8,21 +11,14 @@ import com.cf.imes.module.system.controller.admin.machine.vo.*;
import com.cf.imes.module.system.dal.dataobject.machine.MachineDO;
import com.cf.imes.module.system.service.machine.MachineService;
import com.cf.imes.module.system.service.machine.MachineTemplateService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.pojo.CommonResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
@@ -128,6 +124,12 @@ public class MachineController {
}
@GetMapping("getMachineModelAll")
@Operation(summary = "获得机台类型下所有机台的型号")
//@PreAuthorize("@ss.hasPermission('machine::query')")
public CommonResult<List<MachineSimpleRespVO>> getMachineModelAll(@RequestParam Integer type) {
return success(machineService.getMachineModelAll(type));
}
}
@@ -1,16 +1,14 @@
package com.cf.imes.module.system.dal.mysql.machine;
import java.util.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.module.system.controller.admin.machine.vo.*;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.system.controller.admin.machine.vo.MachinePageReqVO;
import com.cf.imes.module.system.dal.dataobject.machine.MachineDO;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
@@ -31,11 +29,6 @@ public interface MachineMapper extends BaseMapperX<MachineDO> {
.orderByDesc(MachineDO::getCreateTime));
}
Page<OrganMachineResp> selectOrganMachinePage(@Param("page") Page<OrganMachineResp> respPage, @Param("vo") OrganMachinePage page);
List<OrganMachineVO> selectOrganMachineList(Map<String, Object> map);
OrganMachineResp selectOrganMachine(Long organId);
default PageResult<MachineDO> selectPage(MachinePageReqVO pageParam, Collection<Long> ids) {
return selectPage(pageParam, new LambdaQueryWrapperX<MachineDO>()
@@ -44,4 +37,40 @@ public interface MachineMapper extends BaseMapperX<MachineDO> {
.betweenIfPresent(MachineDO::getCreateTime, pageParam.getCreateTime())
.orderByDesc(MachineDO::getCreateTime));
};
default List<MachineDO> selectByOrganId(Integer machineType,Long organId) {
return selectList(new LambdaQueryWrapperX<MachineDO>()
.eq(MachineDO::getOrganId,organId)
.eq(MachineDO::getDeleted,false)
.eq(MachineDO::getMachineType,machineType)
.select(MachineDO::getId));
}
default MachineDO selectMachine(String name,Integer machineType,Long organId) {
return selectOne(new LambdaQueryWrapperX<MachineDO>()
.eq(MachineDO::getOrganId,organId)
.eq(MachineDO::getDeleted,false)
.eq(MachineDO::getMachineType,machineType)
.eq(MachineDO::getName,name));
}
default List<MachineDO> selectMachineList(Integer machineType,Long organId) {
return selectList(new LambdaQueryWrapperX<MachineDO>()
.eq(MachineDO::getOrganId,organId)
.eq(MachineDO::getDeleted,false)
.eq(MachineDO::getMachineType,machineType)
.select(MachineDO::getId,MachineDO::getName,MachineDO::getMachineType));
}
}
@@ -64,8 +64,10 @@ public interface MachineTemplateMapper extends BaseMapperX<MachineTemplateDO> {
default List<MachineTemplateDO> selectMachineTemplate(String templateName) {
return selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
.likeIfPresent(MachineTemplateDO::getName,templateName));
default MachineTemplateDO selectMachineTemplate(String name,Integer machineType) {
return selectOne(new LambdaQueryWrapperX<MachineTemplateDO>()
.eq(MachineTemplateDO::getDeleted,false)
.eq(MachineTemplateDO::getMachineType,machineType)
.eq(MachineTemplateDO::getName,name));
}
}
@@ -64,6 +64,8 @@ public interface MachineService {
List<MachineDO> list(Collection<Long> ids);
List<MachineSimpleRespVO> getMachineModelAll(Integer type);
Map<Integer, List<MachineVO>> getMachineTree(Long type);
Boolean auth(MachineOrgAuthReq vo);
@@ -90,12 +90,23 @@ public class MachineServiceImpl implements MachineService {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
assert loginUser != null;
if(createReqVO.getId() != null){
// 校验机台名称是否重复
MachineDO machine = machineMapper.selectMachine(createReqVO.getName(),createReqVO.getMachineType(), getUserOrganId());
if(machine != null){
throw exception(MACHINE_NAME_ERROR);
}
validateMachineNum(createReqVO.getMachineType(), loginUser.getOrganId());
MachineDO machineDO;
MachineTemplateDO machineTemplateDO;
if (createReqVO.getId() != null) {
MachineDO copyMachineDO = machineMapper.selectById(createReqVO.getId());
// 插入
MachineDO machineDO = MachineConvert.convert(createReqVO);
machineDO = MachineConvert.convert(createReqVO);
machineDO.setSetting(copyMachineDO.getSetting());
@@ -108,87 +119,85 @@ public class MachineServiceImpl implements MachineService {
}
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachine(createReqVO.getBrandId(), createReqVO.getMachineId());
machineTemplateDO = machineTemplateMapper.selectMachine(createReqVO.getBrandId(), createReqVO.getMachineId());
if(machineTemplateDO == null){
if (machineTemplateDO == null) {
throw exception(THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST);
}
// 插入
MachineDO machineDO = MachineConvert.convert(createReqVO);
// 创建新的机器对象
machineDO = MachineConvert.convert(createReqVO);
machineDO.setSetting(machineTemplateDO.getSetting());
machineMapper.insert(machineDO);
// 处理不同机台类型的配置
handleMachineSpecificConfiguration(machineDO, machineTemplateDO);
// 返回新机器的ID
return machineDO.getId();
}
if(machineTemplateDO.getMachineType().equals(MachineTypeEnum.CUTTING.getType())) {
// 将配置进行解压,判断该类型的机台的贴标配置是否开启
JsonNode cuttingSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
JsonNode advancedConfigsRef = cuttingSetting.get("advancedConfigsRef");
boolean isAutoLabelEnabled = advancedConfigsRef.get("isAutoLabelEnabled").asBoolean();
if(isAutoLabelEnabled && advancedConfigsRef.get("autoLabelBrand") != null && advancedConfigsRef.get("autoLabelModel") != null){
// Integer autoLabelBrand = advancedConfigsRef.get("autoLabelBrand").asInt();
Integer autoLabelModel = advancedConfigsRef.get("autoLabelModel").asInt();
// 根据型号ID查询贴标的配置信息
MachineTemplateDO labelingMachineTemplateDO = machineTemplateMapper.selectById(autoLabelModel);
MachineDO labelingMachineDO = MachineDO.builder()
.labelId(machineDO.getLabelId())
.machineType(labelingMachineTemplateDO.getMachineType())
.brandId(labelingMachineTemplateDO.getBrandId())
.setting(labelingMachineTemplateDO.getSetting())
.name("开料"+machineDO.getName()+ "-贴标机")
.build();
machineMapper.insert(labelingMachineDO);
}
// 判断机台的模板是否是钻孔机或封边机
private void handleMachineSpecificConfiguration(MachineDO machineDO, MachineTemplateDO machineTemplateDO) {
Integer machineType = machineTemplateDO.getMachineType();
if (MachineTypeEnum.CUTTING.getType().equals(machineType)) {
handleCuttingMachineConfiguration(machineDO, machineTemplateDO);
} else if (MachineTypeEnum.BANDING.getType().equals(machineType)) {
handleBandingMachineConfiguration(machineDO, machineTemplateDO);
}
}
if(machineTemplateDO.getMachineType().equals(MachineTypeEnum.BANDING.getType())) {
// 创建贴标机
private void handleCuttingMachineConfiguration(MachineDO machineDO, MachineTemplateDO machineTemplateDO) {
// 将配置进行解压,判断该类型的机台的钻孔配置是否开启
JsonNode drillSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
JsonNode cuttingSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
JsonNode cuttingModuleRef = drillSetting.get("cuttingModuleRef");
JsonNode advancedConfigsRef = cuttingSetting.get("advancedConfigsRef");
boolean isDrillEnabled = cuttingModuleRef.get("isDrillEnabled").asBoolean();
if(isDrillEnabled && cuttingModuleRef.get("drillBrand") != null && cuttingModuleRef.get("drillModel") != null){
// Integer drillBrand = cuttingModuleRef.get("drillBrand").asInt();
Integer autoLabelModel = cuttingModuleRef.get("drillModel").asInt();
// 根据型号ID查询钻孔机的配置信息
MachineTemplateDO drillMachineTemplateDO = machineTemplateMapper.selectById(autoLabelModel);
MachineDO drillMachineDO = MachineDO.builder()
.labelId(machineDO.getLabelId())
.machineType(drillMachineTemplateDO.getMachineType())
.brandId(drillMachineTemplateDO.getBrandId())
.setting(drillMachineTemplateDO.getSetting())
.name("开料"+machineDO.getName()+"钻孔机")
.build();
machineMapper.insert(drillMachineDO);
}
boolean isAutoLabelEnabled = advancedConfigsRef.get("isAutoLabelEnabled").asBoolean();
if (isAutoLabelEnabled && advancedConfigsRef.has("autoLabelModel")) {
Integer autoLabelModel = advancedConfigsRef.get("autoLabelModel").asInt();
createAndInsertMachine(autoLabelModel, machineDO, "开料" + machineDO.getName() + "-贴标机");
}
}
// 创建钻孔机
private void handleBandingMachineConfiguration(MachineDO machineDO, MachineTemplateDO machineTemplateDO) {
JsonNode drillSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
JsonNode cuttingModuleRef = drillSetting.get("cuttingModuleRef");
boolean isDrillEnabled = cuttingModuleRef.get("isDrillEnabled").asBoolean();
if (isDrillEnabled && cuttingModuleRef.has("drillModel")) {
Integer drillModel = cuttingModuleRef.get("drillModel").asInt();
createAndInsertMachine(drillModel, machineDO, "开料" + machineDO.getName() + "钻孔机");
}
}
private void createAndInsertMachine(Integer modelId, MachineDO parentMachine, String machineName) {
MachineTemplateDO template = machineTemplateMapper.selectById(modelId);
if (template != null) {
MachineDO newMachine = MachineDO.builder()
.labelId(parentMachine.getLabelId())
.machineType(template.getMachineType())
.brandId(template.getBrandId())
.setting(template.getSetting())
.name(machineName)
.build();
machineMapper.insert(newMachine);
}
}
@@ -208,9 +217,10 @@ public class MachineServiceImpl implements MachineService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateCutting(CuttingSaveReqVO updateReqVO) {
// 校验存在
validateExists(updateReqVO.getId());
// 校验存在和判断机台名称是否重复
validateExists(updateReqVO.getId(),updateReqVO.getName(),updateReqVO.getMachineType());
// 更新
MachineDO updateObj = MachineConvert.convert(updateReqVO);
//MachineDO updateObj = BeanUtils.toBean(updateReqVO, MachineDO.class);
@@ -356,6 +366,17 @@ public class MachineServiceImpl implements MachineService {
return machineMapper.selectPage(pageParam, new ArrayList<>());
}
@Override
public List<MachineSimpleRespVO> getMachineModelAll(Integer type) {
List<MachineDO> machineDOS = machineMapper.selectMachineList(type, getUserOrganId());
return BeanUtils.toBean(machineDOS,MachineSimpleRespVO.class);
}
@Override
@OrganIgnore
public List<MachineSimpleRespVO> simpleList(Long organId,Long type) {
@@ -398,10 +419,17 @@ public class MachineServiceImpl implements MachineService {
private void validateExists(Long id) {
if (machineMapper.selectById(id) == null) {
// 校验机台是否存在和机台名称是否重复
private void validateExists(Long id,String name,Integer machineType) {
MachineDO machineDO = machineMapper.selectById(id);
if (machineDO == null) {
throw exception(MACHINE_NOT_EXISTS);
}
MachineDO machine = machineMapper.selectMachine(name, machineType, getUserOrganId());
if(machine != null){
throw exception(MACHINE_NAME_ERROR);
}
}
private Boolean validateBrandAndModel(String brand, String model){
@@ -29,7 +29,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -83,6 +82,8 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
throw exception(THE_CURRENT_BRAND);
}
validateMachineTemplate(reqVO.getName(),reqVO.getMachineType());
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
@@ -121,6 +122,13 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
throw exception(THE_CURRENT_BRAND);
}
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectById(reqVO.getId());
if(machineTemplateDO == null){
throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
}
validateMachineTemplate(reqVO.getName(),reqVO.getMachineType());
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
@@ -534,4 +542,15 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
private void validateMachineTemplate(String name,Integer machineType) {
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachineTemplate(name, machineType);
if(machineTemplateDO != null){
throw exception(MACHINETEMPLATE_NAME_ERROR);
}
}
}
@@ -2,76 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.system.dal.mysql.machine.MachineMapper">
<resultMap id="xxMap" type="com.cf.imes.module.system.controller.admin.machine.vo.OrganMachineResp">
<result property="organId" column="organId"/>
<result property="organName" column="organName"/>
<result property="updateTime" column="updateTime"/>
<collection property="authMachineList" javaType="java.util.List" ofType="com.cf.imes.module.system.controller.admin.machine.vo.OrganTemplateVO"
select="selectOrganMachineList" column="{organId=organId, machineName = machineName}" notNullColumn="machineName" >
</collection>
</resultMap>
<resultMap id="orgMap" type="com.cf.imes.module.system.controller.admin.machine.vo.OrganMachineResp">
<result property="organId" column="organId"/>
<result property="organName" column="organName"/>
<result property="updateTime" column="updateTime"/>
<collection property="authMachineList" javaType="java.util.List" ofType="com.cf.imes.module.system.controller.admin.machine.vo.OrganMachineVO"
select="selectOrganMachineList" column="{organId=organId}" >
</collection>
</resultMap>
<select id="selectOrganMachinePage" resultMap="xxMap">
select * from (
select a.id as organId, a.name as organName, max(b.create_time) as updateTime,
case when ('${vo.machineName}' != '') then '${vo.machineName}' else '' end as machineName
from system_organization a, system_machine_limit b
<where>
a.id = b.organ_id
<if test="vo.organId !=null">
and a.id = #{vo.organId}
</if>
</where>
GROUP BY organId
) t1
LEFT JOIN (
select b.organ_id t2_organId
from system_machine_limit b inner join system_machine c on b.machine_id = c.id and c.deleted = 0
<where>
<if test="vo.machineName !=null and vo.machineName !='' " >
c.name like concat('%',#{vo.machineName},'%')
</if>
</where>
) t2 on t1.organId = t2.t2_organId
where t2.t2_organId is not null
GROUP BY organId
order by updateTime desc
</select>
<select id="selectOrganMachineList"
resultType="com.cf.imes.module.system.controller.admin.machine.vo.OrganMachineVO">
select b.organ_id organId, b.show_prior_facing, b.show_dual_workstation, b.show_auto_note_printer,
c.name AS machineName, c.id AS machineId, c.machine_type
from system_machine_limit b
inner join system_machine c on b.machine_id = c.id and c.deleted = 0
<where>
b.organ_id = #{organId}
<if test="machineName != null and machineName != ''">
and c.name like concat('%',#{machineName},'%')
</if>
</where>
</select>
<select id="selectOrganMachine" resultMap="orgMap">
select a.id as organId, a.name as organName, max(b.create_time) as updateTime
from system_organization a, system_machine_limit b
<where>
a.id = b.organ_id
and a.id = #{vo.organId}
</where>
GROUP BY organId
</select>
</mapper>