工程配置模块开发

This commit is contained in:
haozq 2025-12-26 15:31:47 +08:00
parent b6cceb3004
commit 99e963a22f
6 changed files with 450 additions and 0 deletions

View File

@ -0,0 +1,88 @@
package com.bonus.bmw.controller;
import com.bonus.bmw.domain.dto.WebFileDto;
import com.bonus.bmw.domain.po.HomePagePo;
import com.bonus.bmw.domain.po.PmSub;
import com.bonus.bmw.domain.vo.PmWorker;
import com.bonus.bmw.domain.vo.TbProConfigVo;
import com.bonus.bmw.service.TbProConfigService;
import com.bonus.common.core.utils.encryption.Sm4Utils;
import com.bonus.common.core.utils.json.FastJsonHelper;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.log.enums.OperaType;
import com.bonus.common.security.annotation.InnerAuth;
import com.bonus.common.security.annotation.RequiresPermissions;
import com.bonus.common.security.annotation.RequiresPermissionsOrInnerAuth;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static com.bonus.bmw.utils.OwnPermissionUtil.dealWithPermission;
/**
* 多工程入场 配置
*/
@RestController
@RequestMapping("/proConfig")
public class TbProConfigController extends BaseController {
@Autowired
private TbProConfigService service;
@GetMapping("/getConfigList")
@SysLog(title = "工程配置", businessType = OperaType.QUERY, logType = 0, module = "工程配置->工程配置", details = "工程配置列表查询")
public TableDataInfo getConfigList(TbProConfigVo homePagePo) {
try {
startPage();
List<TbProConfigVo> list = service.getConfigList(homePagePo);
return getDataTable(list);
} catch (Exception e) {
logger.error(e.toString(), e);
}
return getDataTableError(new ArrayList<>());
}
@PostMapping("/insert")
@SysLog(title = "工程配置", businessType = OperaType.INSERT, logType = 0, module = "工程配置->工程配置->新增配置", details = "新增配置")
public AjaxResult insert(@RequestBody TbProConfigVo params) {
return service.insert(params);
}
@PostMapping("/update")
@SysLog(title = "工程配置", businessType = OperaType.UPDATE, logType = 0, module = "工程配置->工程配置->新增配置", details = "修改配置")
public AjaxResult update(@RequestBody TbProConfigVo params) {
return service.update(params);
}
@PostMapping("/delete")
@SysLog(title = "工程配置", businessType = OperaType.DELETE, logType = 0, module = "工程配置->工程配置->新增配置", details = "删除配置")
public AjaxResult delete(@RequestBody TbProConfigVo params) {
return service.delete(params);
}
/**
* 多工程入场 默认无数据是 不可以
* 是否需要离场结算 无数据是需要
* 0 退场证明 1 是否可以多工程入场
* 必传 分公司id-工程类型 ,工程地区type=>0 退场证明 1 是否可以多工程入场
* @param params
* @return
*/
@PostMapping("/getConfig")
@SysLog(title = "工程配置", businessType = OperaType.DELETE, logType = 0, module = "工程配置->工程配置->新增配置", details = "获取配置")
public AjaxResult getConfig(@RequestBody TbProConfigVo params) {
return service.getConfig(params);
}
}

View File

@ -0,0 +1,42 @@
package com.bonus.bmw.domain.vo;
import lombok.Data;
@Data
public class TbProConfigVo {
private String id;
/**
* 风公司id
*/
private String subId;
/**
* 分公司名称
*/
private String subName;
/**
* 工程区域
*/
private String proArea;
/**
* 数据类型0 退场证明 1 是否可以多工程入场
*/
private String type;
/**
* 工程类型
*/
private String proType;
/**
* 是否需要
*/
private String isNeed;
/**
* 关键字
*/
private String keyWord;
/**
* 配置id
*/
private String configId;
}

View File

@ -0,0 +1,68 @@
package com.bonus.bmw.mapper;
import com.bonus.bmw.domain.vo.TbProConfigVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface TbProConfigMapper {
/**
* 查询工程配置信息
* @param vo
* @return
*/
List<TbProConfigVo> getConfigList(TbProConfigVo vo);
/**
* 查询工程配置是否存在
* @param params
* @return
*/
int getProConfig(TbProConfigVo params);
/**
* 插入数据
* @param params
* @return
*/
int insert(TbProConfigVo params);
/**
* 新增配置关联信息
* @param id
* @param subId
* @param isNeed
* @param type
* @param proAreaList
*/
void addProConfigReal(@Param("configId") String id,@Param("subId") String subId,@Param("proType")String proType, @Param("isNeed")String isNeed, @Param("type")String type, @Param("list")List<String> proAreaList);
/**
* 修改配置
* @param params
* @return
*/
int update(TbProConfigVo params);
/**
* 删除配置
* @param params
*/
void delRealData(TbProConfigVo params);
/**
* 删除失败
* @param params
* @return
*/
int delete(TbProConfigVo params);
/**
* 查询1配置信息
* @param params
* @return
*/
TbProConfigVo TbProConfigVo(TbProConfigVo params);
}

View File

@ -0,0 +1,43 @@
package com.bonus.bmw.service;
import com.bonus.bmw.domain.vo.TbProConfigVo;
import com.bonus.common.core.web.domain.AjaxResult;
import java.util.List;
public interface TbProConfigService {
/**
* 查询工程配置列表集合
* @param homePagePo
* @return
*/
List<TbProConfigVo> getConfigList(TbProConfigVo homePagePo);
/**
* 新增工程配置
* @param params
* @return
*/
AjaxResult insert(TbProConfigVo params);
/**
* 修改配置
* @param params
* @return
*/
AjaxResult update(TbProConfigVo params);
/**
* 删除配置
* @param params
* @return
*/
AjaxResult delete(TbProConfigVo params);
/**
* 依据工程类型 分公司名称 工程地区查询
* @param params
* @return
*/
AjaxResult getConfig(TbProConfigVo params);
}

View File

@ -0,0 +1,153 @@
package com.bonus.bmw.service.impl;
import com.bonus.bmw.domain.vo.TbProConfigVo;
import com.bonus.bmw.mapper.TbProConfigMapper;
import com.bonus.bmw.service.TbProConfigService;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@Service
@Slf4j
public class TbProConfigServiceImpl implements TbProConfigService {
@Autowired
private TbProConfigMapper mapper;
/**
* 工程配置集合
* @param vo
* @return
*/
@Override
public List<TbProConfigVo> getConfigList(TbProConfigVo vo) {
try{
return mapper.getConfigList(vo);
}catch (Exception e){
log.error(e.toString(),e);
}
return Collections.emptyList();
}
@Override
public AjaxResult insert(TbProConfigVo params) {
try{
String proType=params.getProType();
String proArea=params.getProArea();
String type=params.getType();
if(StringUtils.isEmpty(proType)){
return AjaxResult.error("请选择工程类型");
}
if(StringUtils.isEmpty(proArea)){
return AjaxResult.error("请选择区域");
}
if(StringUtils.isEmpty(type)){
return AjaxResult.error("请选择配置类型");
}
int num=mapper.getProConfig(params);
if(num>0){
return AjaxResult.error("当前分包商配置已存在,请去修改");
}
List<String> proTypeList= Arrays.asList(proType.split(","));
List<String> proAreaList= Arrays.asList(proArea.split(","));
int success=mapper.insert(params);
if(success>0){
for (String proTypeData:proTypeList){
mapper.addProConfigReal(params.getId(),params.getSubId(),proTypeData,params.getIsNeed(),params.getType(),proAreaList);
}
return AjaxResult.success("添加成功");
}
}catch (Exception e){
log.error(e.toString(),e);
}
return AjaxResult.error("添加失败");
}
@Override
public AjaxResult update(TbProConfigVo params) {
try{
String proType=params.getProType();
String proArea=params.getProArea();
String type=params.getType();
if(StringUtils.isEmpty(proType)){
return AjaxResult.error("请选择工程类型");
}
if(StringUtils.isEmpty(proArea)){
return AjaxResult.error("请选择区域");
}
if(StringUtils.isEmpty(type)){
return AjaxResult.error("请选择配置类型");
}
int num=mapper.getProConfig(params);
if(num>0){
return AjaxResult.error("当前分包商配置已存在,请去修改");
}
List<String> proTypeList= Arrays.asList(proType.split(","));
List<String> proAreaList= Arrays.asList(proArea.split(","));
int success=mapper.update(params);
if(success>0){
mapper.delRealData(params);
for (String proTypeData:proTypeList){
mapper.addProConfigReal(params.getId(),params.getSubId(),proTypeData,params.getIsNeed(),params.getType(),proAreaList);
}
return AjaxResult.success("添加成功");
}
}catch (Exception e){
log.error(e.toString(),e);
}
return AjaxResult.error("添加失败");
}
/**
* 删除配置信息
* @param params
* @return
*/
@Override
public AjaxResult delete(TbProConfigVo params) {
try{
int success=mapper.delete(params);
if(success>0){
mapper.delRealData(params);
return AjaxResult.success("删除成功");
}
}catch (Exception e){
log.error(e.toString(),e);
}
return AjaxResult.error("删除失败");
}
/**
* 多工程入场 默认无数据是 不可以
* 是否需要离场结算 无数据是需要
* 0 退场证明 1 是否可以多工程入场
* @param params
* @return
*/
@Override
public AjaxResult getConfig(TbProConfigVo params) {
try{
TbProConfigVo vo=mapper.TbProConfigVo(params);
if(vo!=null){
return AjaxResult.success(vo);
}else{
if("0".equals(params.getType())){
params.setIsNeed("1");
}else{
params.setIsNeed("0");
}
}
return AjaxResult.success(params);
}catch (Exception e){
log.error(e.toString(),e);
}
return AjaxResult.error("查询失败");
}
}

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bonus.bmw.mapper.TbProConfigMapper">
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into tb_pro_config(
sub_id,sub_name, pro_type, pro_area, type,is_need
)values (#{subId},#{subName},#{proType},#{proArea},#{type},#{isNeed})
</insert>
<insert id="addProConfigReal">
insert into tb_pro_config_real(config_id, sub_id, pro_type, pro_area, is_need, type)
values
<foreach item="item" collection="list" separator="," index="index" >
(#{configId},#{subId},#{proType},#{item},#{isNeed},#{type}
)
</foreach>
</insert>
<update id="update">
update tb_pro_config set sub_id=#{subId} ,sub_name=#{subName},pro_type=#{proType},pro_area=#{proArea},type=#{type},is_need=#{isNeed}
where id=#{id}
</update>
<delete id="delRealData">
delete from tb_pro_config_real where config_id=#{id}
</delete>
<delete id="delete">
delete from tb_pro_config where id=#{id}
</delete>
<select id="getConfigList" resultType="com.bonus.bmw.domain.vo.TbProConfigVo">
select id,sub_id subId,sub_name subName,pro_type proType,pro_area proArea,type,is_need isNeed
from tb_pro_config
<where>
<if test="subName!=null and subName!=''">
and sub_name like concat('%',#{subName},'%')
</if>
<if test="keyWord!=null and keyWord!=''">
and(
pro_area like concat('%',#{keyWord},'%') OR
pro_type like concat('%',#{keyWord},'%')
)
</if>
</where>
</select>
<select id="getProConfig" resultType="java.lang.Integer">
select count(1)
from tb_pro_config
where sub_id=#{subId} and type=#{type}
<if test="id!=null and id!=''">
and id!=#{id}
</if>
</select>
<select id="TbProConfigVo" resultType="com.bonus.bmw.domain.vo.TbProConfigVo">
select id,sub_id subId,pro_type proType,pro_area proArea,type,is_need isNeed,config_id configId
from tb_pro_config_real
where pro_type=#{proType} and sub_id=#{subId} and pro_area=#{proArea} and type=#{type}
</select>
</mapper>