Commit bea46256 authored by EDY's avatar EDY

优化

parent 2fee52f9
......@@ -82,6 +82,7 @@ public class BaseCustomInfoController extends BaseController
baseCustomInfo.setFzr(getLoginUser().getUser().getNickName());
baseCustomInfo.setCreateTime(new Date());
baseCustomInfo.setCreateBy(getUsername());
baseCustomInfo.setUpdateTime(new Date());
return toAjax(baseCustomInfoService.insertBaseCustomInfo(baseCustomInfo));
}
......
......@@ -78,6 +78,8 @@ public class BasePaymentCollectionInfoController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody BasePaymentCollectionInfo basePaymentCollectionInfo)
{
basePaymentCollectionInfo.setCreateBy(getLoginUser().getUser().getNickName());
basePaymentCollectionInfo.setUpdateBy(getLoginUser().getUser().getNickName());
return toAjax(basePaymentCollectionInfoService.insertBasePaymentCollectionInfo(basePaymentCollectionInfo));
}
......@@ -89,6 +91,7 @@ public class BasePaymentCollectionInfoController extends BaseController
@PutMapping
public AjaxResult edit(@RequestBody BasePaymentCollectionInfo basePaymentCollectionInfo)
{
basePaymentCollectionInfo.setUpdateBy(getLoginUser().getUser().getNickName());
return toAjax(basePaymentCollectionInfoService.updateBasePaymentCollectionInfo(basePaymentCollectionInfo));
}
......
package com.ruoyi.web.controller.business;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.system.domain.business.BasePerformanceCompleteInfo;
import com.ruoyi.system.domain.business.vo.PerformanceCompleteVo;
import com.ruoyi.system.service.business.IBasePerformanceCompleteInfoService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
/**
* 业绩目标Controller
*
* @author gm
* @date 2025-06-06
*/
@RestController
@RequestMapping("/performance/complete")
public class BasePerformanceCompleteInfoController extends BaseController
{
@Autowired
private IBasePerformanceCompleteInfoService basePerformanceCompleteInfoService;
/**
* 查询业绩目标列表
*/
@PreAuthorize("@ss.hasPermi('system:performance:list')")
@GetMapping("/list")
public AjaxResult list(BasePerformanceCompleteInfo basePerformanceCompleteInfo)
{
// startPage();
List<PerformanceCompleteVo> list = basePerformanceCompleteInfoService.selectBasePerformanceCompleteInfoList(basePerformanceCompleteInfo);
return success(list);
}
/**
* 导出业绩目标列表
*/
@PreAuthorize("@ss.hasPermi('system:performance:export')")
@Log(title = "业绩目标", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, BasePerformanceCompleteInfo basePerformanceCompleteInfo)
{
List<BasePerformanceCompleteInfo> list = basePerformanceCompleteInfoService.selectBasePerformanceCompleteInfos(basePerformanceCompleteInfo);
ExcelUtil<BasePerformanceCompleteInfo> util = new ExcelUtil<BasePerformanceCompleteInfo>(BasePerformanceCompleteInfo.class);
util.exportExcel(response, list, "业绩目标数据");
}
/**
* 获取业绩目标详细信息
*/
@PreAuthorize("@ss.hasPermi('system:performance:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(basePerformanceCompleteInfoService.selectBasePerformanceCompleteInfoById(id));
}
/**
* 新增业绩目标
*/
@PreAuthorize("@ss.hasPermi('system:performance:add')")
@Log(title = "业绩目标", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody BasePerformanceCompleteInfo basePerformanceCompleteInfo)
{
return toAjax(basePerformanceCompleteInfoService.insertBasePerformanceCompleteInfo(basePerformanceCompleteInfo));
}
/**
* 修改业绩目标
*/
@PreAuthorize("@ss.hasPermi('system:performance:edit')")
@Log(title = "业绩目标", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody PerformanceCompleteVo performanceCompleteVo)
{
basePerformanceCompleteInfoService.updateBasePerformanceCompleteInfo(performanceCompleteVo);
return success();
}
/**
* 删除业绩目标
*/
@PreAuthorize("@ss.hasPermi('system:performance:remove')")
@Log(title = "业绩目标", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(basePerformanceCompleteInfoService.deleteBasePerformanceCompleteInfoByIds(ids));
}
}
......@@ -37,7 +37,7 @@ public class CommonController
private static final String FILE_DELIMETER = ",";
private static final String SERVER_URL = "http://ly.yoloapp.cn/";
private static final String SERVER_URL = "https://crm.cstcglobal.com/ry-crm";
/**
* 通用下载请求
......
package com.ruoyi.web.controller.compoment;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.business.BaseCustomInfo;
import com.ruoyi.system.service.business.IBaseCustomInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController("")
@RequestMapping("baidu/clue")
public class BaiduClueController {
@Autowired
private IBaseCustomInfoService iBaseCustomInfoService;
private static final String TOKEN = "A1B2C3D4E5F6";
@PostMapping(value = "/msg")
public AjaxResult msg(@RequestBody JSONObject json) {
String token = json.getString("token");
if (token == null || !token.equals(TOKEN)) {
return AjaxResult.error("token不匹配");
}
BaseCustomInfo baseCustomInfo = new BaseCustomInfo();
JSONArray from = json.getJSONArray("formDetail");
if (ObjectUtil.isNotEmpty(from)) {
for (int i = 0; i < from.size(); i++) {
JSONObject data = from.getJSONObject(i);
if (data.getString("type").equals("name")) {
baseCustomInfo.setKhxm(data.getString("value"));
}
}
}
String ucName = json.getString("ucName");
if (ucName.contains("软艺")) {
baseCustomInfo.setKhly(1);
}
if (ucName.contains("软通")) {
baseCustomInfo.setKhly(2);
}
if (ucName.contains("网联")) {
baseCustomInfo.setKhly(3);
}
if (ucName.contains("软盈")) {
baseCustomInfo.setKhly(4);
}
baseCustomInfo.setSjh(json.getString("cluePhoneNumber"));
baseCustomInfo.setWx(json.getString("wechatAccount"));
baseCustomInfo.setKhdz(json.getString("areaProvince")+"-"+json.getString("area"));
baseCustomInfo.setKhxq(json.getString("searchWord"));
baseCustomInfo.setGjc(json.getString("keyword"));
baseCustomInfo.setKhzt(1);
baseCustomInfo.setGs(1);
String commitTime = json.getString("commitTime");
baseCustomInfo.setCreateTime(DateUtil.parse(commitTime));
baseCustomInfo.setUpdateTime(DateUtil.parse(commitTime));
baseCustomInfo.setCreateBy("SYSTEM");
baseCustomInfo.setUpdateBy("SYSTEM");
iBaseCustomInfoService.insertBaseCustomInfo(baseCustomInfo);
return AjaxResult.success();
}
}
......@@ -111,7 +111,7 @@ public class SecurityConfig
.authorizeHttpRequests((requests) -> {
permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll());
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
requests.antMatchers("/login", "/register", "/captchaImage").permitAll()
requests.antMatchers("/login", "/register", "/captchaImage","/baidu/clue/msg").permitAll()
// 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
......
......@@ -34,7 +34,7 @@ public class BaseCustomInfo extends BaseEntity
/** 客户来源 */
@Excel(name = "客户来源" ,readConverterExp = "1=软艺,2=软通,3=网联,4=软盈,5=渠道")
private Long khly;
private Integer khly;
/** 客户类型 */
@Excel(name = "客户类型" ,readConverterExp = "1=公司,2=个人")
......@@ -60,6 +60,10 @@ public class BaseCustomInfo extends BaseEntity
@Excel(name = "客户需求描述")
private String khxq;
/** 关键词 */
@Excel(name = "关键词")
private String gjc;
/** 客户行业 */
@Excel(name = "客户行业",readConverterExp = "1=农林牧渔,2=采矿业,3=制造业,4=水电燃气,5=建筑业,6=批发零售,7=交通运输,8=住宿餐饮,9=互联网,10=房地产业,11=商务服务,12=科技服务,13=居民服务,14=水利公共,15=公共卫生,16=文体娱乐,17=公共机构,18=国际组织,19=其他,20=教育培训")
private String khhy;
......@@ -70,7 +74,7 @@ public class BaseCustomInfo extends BaseEntity
/** 客户状态 */
@Excel(name = "客户状态" ,readConverterExp = "1=未联系,2=已上门,3=已电话,4=已微信,5=已成交,6=已签合同,7=已终止,8=商务谈判")
private Long khzt;
private Integer khzt;
/** 归属 1 个人 2 部门 */
//@Excel(name = "归属 1 个人 2 部门")
......
package com.ruoyi.system.domain.business;
import java.math.BigDecimal;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 业绩目标对象 base_performance_complete_info
*
* @author gm
* @date 2025-06-06
*/
@Data
public class BasePerformanceCompleteInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键id */
private Long id;
/** 目标类型 1 个人 2 公司 */
@Excel(name = "目标类型 1 个人 2 公司")
private Integer targetType;
/** 用户id */
@Excel(name = "用户id")
private Long userId;
/** 用户名 */
@Excel(name = "用户名")
private String userName;
/** 年份 */
@Excel(name = "年份")
private Integer year;
/** 月份 */
@Excel(name = "月份")
private Integer month;
/** 目标 */
@Excel(name = "目标")
private BigDecimal target;
/** 已完成 */
@Excel(name = "已完成")
private BigDecimal complete;
/** 完成率 */
@Excel(name = "完成率")
private BigDecimal completeRate;
}
......@@ -19,4 +19,7 @@ public class ContractCollectVo {
// 开票金额
private BigDecimal makeInvoiceAmount = BigDecimal.ZERO;
// 已开票税额
private BigDecimal makeInvoiceTaxAmount = BigDecimal.ZERO;
}
package com.ruoyi.system.domain.business.vo;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* 业绩目标对象 base_performance_complete_info
*
* @author gm
* @date 2025-06-06
*/
@Data
public class PerformanceCompleteVo extends BaseEntity
{
/** 目标类型 1 个人 2 公司 */
private Integer targetType;
/** 用户名 */
private String userName;
// 部门名称
private String deptName;
/** 年份 */
private Integer year;
private List<PerformanceMonth> monthData;
@Data
public static class PerformanceMonth {
private Long id;
/** 月份 */
private Integer month;
/** 目标 */
private BigDecimal target;
/** 已完成 */
private BigDecimal complete;
/** 完成率 */
private BigDecimal completeRate;
}
}
package com.ruoyi.system.mapper.business;
import com.ruoyi.system.domain.business.BasePerformanceCompleteInfo;
import java.util.List;
/**
* 业绩目标Mapper接口
*
* @author gm
* @date 2025-06-06
*/
public interface BasePerformanceCompleteInfoMapper
{
/**
* 查询业绩目标
*
* @param id 业绩目标主键
* @return 业绩目标
*/
public BasePerformanceCompleteInfo selectBasePerformanceCompleteInfoById(Long id);
/**
* 查询业绩目标列表
*
* @param basePerformanceCompleteInfo 业绩目标
* @return 业绩目标集合
*/
public List<BasePerformanceCompleteInfo> selectBasePerformanceCompleteInfoList(BasePerformanceCompleteInfo basePerformanceCompleteInfo);
/**
* 新增业绩目标
*
* @param basePerformanceCompleteInfo 业绩目标
* @return 结果
*/
public int insertBasePerformanceCompleteInfo(BasePerformanceCompleteInfo basePerformanceCompleteInfo);
/**
* 修改业绩目标
*
* @param basePerformanceCompleteInfo 业绩目标
* @return 结果
*/
public int updateBasePerformanceCompleteInfo(BasePerformanceCompleteInfo basePerformanceCompleteInfo);
/**
* 删除业绩目标
*
* @param id 业绩目标主键
* @return 结果
*/
public int deleteBasePerformanceCompleteInfoById(Long id);
/**
* 批量删除业绩目标
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBasePerformanceCompleteInfoByIds(Long[] ids);
}
package com.ruoyi.system.service.business;
import com.ruoyi.system.domain.business.BasePerformanceCompleteInfo;
import com.ruoyi.system.domain.business.vo.PerformanceCompleteVo;
import java.util.List;
/**
* 业绩目标Service接口
*
* @author gm
* @date 2025-06-06
*/
public interface IBasePerformanceCompleteInfoService
{
/**
* 查询业绩目标
*
* @param id 业绩目标主键
* @return 业绩目标
*/
public BasePerformanceCompleteInfo selectBasePerformanceCompleteInfoById(Long id);
/**
* 查询业绩目标列表
*
* @param basePerformanceCompleteInfo 业绩目标
* @return 业绩目标集合
*/
public List<PerformanceCompleteVo> selectBasePerformanceCompleteInfoList(BasePerformanceCompleteInfo basePerformanceCompleteInfo);
/**
* 新增业绩目标
*
* @param basePerformanceCompleteInfo 业绩目标
* @return 结果
*/
public int insertBasePerformanceCompleteInfo(BasePerformanceCompleteInfo basePerformanceCompleteInfo);
/**
* 修改业绩目标
*
* @param basePerformanceCompleteInfo 业绩目标
* @return 结果
*/
public void updateBasePerformanceCompleteInfo(PerformanceCompleteVo performanceCompleteVo);
/**
* 批量删除业绩目标
*
* @param ids 需要删除的业绩目标主键集合
* @return 结果
*/
public int deleteBasePerformanceCompleteInfoByIds(Long[] ids);
/**
* 删除业绩目标信息
*
* @param id 业绩目标主键
* @return 结果
*/
public int deleteBasePerformanceCompleteInfoById(Long id);
List<BasePerformanceCompleteInfo> selectBasePerformanceCompleteInfos(BasePerformanceCompleteInfo basePerformanceCompleteInfo);
}
......@@ -17,6 +17,7 @@ import com.ruoyi.common.utils.MoneyConverter;
import com.ruoyi.system.domain.business.BaseContractAuditRecord;
import com.ruoyi.system.domain.business.BaseContractInfo;
import com.ruoyi.system.domain.business.BaseContractPeriodsInfo;
import com.ruoyi.system.domain.business.BaseInvoiceInfo;
import com.ruoyi.system.domain.business.vo.ContractCollectVo;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.business.BaseContractAuditRecordMapper;
......@@ -196,6 +197,20 @@ public class BaseContractInfoServiceImpl implements IBaseContractInfoService {
if (ObjectUtil.isNotNull(invoiceAmount)) {
contractCollectVo.setMakeInvoiceAmount(invoiceAmount);
}
if (contractId != null) {
BigDecimal makeInvoiceTaxAmount = contractCollectVo.getMakeInvoiceTaxAmount();
BaseInvoiceInfo baseInvoiceInfo = new BaseInvoiceInfo();
baseInvoiceInfo.setContractId(contractId);
List<BaseInvoiceInfo> baseInvoiceInfos = baseInvoiceInfoMapper.selectBaseInvoiceInfoList(baseInvoiceInfo);
if (!baseInvoiceInfos.isEmpty()) {
for (BaseInvoiceInfo invoiceInfo : baseInvoiceInfos) {
if (invoiceInfo.getFpzt() == 3) {
makeInvoiceTaxAmount = makeInvoiceTaxAmount.add(invoiceInfo.getKpje().multiply(invoiceInfo.getFpsl()).divide(BigDecimal.valueOf(100)));
}
}
}
contractCollectVo.setMakeInvoiceTaxAmount(makeInvoiceTaxAmount);
}
} else {
contractCollectVo = new ContractCollectVo();
}
......@@ -207,7 +222,7 @@ public class BaseContractInfoServiceImpl implements IBaseContractInfoService {
List<BaseContractPeriodsInfo> result = new ArrayList<>();
String fkbl = baseContractInfo.getFkbl();
String newStr = fkbl.replaceAll("," , "");
String newStr = fkbl.replaceAll(",", "");
String[] split = newStr.split("%");
for (int i = 0; i < split.length; i++) {
BaseContractPeriodsInfo baseContractPeriod = new BaseContractPeriodsInfo();
......
......@@ -3,7 +3,9 @@ package com.ruoyi.system.service.business.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.business.BaseCustomFollowRecord;
import com.ruoyi.system.domain.business.BaseCustomInfo;
import com.ruoyi.system.mapper.business.BaseCustomFollowRecordMapper;
import com.ruoyi.system.mapper.business.BaseCustomInfoMapper;
import com.ruoyi.system.service.business.IBaseCustomFollowRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -21,6 +23,9 @@ public class BaseCustomFollowRecordServiceImpl implements IBaseCustomFollowRecor
@Autowired
private BaseCustomFollowRecordMapper baseCustomFollowRecordMapper;
@Autowired
private BaseCustomInfoMapper baseCustomInfoMapper;
/**
* 查询客户跟踪记录
*
......@@ -54,6 +59,15 @@ public class BaseCustomFollowRecordServiceImpl implements IBaseCustomFollowRecor
@Override
public int insertBaseCustomFollowRecord(BaseCustomFollowRecord baseCustomFollowRecord)
{
BaseCustomFollowRecord customFollowRecord = new BaseCustomFollowRecord();
customFollowRecord.setCustomId(baseCustomFollowRecord.getCustomId());
List<BaseCustomFollowRecord> baseCustomFollowRecords = baseCustomFollowRecordMapper.selectBaseCustomFollowRecordList(customFollowRecord);
BaseCustomInfo baseCustomInfo = baseCustomInfoMapper.selectBaseCustomInfoById(baseCustomFollowRecord.getCustomId());
if (baseCustomFollowRecords.isEmpty()) {
baseCustomInfo.setFzr(baseCustomFollowRecord.getGjr());
baseCustomInfoMapper.updateBaseCustomInfo(baseCustomInfo);
}
baseCustomFollowRecord.setCreateTime(DateUtils.getNowDate());
return baseCustomFollowRecordMapper.insertBaseCustomFollowRecord(baseCustomFollowRecord);
}
......
......@@ -28,8 +28,7 @@ import org.springframework.stereotype.Service;
* @date 2025-02-17
*/
@Service
public class BaseInvoiceInfoServiceImpl implements IBaseInvoiceInfoService
{
public class BaseInvoiceInfoServiceImpl implements IBaseInvoiceInfoService {
@Autowired
private BaseInvoiceInfoMapper baseInvoiceInfoMapper;
......@@ -49,8 +48,7 @@ public class BaseInvoiceInfoServiceImpl implements IBaseInvoiceInfoService
* @return 开票信息
*/
@Override
public BaseInvoiceInfo selectBaseInvoiceInfoById(Long id)
{
public BaseInvoiceInfo selectBaseInvoiceInfoById(Long id) {
return baseInvoiceInfoMapper.selectBaseInvoiceInfoById(id);
}
......@@ -61,8 +59,7 @@ public class BaseInvoiceInfoServiceImpl implements IBaseInvoiceInfoService
* @return 开票信息
*/
@Override
public List<BaseInvoiceInfo> selectBaseInvoiceInfoList(BaseInvoiceInfo baseInvoiceInfo)
{
public List<BaseInvoiceInfo> selectBaseInvoiceInfoList(BaseInvoiceInfo baseInvoiceInfo) {
List<BaseInvoiceInfo> baseInvoiceInfos = baseInvoiceInfoMapper.selectBaseInvoiceInfoList(baseInvoiceInfo);
for (BaseInvoiceInfo invoiceInfo : baseInvoiceInfos) {
BaseInvoiceAuditRecord baseInvoiceAuditRecord = new BaseInvoiceAuditRecord();
......@@ -80,8 +77,7 @@ public class BaseInvoiceInfoServiceImpl implements IBaseInvoiceInfoService
* @return 结果
*/
@Override
public int insertBaseInvoiceInfo(BaseInvoiceInfo baseInvoiceInfo)
{
public int insertBaseInvoiceInfo(BaseInvoiceInfo baseInvoiceInfo) {
baseInvoiceInfo.setCreateTime(DateUtils.getNowDate());
BasePaymentCollectionInfo basePaymentCollectionInfo = basePaymentCollectionInfoMapper.selectBasePaymentCollectionInfoById(baseInvoiceInfo.getPaymentId());
baseInvoiceInfo.setFkfs(basePaymentCollectionInfo.getHkfs());
......@@ -96,8 +92,8 @@ public class BaseInvoiceInfoServiceImpl implements IBaseInvoiceInfoService
* @return 结果
*/
@Override
public int updateBaseInvoiceInfo(BaseInvoiceInfo baseInvoiceInfo, SysUser user)
{
public int updateBaseInvoiceInfo(BaseInvoiceInfo baseInvoiceInfo, SysUser user) {
BaseInvoiceInfo oldBaseInvoiceInfo = baseInvoiceInfoMapper.selectBaseInvoiceInfoById(baseInvoiceInfo.getId());
if (baseInvoiceInfo.getFpzt() != null && baseInvoiceInfo.getFpzt() == 2) {
BaseInvoiceAuditRecord baseInvoiceAuditRecord = new BaseInvoiceAuditRecord();
baseInvoiceAuditRecord.setInvoiceId(baseInvoiceInfo.getId());
......@@ -126,15 +122,11 @@ public class BaseInvoiceInfoServiceImpl implements IBaseInvoiceInfoService
baseInvoiceInfo.setShrId(user.getUserId());
baseInvoiceInfo.setShrName(user.getNickName());
BasePaymentCollectionInfo basePayment = new BasePaymentCollectionInfo();
basePayment.setInvoiceId(baseInvoiceInfo.getId());
List<BasePaymentCollectionInfo> basePaymentCollectionInfos = basePaymentCollectionInfoMapper.selectBasePaymentCollectionInfoList(basePayment);
if (ObjectUtil.isNotEmpty(basePaymentCollectionInfos)) {
for (BasePaymentCollectionInfo basePaymentCollectionInfo : basePaymentCollectionInfos) {
basePaymentCollectionInfo.setKpzt(1);
basePaymentCollectionInfo.setUpdateBy(user.getNickName());
basePaymentCollectionInfoMapper.updateBasePaymentCollectionInfo(basePaymentCollectionInfo);
}
BasePaymentCollectionInfo basePaymentCollectionInfo1 = basePaymentCollectionInfoMapper.selectBasePaymentCollectionInfoById(oldBaseInvoiceInfo.getPaymentId());
if (ObjectUtil.isNotNull(basePaymentCollectionInfo1)) {
basePaymentCollectionInfo1.setKpzt(1);
basePaymentCollectionInfo1.setUpdateBy(user.getNickName());
basePaymentCollectionInfoMapper.updateBasePaymentCollectionInfo(basePaymentCollectionInfo1);
}
}
......@@ -162,8 +154,7 @@ public class BaseInvoiceInfoServiceImpl implements IBaseInvoiceInfoService
* @return 结果
*/
@Override
public int deleteBaseInvoiceInfoByIds(Long[] ids)
{
public int deleteBaseInvoiceInfoByIds(Long[] ids) {
return baseInvoiceInfoMapper.deleteBaseInvoiceInfoByIds(ids);
}
......@@ -174,8 +165,7 @@ public class BaseInvoiceInfoServiceImpl implements IBaseInvoiceInfoService
* @return 结果
*/
@Override
public int deleteBaseInvoiceInfoById(Long id)
{
public int deleteBaseInvoiceInfoById(Long id) {
return baseInvoiceInfoMapper.deleteBaseInvoiceInfoById(id);
}
......
package com.ruoyi.system.service.business.impl;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.business.BaseContractInfo;
import com.ruoyi.system.domain.business.BasePaymentCollectionInfo;
import com.ruoyi.system.domain.business.BasePerformanceCompleteInfo;
import com.ruoyi.system.mapper.business.BaseContractInfoMapper;
import com.ruoyi.system.mapper.business.BasePaymentCollectionInfoMapper;
import com.ruoyi.system.mapper.business.BasePerformanceCompleteInfoMapper;
import com.ruoyi.system.service.business.IBasePaymentCollectionInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -27,6 +32,9 @@ public class BasePaymentCollectionInfoServiceImpl implements IBasePaymentCollect
@Autowired
private BaseContractInfoMapper baseContractInfoMapper;
@Autowired
private BasePerformanceCompleteInfoMapper performanceCompleteInfoMapper;
/**
* 查询回款信息
*
......@@ -66,9 +74,26 @@ public class BasePaymentCollectionInfoServiceImpl implements IBasePaymentCollect
}
baseContractInfo.setHkje(hkje.add(basePaymentCollectionInfo.getHkje()));
baseContractInfoMapper.updateBaseContractInfo(baseContractInfo);
// 处理绩效数据
BasePerformanceCompleteInfo basePerformanceCompleteInfo = new BasePerformanceCompleteInfo();
basePerformanceCompleteInfo.setTargetType(1);
basePerformanceCompleteInfo.setYear(DateUtil.thisYear());
basePerformanceCompleteInfo.setMonth(DateUtil.thisMonth() + 1);
basePerformanceCompleteInfo.setUserId(baseContractInfo.getYwyId());
List<BasePerformanceCompleteInfo> basePerformanceCompleteInfos = performanceCompleteInfoMapper.selectBasePerformanceCompleteInfoList(basePerformanceCompleteInfo);
if (ObjectUtil.isNotEmpty(basePerformanceCompleteInfos)) {
for (BasePerformanceCompleteInfo performanceCompleteInfo : basePerformanceCompleteInfos) {
BigDecimal newComplete = performanceCompleteInfo.getComplete().add(hkje);
performanceCompleteInfo.setComplete(newComplete);
performanceCompleteInfo.setCompleteRate(newComplete.divide(performanceCompleteInfo.getTarget()).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP));
performanceCompleteInfoMapper.updateBasePerformanceCompleteInfo(performanceCompleteInfo);
}
}
}
}
basePaymentCollectionInfo.setCreateTime(DateUtils.getNowDate());
basePaymentCollectionInfo.setUpdateTime(DateUtils.getNowDate());
return basePaymentCollectionInfoMapper.insertBasePaymentCollectionInfo(basePaymentCollectionInfo);
}
......
package com.ruoyi.system.service.business.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.business.BasePerformanceCompleteInfo;
import com.ruoyi.system.domain.business.vo.PerformanceCompleteVo;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.business.BasePerformanceCompleteInfoMapper;
import com.ruoyi.system.service.business.IBasePerformanceCompleteInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 业绩目标Service业务层处理
*
* @author gm
* @date 2025-06-06
*/
@Service
public class BasePerformanceCompleteInfoServiceImpl implements IBasePerformanceCompleteInfoService
{
@Autowired
private BasePerformanceCompleteInfoMapper basePerformanceCompleteInfoMapper;
@Autowired
private SysUserMapper sysUserMapper;
/**
* 查询业绩目标
*
* @param id 业绩目标主键
* @return 业绩目标
*/
@Override
public BasePerformanceCompleteInfo selectBasePerformanceCompleteInfoById(Long id)
{
return basePerformanceCompleteInfoMapper.selectBasePerformanceCompleteInfoById(id);
}
/**
* 查询业绩目标列表
*
* @param basePerformanceCompleteInfo 业绩目标
* @return 业绩目标
*/
@Override
public List<PerformanceCompleteVo> selectBasePerformanceCompleteInfoList(BasePerformanceCompleteInfo basePerformanceCompleteInfo)
{
List<PerformanceCompleteVo> performanceCompleteResult = new ArrayList<>();
List<BasePerformanceCompleteInfo> basePerformanceCompleteInfos = basePerformanceCompleteInfoMapper.selectBasePerformanceCompleteInfoList(basePerformanceCompleteInfo);
Map<String, List<BasePerformanceCompleteInfo>> groupedByDepartment = basePerformanceCompleteInfos.stream()
.collect(Collectors.groupingBy(BasePerformanceCompleteInfo::getUserName));
for (String key : groupedByDepartment.keySet()) {
List<BasePerformanceCompleteInfo> basePerformanceCompleteInfos1 = groupedByDepartment.get(key);
PerformanceCompleteVo performanceCompleteVo = new PerformanceCompleteVo();
performanceCompleteVo.setTargetType(basePerformanceCompleteInfos1.get(0).getTargetType());
performanceCompleteVo.setUserName(basePerformanceCompleteInfos1.get(0).getUserName());
SysUser sysUser = sysUserMapper.selectUserById(basePerformanceCompleteInfos1.get(0).getUserId());
performanceCompleteVo.setDeptName(sysUser.getDept().getDeptName());
performanceCompleteVo.setYear(basePerformanceCompleteInfos1.get(0).getYear());
List<PerformanceCompleteVo.PerformanceMonth> months = new ArrayList<>();
for (BasePerformanceCompleteInfo performanceCompleteInfo : basePerformanceCompleteInfos1) {
PerformanceCompleteVo.PerformanceMonth perfMonth = new PerformanceCompleteVo.PerformanceMonth();
perfMonth.setId(performanceCompleteInfo.getId());
perfMonth.setComplete(performanceCompleteInfo.getComplete());
perfMonth.setMonth(performanceCompleteInfo.getMonth());
perfMonth.setTarget(performanceCompleteInfo.getTarget());
perfMonth.setCompleteRate(performanceCompleteInfo.getCompleteRate());
months.add(perfMonth);
}
performanceCompleteVo.setMonthData(months);
performanceCompleteResult.add(performanceCompleteVo);
}
return performanceCompleteResult;
}
/**
* 新增业绩目标
*
* @param basePerformanceCompleteInfo 业绩目标
* @return 结果
*/
@Override
public int insertBasePerformanceCompleteInfo(BasePerformanceCompleteInfo basePerformanceCompleteInfo)
{
basePerformanceCompleteInfo.setCreateTime(DateUtils.getNowDate());
return basePerformanceCompleteInfoMapper.insertBasePerformanceCompleteInfo(basePerformanceCompleteInfo);
}
/**
* 修改业绩目标
*
* @param basePerformanceCompleteInfo 业绩目标
* @return 结果
*/
@Override
public void updateBasePerformanceCompleteInfo(PerformanceCompleteVo performanceCompleteVo)
{
List<PerformanceCompleteVo.PerformanceMonth> monthData = performanceCompleteVo.getMonthData();
if (ObjectUtil.isNotEmpty(monthData)) {
for (PerformanceCompleteVo.PerformanceMonth monthDatum : monthData) {
BasePerformanceCompleteInfo basePerformanceCompleteInfo = new BasePerformanceCompleteInfo();
BeanUtil.copyProperties(monthDatum,basePerformanceCompleteInfo);
basePerformanceCompleteInfoMapper.updateBasePerformanceCompleteInfo(basePerformanceCompleteInfo);
}
}
}
/**
* 批量删除业绩目标
*
* @param ids 需要删除的业绩目标主键
* @return 结果
*/
@Override
public int deleteBasePerformanceCompleteInfoByIds(Long[] ids)
{
return basePerformanceCompleteInfoMapper.deleteBasePerformanceCompleteInfoByIds(ids);
}
/**
* 删除业绩目标信息
*
* @param id 业绩目标主键
* @return 结果
*/
@Override
public int deleteBasePerformanceCompleteInfoById(Long id)
{
return basePerformanceCompleteInfoMapper.deleteBasePerformanceCompleteInfoById(id);
}
@Override
public List<BasePerformanceCompleteInfo> selectBasePerformanceCompleteInfos(BasePerformanceCompleteInfo basePerformanceCompleteInfo) {
return basePerformanceCompleteInfoMapper.selectBasePerformanceCompleteInfoList(basePerformanceCompleteInfo);
}
}
package com.ruoyi.system.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.Validator;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.business.BasePerformanceCompleteInfo;
import com.ruoyi.system.domain.business.vo.PerformanceCompleteVo;
import com.ruoyi.system.mapper.business.BasePerformanceCompleteInfoMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -65,6 +74,9 @@ public class SysUserServiceImpl implements ISysUserService
@Autowired
protected Validator validator;
@Autowired
private BasePerformanceCompleteInfoMapper basePerformanceCompleteInfoMapper;
/**
* 根据条件分页查询用户列表
*
......@@ -430,11 +442,36 @@ public class SysUserServiceImpl implements ISysUserService
ur.setUserId(userId);
ur.setRoleId(roleId);
list.add(ur);
initPerformanceData(roleId,userId);
}
userRoleMapper.batchUserRole(list);
}
}
private void initPerformanceData(Long roleId,Long userId) {
SysRole sysRole = roleMapper.selectRoleById(roleId);
SysUser sysUser = userMapper.selectUserById(userId);
if (ObjectUtil.isNotNull(sysRole)) {
if (sysRole.getRoleKey().equals("xsry")) {
for (int i = 1; i < 13; i++) {
BasePerformanceCompleteInfo basePerformanceCompleteInfo = new BasePerformanceCompleteInfo();
basePerformanceCompleteInfo.setTargetType(1);
basePerformanceCompleteInfo.setUserId(userId);
basePerformanceCompleteInfo.setUserName(sysUser.getNickName());
basePerformanceCompleteInfo.setYear(DateUtil.thisYear());
basePerformanceCompleteInfo.setMonth(i);
basePerformanceCompleteInfo.setTarget(BigDecimal.ZERO);
basePerformanceCompleteInfo.setComplete(BigDecimal.ZERO);
basePerformanceCompleteInfo.setCompleteRate(BigDecimal.ZERO);
basePerformanceCompleteInfo.setCreateTime(new Date());
basePerformanceCompleteInfo.setCreateBy("SYSTEM");
basePerformanceCompleteInfoMapper.insertBasePerformanceCompleteInfo(basePerformanceCompleteInfo);
}
}
}
}
/**
* 通过用户ID删除用户
*
......
......@@ -14,6 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="wx" column="wx" />
<result property="khdz" column="khdz" />
<result property="khxq" column="khxq" />
<result property="gjc" column="gjc" />
<result property="khhy" column="khhy" />
<result property="yxdj" column="yxdj" />
<result property="khzt" column="khzt" />
......@@ -29,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectBaseCustomInfoVo">
select id, khxm, khgs, khly,khlx, cplb, sjh, wx, khdz, khxq, khhy, yxdj, khzt, gs, fzr,bq,bz, delete_flag, create_time, create_by, update_time, update_by from base_custom_info
select id, khxm, khgs, khly,khlx, cplb, sjh, wx, khdz, khxq,gjc, khhy, yxdj, khzt, gs, fzr,bq,bz, delete_flag, create_time, create_by, update_time, update_by from base_custom_info
</sql>
<select id="selectBaseCustomInfoList" parameterType="BaseCustomInfo" resultMap="BaseCustomInfoResult">
......@@ -91,9 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
group BY a.id
ORDER BY
CASE WHEN b.id IS NOT NULL THEN 0 ELSE 1 END,
a.yxdj DESC,
a.id DESC
a.update_time desc
</select>
<select id="selectBaseCustomInfoById" parameterType="Long" resultMap="BaseCustomInfoResult">
......@@ -113,6 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="wx != null">wx,</if>
<if test="khdz != null">khdz,</if>
<if test="khxq != null">khxq,</if>
<if test="gjc != null">gjc,</if>
<if test="khhy != null">khhy,</if>
<if test="yxdj != null">yxdj,</if>
<if test="khzt != null">khzt,</if>
......@@ -136,6 +136,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="wx != null">#{wx},</if>
<if test="khdz != null">#{khdz},</if>
<if test="khxq != null">#{khxq},</if>
<if test="gjc != null">#{gjc},</if>
<if test="khhy != null">#{khhy},</if>
<if test="yxdj != null">#{yxdj},</if>
<if test="khzt != null">#{khzt},</if>
......@@ -163,6 +164,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="wx != null">wx = #{wx},</if>
<if test="khdz != null">khdz = #{khdz},</if>
<if test="khxq != null">khxq = #{khxq},</if>
<if test="gjc != null">gjc = #{gjc},</if>
<if test="khhy != null">khhy = #{khhy},</if>
<if test="yxdj != null">yxdj = #{yxdj},</if>
<if test="khzt != null">khzt = #{khzt},</if>
......
......@@ -19,6 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="fplx" column="fplx" />
<result property="fpsl" column="fpsl" />
<result property="kpje" column="kpje" />
<result property="fkfs" column="fkfs" />
<result property="fpse" column="fpse" />
<result property="nsrsbh" column="nsrsbh" />
<result property="fpdm" column="fpdm" />
......@@ -46,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectBaseInvoiceInfoVo">
select id, contract_id, htbh, bm_id, bm, kh_id, khmc, htmc,payment_id, hkje, hkqs, fpnr, fplx, fpsl, kpje, fpse, nsrsbh,fpdm,fphm, dz, sjh, khh, yhzh, sprxm, sprdh, spryx, bz, fpzt, sqr,shr_id,shr, kpsj, dfkxy, dzhd, fpfj, create_time, create_by, update_time, update_by from base_invoice_info
select id, contract_id, htbh, bm_id, bm, kh_id, khmc, htmc,payment_id, hkje, hkqs, fpnr, fplx, fpsl, kpje,fkfs, fpse, nsrsbh,fpdm,fphm, dz, sjh, khh, yhzh, sprxm, sprdh, spryx, bz, fpzt, sqr,shr_id,shr, kpsj, dfkxy, dzhd, fpfj, create_time, create_by, update_time, update_by from base_invoice_info
</sql>
<select id="selectBaseInvoiceInfoList" parameterType="BaseInvoiceInfo" resultMap="BaseInvoiceInfoResult">
......@@ -124,6 +125,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fplx != null">fplx,</if>
<if test="fpsl != null">fpsl,</if>
<if test="kpje != null">kpje,</if>
<if test="fkfs != null">fkfs,</if>
<if test="fpse != null">fpse,</if>
<if test="nsrsbh != null">nsrsbh,</if>
<if test="fpdm != null">fpdm,</if>
......@@ -165,6 +167,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fplx != null">#{fplx},</if>
<if test="fpsl != null">#{fpsl},</if>
<if test="kpje != null">#{kpje},</if>
<if test="fkfs != null">#{fkfs},</if>
<if test="fpse != null">#{fpse},</if>
<if test="nsrsbh != null">#{nsrsbh},</if>
<if test="fpdm != null">#{fpdm},</if>
......@@ -209,6 +212,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fplx != null">fplx = #{fplx},</if>
<if test="fpsl != null">fpsl = #{fpsl},</if>
<if test="kpje != null">kpje = #{kpje},</if>
<if test="fkfs != null">fkfs = #{fkfs},</if>
<if test="fpse != null">fpse = #{fpse},</if>
<if test="nsrsbh != null">nsrsbh = #{nsrsbh},</if>
<if test="fpdm != null">fpdm = #{fpdm},</if>
......
......@@ -39,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="hkqs != null "> and hkqs = #{hkqs}</if>
<if test="hkje != null "> and hkje = #{hkje}</if>
<if test="hkfs != null "> and hkfs = #{hkfs}</if>
<if test="hkzt != null "> and hkzt = #{hkzt}</if>
<if test="kpzt != null "> and hkzt = #{kpzt}</if>
<if test="hkpz != null and hkpz != ''"> and hkpz = #{hkpz}</if>
<if test="skfs != null "> and skfs = #{skfs}</if>
<if test="bz != null and bz != ''"> and bz = #{bz}</if>
......@@ -64,7 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="hkqs != null">hkqs,</if>
<if test="hkje != null">hkje,</if>
<if test="hkfs != null">hkfs,</if>
<if test="hkzt != null">hkzt,</if>
<if test="kpzt != null">kpzt,</if>
<if test="hkpz != null">hkpz,</if>
<if test="skfs != null">skfs,</if>
<if test="bz != null">bz,</if>
......
<?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.ruoyi.system.mapper.business.BasePerformanceCompleteInfoMapper">
<resultMap type="BasePerformanceCompleteInfo" id="BasePerformanceCompleteInfoResult">
<result property="id" column="id" />
<result property="targetType" column="target_type" />
<result property="userId" column="user_id" />
<result property="userName" column="user_name" />
<result property="year" column="year" />
<result property="month" column="month" />
<result property="target" column="target" />
<result property="complete" column="complete" />
<result property="completeRate" column="complete_rate" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" />
</resultMap>
<sql id="selectBasePerformanceCompleteInfoVo">
select id, target_type, user_id, user_name, year, month, target, complete, complete_rate, create_time, create_by, update_time, update_by from base_performance_complete_info
</sql>
<select id="selectBasePerformanceCompleteInfoList" parameterType="BasePerformanceCompleteInfo" resultMap="BasePerformanceCompleteInfoResult">
<include refid="selectBasePerformanceCompleteInfoVo"/>
<where>
<if test="targetType != null "> and target_type = #{targetType}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
<if test="year != null "> and year = #{year}</if>
<if test="month != null "> and month = #{month}</if>
<if test="target != null "> and target = #{target}</if>
<if test="complete != null "> and complete = #{complete}</if>
<if test="completeRate != null "> and complete_rate = #{completeRate}</if>
</where>
</select>
<select id="selectBasePerformanceCompleteInfoById" parameterType="Long" resultMap="BasePerformanceCompleteInfoResult">
<include refid="selectBasePerformanceCompleteInfoVo"/>
where id = #{id}
</select>
<insert id="insertBasePerformanceCompleteInfo" parameterType="BasePerformanceCompleteInfo" useGeneratedKeys="true" keyProperty="id">
insert into base_performance_complete_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="targetType != null">target_type,</if>
<if test="userId != null">user_id,</if>
<if test="userName != null">user_name,</if>
<if test="year != null">year,</if>
<if test="month != null">month,</if>
<if test="target != null">target,</if>
<if test="complete != null">complete,</if>
<if test="completeRate != null">complete_rate,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="updateBy != null">update_by,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="targetType != null">#{targetType},</if>
<if test="userId != null">#{userId},</if>
<if test="userName != null">#{userName},</if>
<if test="year != null">#{year},</if>
<if test="month != null">#{month},</if>
<if test="target != null">#{target},</if>
<if test="complete != null">#{complete},</if>
<if test="completeRate != null">#{completeRate},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="updateBy != null">#{updateBy},</if>
</trim>
</insert>
<update id="updateBasePerformanceCompleteInfo" parameterType="BasePerformanceCompleteInfo">
update base_performance_complete_info
<trim prefix="SET" suffixOverrides=",">
<if test="targetType != null">target_type = #{targetType},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="userName != null">user_name = #{userName},</if>
<if test="year != null">year = #{year},</if>
<if test="month != null">month = #{month},</if>
<if test="target != null">target = #{target},</if>
<if test="complete != null">complete = #{complete},</if>
<if test="completeRate != null">complete_rate = #{completeRate},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBasePerformanceCompleteInfoById" parameterType="Long">
delete from base_performance_complete_info where id = #{id}
</delete>
<delete id="deleteBasePerformanceCompleteInfoByIds" parameterType="String">
delete from base_performance_complete_info where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment