合约规划、合规性手续bug修改

This commit is contained in:
2025-08-27 18:41:22 +08:00
parent f7940e23fa
commit 3ea6050dc3
18 changed files with 163 additions and 23 deletions

View File

@ -16,6 +16,7 @@ import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.web.core.BaseController;
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
import org.dromara.tender.domain.vo.BusBLimitListVersionsVo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -134,8 +135,8 @@ public class BusBiddingLimitListController extends BaseController {
@Log(title = "成本-投标", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusBiddingLimitListBo bo) {
return toAjax(busBiddingLimitListService.updateByBo(bo));
public R<Void> edit(@RequestBody List<BusBiddingLimitListBo> bos) {
return toAjax(busBiddingLimitListService.updateByBo(bos));
}
/**

View File

@ -1,9 +1,12 @@
package org.dromara.bidding.mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.bidding.domain.BusBiddingLimitList;
import org.dromara.bidding.domain.vo.BusBiddingLimitListVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* 成本-投标Mapper接口
*
@ -12,4 +15,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
*/
public interface BusBiddingLimitListMapper extends BaseMapperPlus<BusBiddingLimitList, BusBiddingLimitListVo> {
Boolean updateBatchByIdByNull(@Param("list") List<BusBiddingLimitList> list);
}

View File

@ -9,7 +9,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.tender.domain.vo.BusBLimitListVersionsVo;
import org.springframework.web.multipart.MultipartFile;
import java.util.Collection;
@ -62,7 +61,7 @@ public interface IBusBiddingLimitListService extends IService<BusBiddingLimitLis
* @param bo 成本-投标
* @return 是否修改成功
*/
Boolean updateByBo(BusBiddingLimitListBo bo);
Boolean updateByBo(List<BusBiddingLimitListBo> bo);
/**
* 校验并批量删除成本-投标信息

View File

@ -23,7 +23,8 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.utils.excel.ExcelDynamicReader;
import org.dromara.tender.domain.vo.BusBLimitListVersionsVo;
import org.dromara.tender.domain.BusBillofquantitiesLimitList;
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -128,10 +129,30 @@ public class BusBiddingLimitListServiceImpl extends ServiceImpl<BusBiddingLimitL
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(BusBiddingLimitListBo bo) {
public Boolean updateByBo(List<BusBiddingLimitListBo> bos) {
List<BusBiddingLimitList> list = new ArrayList<>();
for (BusBiddingLimitListBo bo : bos) {
if (bo.getId() == null) {
throw new ServiceException("id不能为空");
}
if (bo.getProjectId() == null) {
throw new ServiceException("项目id不能为空");
}
if (bo.getVersions() == null) {
throw new ServiceException("版本号不能为空");
}
BusBiddingLimitList update = MapstructUtils.convert(bo, BusBiddingLimitList.class);
if (bo.getUnitPrice() == null){
update.setUnitPrice(null);
}
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
list.add(update);
}
if (list.isEmpty()) {
return false;
}
return baseMapper.updateBatchByIdByNull(list);
}
/**

View File

@ -105,6 +105,17 @@ public class BusFormalitiesAreConsolidatedController extends BaseController {
return toAjax(busFormalitiesAreConsolidatedService.insertByBo(bo));
}
/**
* 新增手续模板和合规性手续合账
*/
@SaCheckPermission("formalities:formalitiesAreConsolidated:addFormalities")
@Log(title = "合规性手续合账", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/addFormalities")
public R<Void> addFormalities(@Validated(AddGroup.class) @RequestBody BusFormalitiesAreConsolidatedBo bo) {
return toAjax(busFormalitiesAreConsolidatedService.insertByFormalitiesByBo(bo));
}
/**
* 修改合规性手续合账
*/

View File

@ -23,5 +23,9 @@ public class AddBusFormalitiesAreConsolidatedBo implements Serializable {
* 手续办理清单模板id
*/
private Long formalitiesId;
/**
* 模板名称
*/
private String formalitiesName;
}

View File

@ -98,6 +98,11 @@ public class BusFormalitiesAreConsolidatedBo extends BaseEntity {
*/
private Date createPTime;
/**
* 新建模板对象
*/
private AddBusFormalitiesAreConsolidatedBo addBusFormalitiesAreConsolidatedBo;
/**
* 选择的模板id
*/

View File

@ -87,4 +87,6 @@ public interface IBusFormalitiesAreConsolidatedService extends IService<BusForma
* @return
*/
List<BusListOfFormalitiesVo> getFormalitieTree(BusFormalitiesAreConsolidatedBo bo);
Boolean insertByFormalitiesByBo(BusFormalitiesAreConsolidatedBo bo);
}

View File

@ -26,6 +26,7 @@ import org.dromara.formalities.service.IBusListOfFormalitiesService;
import org.dromara.formalities.utils.TreeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@ -103,6 +104,41 @@ public class BusFormalitiesAreConsolidatedServiceImpl extends ServiceImpl<BusFor
return tree;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByFormalitiesByBo(BusFormalitiesAreConsolidatedBo bo) {
BusListOfFormalitiesBo ofFormalitiesBo = new BusListOfFormalitiesBo();
ofFormalitiesBo.setPid(bo.getAddBusFormalitiesAreConsolidatedBo().getFormalitiesPid());
ofFormalitiesBo.setName(bo.getAddBusFormalitiesAreConsolidatedBo().getFormalitiesName());
busListOfFormalitiesService.insertByBo(ofFormalitiesBo);
List<BusFormalitiesAreConsolidated> list = new ArrayList<>();
BusListOfFormalities formalities = busListOfFormalitiesService.getById(ofFormalitiesBo.getId());
BusFormalitiesAreConsolidated busFormalitiesAreConsolidated = new BusFormalitiesAreConsolidated();
busFormalitiesAreConsolidated.setProjectId(bo.getProjectId());
busFormalitiesAreConsolidated.setFormalitiesId(formalities.getId());
busFormalitiesAreConsolidated.setFormalitiesName(formalities.getName());
busFormalitiesAreConsolidated.setFormalitiesPid(formalities.getPid());
busFormalitiesAreConsolidated.setCreatePTime(formalities.getCreateTime());
busFormalitiesAreConsolidated.setProcessingStatus(FormalitiesStatusEnum.TOSTART.getText());
list.add(busFormalitiesAreConsolidated);
Long count = baseMapper.selectCount(new LambdaQueryWrapper<BusFormalitiesAreConsolidated>()
.eq(BusFormalitiesAreConsolidated::getFormalitiesId, formalities.getPid()));
if (count == 0) {
BusListOfFormalities formalities1 = busListOfFormalitiesService.getById(formalities.getPid());
if (formalities1 != null) {
BusFormalitiesAreConsolidated busFormalitiesAreConsolidated1 = new BusFormalitiesAreConsolidated();
busFormalitiesAreConsolidated1.setFormalitiesId(formalities.getPid());
busFormalitiesAreConsolidated1.setFormalitiesName(formalities1.getName());
busFormalitiesAreConsolidated1.setProjectId(bo.getProjectId());
busFormalitiesAreConsolidated1.setStatus(1);
busFormalitiesAreConsolidated1.setCreatePTime(formalities.getCreateTime());
list.add(busFormalitiesAreConsolidated1);
}
}
return baseMapper.insertBatch(list);
}
private LambdaQueryWrapper<BusFormalitiesAreConsolidated> buildQueryWrapper(BusFormalitiesAreConsolidatedBo bo) {
Map<String, Object> params = bo.getParams();

View File

@ -80,7 +80,7 @@ public class BusListOfFormalitiesServiceImpl extends ServiceImpl<BusListOfFormal
// 单层循环判断
for (BusListOfFormalitiesVo vo : voList) {
if (consolidatedIds.contains(vo.getId())) {
if (consolidatedIds.contains(vo.getId()) && (vo.getPid()!=null && 0 != vo.getPid())) {
vo.setStatus(1);
} else {
vo.setStatus(0);

View File

@ -2,6 +2,7 @@ package org.dromara.tender.controller;
import java.util.List;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
@ -129,9 +130,9 @@ public class BusBillofquantitiesLimitListController extends BaseController {
@Log(title = "限价一览", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusBillofquantitiesLimitListBo bo) {
public R<Void> edit(@RequestBody List<BusBillofquantitiesLimitListBo> bos) {
// bo.setType(LimitListTypeEnum.COMPANY.getCode());
return toAjax(busBillofquantitiesLimitListService.updateByBo(bo));
return toAjax(busBillofquantitiesLimitListService.updateByBo(bos));
}
/**

View File

@ -130,13 +130,13 @@ public class BusTenderPlanLimitListController extends BaseController {
/**
* 修改限价一览
*/
@SaCheckPermission("tender:tenderPlanLimitList ")
@SaCheckPermission("tender:tenderPlanLimitList:edit")
@Log(title = "限价一览", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusBillofquantitiesLimitListBo bo) {
public R<Void> edit(@RequestBody List<BusBillofquantitiesLimitListBo> bos) {
// bo.setType(LimitListTypeEnum.COMPANY.getCode());
return toAjax(busBillofquantitiesLimitListService.updateByBo(bo));
return toAjax(busBillofquantitiesLimitListService.updateByBo(bos));
}
/**

View File

@ -1,5 +1,6 @@
package org.dromara.tender.domain;
import org.dromara.common.mybatis.annotation.DataColumn;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@ -86,6 +87,7 @@ public class BusBillofquantitiesLimitList extends BaseEntity {
/**
* 单价
*/
@TableField("unit_price")
private BigDecimal unitPrice;
/**

View File

@ -18,4 +18,7 @@ public interface BusBillofquantitiesLimitListMapper extends BaseMapperPlus<BusBi
//,@Param("type") String type
List<BusBillofquantitiesLimitListVo> selectListBySids(@Param("sids") List<String> sids);
//批量修改允许字段为空
Boolean updateBatchByIdByNull(@Param("list") List<BusBillofquantitiesLimitList> list);
}

View File

@ -1,6 +1,5 @@
package org.dromara.tender.service;
import jakarta.validation.constraints.NotNull;
import org.dromara.tender.domain.bo.TenderAllVersionNumbersReq;
import org.dromara.tender.domain.vo.BusBLimitListVersionsVo;
import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
@ -62,7 +61,7 @@ public interface IBusBillofquantitiesLimitListService extends IService<BusBillof
* @param bo 限价一览
* @return 是否修改成功
*/
Boolean updateByBo(BusBillofquantitiesLimitListBo bo);
Boolean updateByBo(List<BusBillofquantitiesLimitListBo> bo);
/**
* 校验并批量删除限价一览信息

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -23,6 +24,7 @@ import org.dromara.tender.service.IBusBLimitListVersionsService;
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
@ -127,14 +129,35 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl<BusBill
/**
* 修改限价一览
*
* @param bo 限价一览
* @param bos 限价一览
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(BusBillofquantitiesLimitListBo bo) {
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(List<BusBillofquantitiesLimitListBo> bos) {
List<BusBillofquantitiesLimitList> list = new ArrayList<>();
for (BusBillofquantitiesLimitListBo bo : bos) {
if (bo.getId() == null) {
throw new ServiceException("id不能为空");
}
if (bo.getProjectId() == null) {
throw new ServiceException("项目id不能为空");
}
if (bo.getVersions() == null) {
throw new ServiceException("版本号不能为空");
}
BusBillofquantitiesLimitList update = MapstructUtils.convert(bo, BusBillofquantitiesLimitList.class);
if (bo.getUnitPrice() == null){
update.setUnitPrice(null);
}
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
list.add(update);
}
if (list.isEmpty()) {
return false;
}
return baseMapper.updateBatchByIdByNull(list);
}
/**

View File

@ -4,4 +4,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.bidding.mapper.BusBiddingLimitListMapper">
<update id="updateBatchByIdByNull">
UPDATE bus_bidding_limit_list
SET
unit_price = CASE id
<foreach collection="list" item="item">
WHEN #{item.id} THEN #{item.unitPrice}
</foreach>
ELSE unit_price
END
WHERE id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
</mapper>

View File

@ -19,6 +19,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result column="unit_price" property="unitPrice"/>
<result column="remark" property="remark"/>
</resultMap>
<update id="updateBatchByIdByNull">
UPDATE bus_billofquantities_limit_list
SET
unit_price = CASE id
<foreach collection="list" item="item">
WHEN #{item.id} THEN #{item.unitPrice}
</foreach>
ELSE unit_price
END
WHERE id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
<!-- b.type = #{type} and-->