金属元素编码自动生成,公司中间表关联查询
This commit is contained in:
@@ -23,4 +23,10 @@ public class CompanyRelativityPageReqVO extends PageParam {
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "负责人")
|
||||
private String manager;
|
||||
|
||||
@Schema(description = "部门来源")
|
||||
private String departmentSource;
|
||||
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.zt.plat.module.base.controller.admin.base.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
@@ -19,4 +20,21 @@ public class CompanyRelativitySaveReqVO {
|
||||
@NotEmpty(message = "供应链公司编码不能为空")
|
||||
private String number;
|
||||
|
||||
@Schema(description = "供应链公司编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "供应链公司编号不能为空")
|
||||
private Long companyId;
|
||||
|
||||
@Schema(description = "供应链公司名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "供应链公司名称不能为空")
|
||||
private String companyName;
|
||||
|
||||
@Schema(description = "供应链部门编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "供应链部门名称不能为空")
|
||||
private Long deptId;
|
||||
|
||||
@Schema(description = "供应链部门名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "供应链部门名称不能为空")
|
||||
private String deptName;
|
||||
|
||||
|
||||
}
|
||||
@@ -33,6 +33,10 @@ public class CompanyRelativityDO extends BaseDO {
|
||||
*/
|
||||
@TableField("ERP_NUM")
|
||||
private String erpNumber;
|
||||
|
||||
// erp名称
|
||||
private String erpName;
|
||||
|
||||
/**
|
||||
* 供应链公司编码
|
||||
*/
|
||||
@@ -48,6 +52,21 @@ public class CompanyRelativityDO extends BaseDO {
|
||||
*/
|
||||
@TableField("COMPANY_NAME")
|
||||
private String companyName;
|
||||
|
||||
// 负责人id
|
||||
private String leaderUserId;
|
||||
// 是否公司
|
||||
private String isCompany;
|
||||
//是否集团
|
||||
private String isGroup;
|
||||
//电话
|
||||
private String phone;
|
||||
//邮箱
|
||||
private String email;
|
||||
//部门状态
|
||||
private String status;
|
||||
//创建人
|
||||
private String creator;
|
||||
/**
|
||||
* 部门编号
|
||||
*/
|
||||
|
||||
@@ -7,6 +7,8 @@ import com.zt.plat.module.base.controller.admin.base.vo.CompanyRelativityPageReq
|
||||
import com.zt.plat.module.base.dal.dataobject.base.CompanyRelativityDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公司关系 Mapper
|
||||
*
|
||||
@@ -23,4 +25,5 @@ public interface CompanyRelativityMapper extends BaseMapperX<CompanyRelativityDO
|
||||
.orderByDesc(CompanyRelativityDO::getId));
|
||||
}
|
||||
|
||||
List<CompanyRelativityDO> getPageByReq(CompanyRelativityPageReqVO pageReqVO);
|
||||
}
|
||||
@@ -25,4 +25,5 @@ public interface ElementMapper extends BaseMapperX<ElementDO> {
|
||||
.orderByDesc(ElementDO::getId));
|
||||
}
|
||||
|
||||
String selectMaxCode();
|
||||
}
|
||||
@@ -83,7 +83,11 @@ public class CompanyRelativityServiceImpl implements CompanyRelativityService {
|
||||
|
||||
@Override
|
||||
public PageResult<CompanyRelativityDO> getCompanyRelativityPage(CompanyRelativityPageReqVO pageReqVO) {
|
||||
return companyRelativityMapper.selectPage(pageReqVO);
|
||||
List<CompanyRelativityDO> list = companyRelativityMapper.getPageByReq(pageReqVO);
|
||||
if (list == null) {
|
||||
list = CollUtil.newArrayList();
|
||||
}
|
||||
return new PageResult<>(list, (long) list.size());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -33,6 +33,17 @@ public class ElementServiceImpl implements ElementService {
|
||||
public ElementRespVO createElement(ElementSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
ElementDO element = BeanUtils.toBean(createReqVO, ElementDO.class);
|
||||
//金属编码自动生成,格式 JSYS-00001,依次新增
|
||||
String maxCode = elementMapper.selectMaxCode();
|
||||
if (maxCode == null) {
|
||||
element.setCoding("JSYS-00001");
|
||||
} else {
|
||||
String prefix = "JSYS-";
|
||||
String numberPart = maxCode.substring(prefix.length());
|
||||
int nextNumber = Integer.parseInt(numberPart) + 1;
|
||||
String nextCode = prefix + String.format("%05d", nextNumber);
|
||||
element.setCoding(nextCode);
|
||||
}
|
||||
elementMapper.insert(element);
|
||||
// 返回
|
||||
return BeanUtils.toBean(element, ElementRespVO.class);
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.security.core.LoginUser;
|
||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.zt.plat.framework.tenant.core.context.CompanyContextHolder;
|
||||
import com.zt.plat.module.base.controller.admin.templtp.vo.*;
|
||||
|
||||
@@ -9,4 +9,23 @@
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
<select id="getPageByReq" resultType="com.zt.plat.module.base.dal.dataobject.base.CompanyRelativityDO">
|
||||
select
|
||||
c.NUM as erpNumber,
|
||||
c.NAME as erpName,
|
||||
d.NAME as companyName,
|
||||
d.ID as deptId,
|
||||
d.LEADER_USER_ID as leaderUserId,
|
||||
d.IS_COMPANY,
|
||||
d.IS_GROUP,
|
||||
d.PHONE,
|
||||
d.EMAIL,
|
||||
d.STATUS,
|
||||
d.CREATOR
|
||||
from
|
||||
SPLY_CPN_REL r
|
||||
left join SYSTEM_DEPT d on r.COMPANY_ID = d.ID
|
||||
left join SPLY_ERP_CPN c on r.ERP_NUM = c.NUM
|
||||
where r.DELETED = 0
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -9,4 +9,7 @@
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
<select id="selectMaxCode" resultType="java.lang.String">
|
||||
SELECT MAX(coding) FROM element
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -118,7 +118,7 @@ public class ErpFactoryServiceImpl implements ErpFactoryService {
|
||||
String companykey = "erp" + OftenEnum.FuncnrEnum.公司代码.getFuncnr();
|
||||
Map<String,Long> redisCache = erpConfig.getRedisCacheMap(companykey);
|
||||
if (CollUtil.isEmpty(redisCache)) {
|
||||
return;
|
||||
throw new RuntimeException("ERP公司代码缓存数据丢失,请重新同步公司代码");
|
||||
}
|
||||
for (String companyNumber : redisCache.keySet()) {
|
||||
req.put("BUKRS", companyNumber);
|
||||
|
||||
Reference in New Issue
Block a user