Commit b4e62e24 authored by realize1020's avatar realize1020

把京能服务端代码从客户端文件夹里删除掉,单独出来成一个仓库

parent 52cc3c7b
Pipeline #928 failed with stages

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>OBE-SERVICE</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.gx.obe.server.common.log.AutoConfiguration
\ No newline at end of file
<?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.gx.obe.server.management.im.dao.GroupItemMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.gx.obe.server.management.im.entity.GroupItem">
<id column="GROUP_ITEM_ID" property="id"/>
<result column="GROUP_ID" property="groupId"/>
<result column="USER_ID" property="userId"/>
<result column="ITEM_TYPE" property="itemType"/>
<result column="NICK_NAME" property="nickName"/>
</resultMap>
<!-- 通用查询映射结果 -->
<resultMap id="EmployeeResultMap" type="com.gx.obe.server.management.im.entity.Employee">
<id column="EMPLOYEE_ID" property="id"/>
<result column="EMPLOYEE_NAME" property="employeeName"/>
<result column="ACCOUNT" property="account"/>
<result column="PASSWORD" property="password"/>
<result column="NUMBER" property="number"/>
<result column="AVATAR" property="avatar"/>
<result column="POSITION" property="position"/>
<result column="GENDER" property="gender"/>
<result column="AGE" property="age"/>
<result column="DEPARTMENTS" property="departments"/>
<result column="EMAIL" property="email"/>
<result column="MOBILE_PHONE" property="mobilePhone"/>
<result column="COMPANY_TEL" property="companyTel"/>
<result column="OTHER_TEL" property="otherTel"/>
<result column="FAX_TEL" property="faxTel"/>
<result column="ADDRESS" property="address"/>
<result column="ZIPCODE" property="zipcode"/>
<result column="BIRTHDAY" property="birthday"/>
<result column="BLOOD_TYPE" property="bloodType"/>
<result column="PERSONAL_WEB" property="personalWeb"/>
<result column="SIGNATURE" property="signature"/>
<result column="PERSONAL_NOTE" property="personalNote"/>
<result column="USE_STATUS" property="useStatus"/>
<result column="IP" property="ip"/>
<result column="PORT" property="port"/>
<result column="LINE_STATUS" property="lineStatus"/>
<result column="LOGIN_TIME" property="loginTime"/>
<result column="ONLINE_TIME" property="onlineTime"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
GROUP_ITEM_ID, GROUP_ID, USER_ID, ITEM_TYPE, NICK_NAME
</sql>
<!-- 批量更新 -->
<update id="updateBatchList" parameterType="java.util.List">
UPDATE
group_item
<set>
GROUP_ID =
<foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end">
<if test="GroupItem.groupId != null">
when #{GroupItem.id} then #{GroupItem.groupId}
</if>
<if test="GroupItem.groupId == null">
when #{GroupItem.id} then GROUP_ID
</if>
</foreach>
USER_ID =
<foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end">
<if test="GroupItem.userId != null">
when #{GroupItem.id} then #{GroupItem.userId}
</if>
<if test="GroupItem.userId == null">
when #{GroupItem.id} then USER_ID
</if>
</foreach>
ITEM_TYPE =
<foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end">
<if test="GroupItem.itemType != null">
when #{GroupItem.id} then #{GroupItem.itemType}
</if>
<if test="GroupItem.itemType == null">
when #{GroupItem.id} then ITEM_TYPE
</if>
</foreach>
NICK_NAME =
<foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end">
<if test="GroupItem.nickName != null">
when #{GroupItem.id} then #{GroupItem.nickName}
</if>
<if test="GroupItem.nickName == null">
when #{GroupItem.id} then NICK_NAME
</if>
</foreach>
</set>
<where>
GROUP_ITEM_ID IN
<foreach collection="GroupItemList" item="GroupItem" index="index" separator="," open="(" close=")">
#{GroupItem.id}
</foreach>
</where>
</update>
<!-- 批量插入-->
<insert id="insertByBatch" parameterType="java.util.List">
insert into group_item
(
GROUP_ITEM_ID, GROUP_ID, USER_ID, ITEM_TYPE, NICK_NAME
)
values
<foreach collection="GroupItemList" item="GroupItem" index="index" open="" close="" separator=",">
(
#{GroupItem.id},
#{GroupItem.groupId},
#{GroupItem.userId},
#{GroupItem.itemType},
#{GroupItem.nickName}
)
</foreach>
</insert>
<!-- 指定字段修改 -->
<update id="updateAssignProperty">
UPDATE
group_item
<set>
<foreach collection="attributes" item="attribute" index="index" open="" close="" separator=",">
<if test="attribute == 'groupId'">
GROUP_ID = #{GroupItem.groupId}
</if>
<if test="attribute == 'userId'">
USER_ID = #{GroupItem.userId}
</if>
<if test="attribute == 'itemType'">
ITEM_TYPE = #{GroupItem.itemType}
</if>
<if test="attribute == 'nickName'">
NICK_NAME = #{GroupItem.nickName}
</if>
</foreach>
</set>
<where>
GROUP_ITEM_ID = #{GroupItem.id}
</where>
</update>
<!-- 批量指定字段修改 -->
<update id="batchUpdateProperty">
UPDATE
group_item
<set>
<foreach collection="attributes" item="attribute" index="index" open="" close="" separator=",">
<if test="attribute == 'groupId'">
GROUP_ID =
<foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end">
when #{GroupItem.id} then #{GroupItem.groupId}
</foreach>
</if>
<if test="attribute == 'userId'">
USER_ID =
<foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end">
when #{GroupItem.id} then #{GroupItem.userId}
</foreach>
</if>
<if test="attribute == 'itemType'">
ITEM_TYPE =
<foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end">
when #{GroupItem.id} then #{GroupItem.itemType}
</foreach>
</if>
<if test="attribute == 'nickName'">
NICK_NAME =
<foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end">
when #{GroupItem.id} then #{GroupItem.nickName}
</foreach>
</if>
</foreach>
</set>
<where>
GROUP_ITEM_ID IN
<foreach collection="GroupItemList" item="GroupItem" index="index" separator="," open="(" close=")">
#{GroupItem.id}
</foreach>
</where>
</update>
<!-- 获得群组成员 -->
<select id="getGroupItemByGroupId" resultMap="EmployeeResultMap">
SELECT
t.*
FROM
employee t
LEFT JOIN group_item g ON t.EMPLOYEE_ID = g.USER_ID
WHERE
g.GROUP_ID = #{groupId}
</select>
</mapper>
package com.gx.obe.server.common.enumeration;
import java.io.Serializable;
import com.gx.obe.server.common.utils.StringUtils;
/**
* @Description: 公用的枚举类型
* @author guoyr
*/
public class CommonEnum implements Serializable{
/**
*/
private static final long serialVersionUID = 1L;
/**
* 是否
*/
public static final String YES = "01";
public static final String NO = "00";
/**
* 是否叶子结点 0:非叶子结点;1:叶子结点
*/
public static final String LEAF = "1";
public static final String NO_LEAF = "0";
/**
* 保存状态 未保存:00,保存:01,提交:02
*/
public static final String SAVE_TEMP = "00";
public static final String SAVE_SAVE = "01";
public static final String SAVE_SUBMIT = "02";
public static final String SAVE_OPERATOR_INPUT = "03";
/**
* 使用状态(00:临时; 01:正式;02:删除;03:停止使用;05:归档项目)
*/
public static final String TEMP_STATUS = "00";
public static final String REAL_STATUS = "01";
public static final String DELETE_STATUS = "02";
public static final String UNABLE_STATUS = "03";
public static final String ARCHIVE_STATUS = "05";
public static final String getUseStatusCN(String str) {
String useStatusCN = "临时";
if(null == str || "".equals(str) || str.equals(TEMP_STATUS)){
useStatusCN ="临时";
}else if(str.equals(REAL_STATUS)){
useStatusCN ="正式";
}else if(str.equals(DELETE_STATUS)){
useStatusCN ="已删除";
}else if(str.equals(UNABLE_STATUS)){
useStatusCN ="已停用";
}else if(str.equals(ARCHIVE_STATUS)){
useStatusCN ="已归档";
}
return useStatusCN ;
}
/**
* 默认状态(00:非默认状态;01:默认状态)
*/
public static final String IS_DEFAULT = "01";
public static final String NOT_DEFAULT = "00";
public static final String getDefaultStatusCN(String str) {
String defaultStatusCN = "非默认状态";
if(null == str || "".equals(str) || str.equals(NOT_DEFAULT)){
defaultStatusCN = "非默认状态";
}else if(str.equals(IS_DEFAULT)){
defaultStatusCN = "默认状态";
}
return defaultStatusCN ;
}
/**
* 进度状态[00:未开始;01:进行中;02:完成;03:回退;04:停止;11:专家审核;12:经理审核]
*/
public static final String NOT_START="00";
public static final String IN_PROGRESS="01";
public static final String COMPLETE="02";
public static final String RE_OPERATOR="03";
public static final String STOP="04";
public static final String IN_EXPERT_REVIEW="11";
public static final String IN_MANAGER_REVIEW="12";
public static final String FAILE="04";
public static final String START="05";
public static final String STOPPED="06";
public static final String getStatusCN(String str){
String type = "未开始";
if(StringUtils.isNotEmpty(str)){
if(str.equals(COMPLETE)){
type = "完成";
}else if(str.equals(IN_PROGRESS)){
type = "进行中";
}else if(str.equals(RE_OPERATOR)){
type = "重新操作";
}else if(str.equals(FAILE)){
type = "失败";
}
}
return type;
}
/**
* @Description: 比较两个进度
* @author guoyr
* @author guoyr
* @author guoyr
* @author guoyr
* @param sourceStatus
* @param targetStatus
* @return
*/
public static int complateStatus(String sourceStatus, String targetStatus){
if(StringUtils.isNotEmpty(sourceStatus) && StringUtils.isNotEmpty(targetStatus)){
return sourceStatus.compareTo(targetStatus);
}else if(StringUtils.isNotEmpty(sourceStatus) && StringUtils.isEmpty(targetStatus)){
return 1;
}else if(StringUtils.isEmpty(sourceStatus) && StringUtils.isNotEmpty(targetStatus)){
return -1;
} else {
return 0;
}
}
/**
* 金额单位[00:元;01:万元]
*/
public static final String YUAN="00";
public static final String WAN_YUAN="01";
public static final String PRICE_PERENT="02";
public static final String getPriceUintCN(String str){
String type = "元";
if(StringUtils.isNotEmpty(str)){
if(str.equals(WAN_YUAN)){
type = "万元";
}else if(str.equals(PRICE_PERENT)){
type = "%";
}
}
return type;
}
/**
* 直播组件类型
*/
public static final String LIVING_COM_GXCX = "00";//国信创新直播组件
public static final String LIVING_COM_FLX = "01";//飞利信直播组件
public static final String LIVING_COM_OTHER = "02";//其他直播
public static final String LIVING_COM_RTMP = "04";//百度推流RTMP推流
public static final String LIVING_COM_HTTP = "05";//百度推流HTTP推流
public static final String LIVING_COM = "06";//百度推流
}
package com.gx.obe.server.management.fileload.controller;
import static com.gx.obe.server.management.fileload.utill.FileUtils.generatePath;
import static com.gx.obe.server.management.fileload.utill.FileUtils.merge;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.gx.obe.server.common.utils.StringUtils;
import com.gx.obe.server.common.vo.Result;
import com.gx.obe.server.management.fileload.entity.FileChunk;
import com.gx.obe.server.management.fileload.entity.FileInfoEntity;
import com.gx.obe.server.management.fileload.entity.ParameterInfo;
import com.gx.obe.server.management.fileload.service.BidFileService;
import com.gx.obe.server.management.fileload.utill.FileMd5Util;
/**
* @Description:
* @author mazc
*/
@RestController
@RequestMapping("/bidFileUploader")
public class BidFileUploadController {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(BidFileUploadController.class);
@Value("${upload.folder}")
private String bidFileFolder;
@Autowired
private BidFileService bidFileService;
@PostMapping("/chunk")
public Result<String> uploadChunk(FileChunk chunk) {
MultipartFile file = chunk.getFile();
try {
byte[] bytes = file.getBytes();
Path path = Paths.get(generatePath(bidFileFolder, chunk));
//文件写入指定路径
Files.write(path, bytes);
Result<String> result = new Result<String>();
result.setCode(Result.SUCCESS);
result.setData("success");
result.setMsg("上传成功");
return result;
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
Result<String> result = new Result<String>();
result.setCode(Result.FAIL);
result.setData("fail");
result.setMsg("上传异常");
return result;
}
}
@GetMapping("/getFileNumber")
public int getFileNumber(String tenderId,String supplierId,String type) {
StringBuilder sb = new StringBuilder();
sb.append(bidFileFolder);
if(StringUtils.isNotEmpty(tenderId) ) {
sb.append("/").append(tenderId.trim());
}
if(StringUtils.isNotEmpty(supplierId) ) {
sb.append("/").append(supplierId.trim());
}
if(StringUtils.isNotEmpty(type) ) {
sb.append("/").append(type);
}
if (!Files.isWritable(Paths.get(sb.toString()))) {
return 0;
}
Path path = Paths.get(sb.toString());
File file = new File(path.toString());
return file.list().length;
}
@PostMapping("/checkFile")
public boolean checkChunk(ParameterInfo fileInfo) {
Path path = Paths.get(generatePath(bidFileFolder, fileInfo));
File file = new File(path.toString());
if(file.exists()) {
return true;
}
return false;
}
@PostMapping("/checkFileMD5")
public boolean checkChunkMD5(FileChunk fileChunk) {
Path path = Paths.get(generatePath(bidFileFolder, fileChunk));
File file = new File(path.toString());
if(file.exists()) {
if(MD5check(file,fileChunk.getFileChunkMD5())) {
return true;
}
}
return false;
}
@PostMapping("/chunk/mergeFile")
public Result<String> mergeFile(ParameterInfo fileInfo) {
String filename = fileInfo.getFilename();
StringBuilder sb = new StringBuilder();
sb.append(bidFileFolder).append("/").append(fileInfo.getTenderId().trim());
if(StringUtils.isNotEmpty(fileInfo.getSupplierId()) ) {
sb.append("/").append(fileInfo.getSupplierId().trim());
}
if(StringUtils.isNotEmpty(fileInfo.getFileType())) {
sb.append("/").append(fileInfo.getFileType().trim());
}
String file = sb.toString() + "/" + filename;
String folder = sb.toString() ;
try {
merge(file, folder, filename);
} catch (IOException e) {
log.error(e.getMessage());
Result<String> result = new Result<String>();
result.setCode(Result.FAIL);
result.setData("fail");
result.setMsg("上传异常");
return result;
}
Result<String> result = new Result<String>();
result.setCode(Result.SUCCESS);
result.setData("success");
result.setMsg("上传成功!");
if(!MD5check(new File(file),fileInfo.getFileMD5())) {
result.setMsg("上传成功,文件MD5校验失败!");
}
return result;
}
private boolean MD5check(File file ,String fileMD5){
String md5 = FileMd5Util.getFileMD5(file);
return md5.equals(md5);
}
@PostMapping("/getBidFile")
public List<FileInfoEntity> getReportFile(ParameterInfo fileInfo) {
List<FileInfoEntity> list = bidFileService.getReportFile(bidFileFolder, fileInfo);
return list;
}
}
package com.gx.obe.server.management.evaluation.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gx.obe.server.management.evaluation.entity.SupplierEvaluationFactor;
/**
* @Description:
* @author mazc
*/
@Mapper
public interface SupplierEvaluationFactorMapper extends BaseMapper<SupplierEvaluationFactor> {
/**
* @Description: 批量更新
* @author mazc
* @param ObeSupplierEvaluationFactorList
*/
Integer updateBatchList(@Param("ObeSupplierEvaluationFactorList") List<SupplierEvaluationFactor> ObeSupplierEvaluationFactorList);
/**
* @Description: 批量插入
* @author mazc
* @param ObeSupplierEvaluationFactorList
*/
Integer insertByBatch(@Param("ObeSupplierEvaluationFactorList") List<SupplierEvaluationFactor> ObeSupplierEvaluationFactorList);
/**
* @Description: 指定字段修改
* @author chenxw
* @param ObeSupplierEvaluationFactor
*/
Integer updateAssignProperty(@Param("ObeSupplierEvaluationFactor") SupplierEvaluationFactor ObeSupplierEvaluationFactor, @Param("attributes") String[] attributes);
/**
* @Description: 批量指定字段修改
* @author chenxw
* @param ObeSupplierEvaluationFactorList
*/
Integer batchUpdateProperty(@Param("ObeSupplierEvaluationFactorList") List<SupplierEvaluationFactor> ObeSupplierEvaluationFactorList, @Param("attributes") String[] attributes);
}
\ No newline at end of file
<?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.gx.obe.server.management.dictionary.dao.ProjectTemplateMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.gx.obe.server.management.dictionary.entity.ProjectTemplate">
<id column="TENDER_TEMPLATE_ID" property="id"/>
<result column="TEMPLATE_ID" property="templateId"/>
<result column="MODIFY_DATE" property="modifyDate"/>
<result column="LOCAL_TEMPLATE_NAME" property="localTemplateName"/>
<result column="LOCAL_TEMPLATE_SUFFIX" property="localTemplateSuffix"/>
<result column="TEMPLATE_TYPE" property="templateType"/>
<result column="PROJECT_TYPE" property="projectType"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
TENDER_TEMPLATE_ID, TEMPLATE_ID, MODIFY_DATE, LOCAL_TEMPLATE_NAME, LOCAL_TEMPLATE_SUFFIX, TEMPLATE_TYPE, PROJECT_TYPE
</sql>
<!-- 批量更新 -->
<update id="updateBatchList" parameterType="java.util.List">
UPDATE
obe_project_template
<set>
TEMPLATE_ID =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
<if test="ObeProjectTemplate.templateId != null">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.templateId}
</if>
<if test="ObeProjectTemplate.templateId == null">
when #{ObeProjectTemplate.id} then TEMPLATE_ID
</if>
</foreach>
MODIFY_DATE =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
<if test="ObeProjectTemplate.modifyDate != null">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.modifyDate}
</if>
<if test="ObeProjectTemplate.modifyDate == null">
when #{ObeProjectTemplate.id} then MODIFY_DATE
</if>
</foreach>
LOCAL_TEMPLATE_NAME =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
<if test="ObeProjectTemplate.localTemplateName != null">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.localTemplateName}
</if>
<if test="ObeProjectTemplate.localTemplateName == null">
when #{ObeProjectTemplate.id} then LOCAL_TEMPLATE_NAME
</if>
</foreach>
LOCAL_TEMPLATE_SUFFIX =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
<if test="ObeProjectTemplate.localTemplateSuffix != null">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.localTemplateSuffix}
</if>
<if test="ObeProjectTemplate.localTemplateSuffix == null">
when #{ObeProjectTemplate.id} then LOCAL_TEMPLATE_SUFFIX
</if>
</foreach>
TEMPLATE_TYPE =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
<if test="ObeProjectTemplate.templateType != null">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.templateType}
</if>
<if test="ObeProjectTemplate.templateType == null">
when #{ObeProjectTemplate.id} then TEMPLATE_TYPE
</if>
</foreach>
PROJECT_TYPE =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
<if test="ObeProjectTemplate.projectType != null">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.projectType}
</if>
<if test="ObeProjectTemplate.projectType == null">
when #{ObeProjectTemplate.id} then PROJECT_TYPE
</if>
</foreach>
</set>
<where>
TENDER_TEMPLATE_ID IN
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator="," open="(" close=")">
#{ObeProjectTemplate.id}
</foreach>
</where>
</update>
<!-- 批量插入-->
<insert id="insertByBatch" parameterType="java.util.List">
insert into obe_project_template
(
TENDER_TEMPLATE_ID, TEMPLATE_ID, MODIFY_DATE, LOCAL_TEMPLATE_NAME, LOCAL_TEMPLATE_SUFFIX, TEMPLATE_TYPE, PROJECT_TYPE
)
values
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" open="" close="" separator=",">
(
#{ObeProjectTemplate.id},
#{ObeProjectTemplate.templateId},
#{ObeProjectTemplate.modifyDate},
#{ObeProjectTemplate.localTemplateName},
#{ObeProjectTemplate.localTemplateSuffix},
#{ObeProjectTemplate.templateType},
#{ObeProjectTemplate.projectType}
)
</foreach>
</insert>
<!-- 指定字段修改 -->
<update id="updateAssignProperty">
UPDATE
obe_project_template
<set>
<foreach collection="attributes" item="attribute" index="index" open="" close="" separator=",">
<if test="attribute == 'templateId'">
TEMPLATE_ID = #{ObeProjectTemplate.templateId}
</if>
<if test="attribute == 'modifyDate'">
MODIFY_DATE = #{ObeProjectTemplate.modifyDate}
</if>
<if test="attribute == 'localTemplateName'">
LOCAL_TEMPLATE_NAME = #{ObeProjectTemplate.localTemplateName}
</if>
<if test="attribute == 'localTemplateSuffix'">
LOCAL_TEMPLATE_SUFFIX = #{ObeProjectTemplate.localTemplateSuffix}
</if>
<if test="attribute == 'templateType'">
TEMPLATE_TYPE = #{ObeProjectTemplate.templateType}
</if>
<if test="attribute == 'projectType'">
PROJECT_TYPE = #{ObeProjectTemplate.projectType}
</if>
</foreach>
</set>
<where>
TENDER_TEMPLATE_ID = #{ObeProjectTemplate.id}
</where>
</update>
<!-- 批量指定字段修改 -->
<update id="batchUpdateProperty">
UPDATE
obe_project_template
<set>
<foreach collection="attributes" item="attribute" index="index" open="" close="" separator=",">
<if test="attribute == 'templateId'">
TEMPLATE_ID =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.templateId}
</foreach>
</if>
<if test="attribute == 'modifyDate'">
MODIFY_DATE =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.modifyDate}
</foreach>
</if>
<if test="attribute == 'localTemplateName'">
LOCAL_TEMPLATE_NAME =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.localTemplateName}
</foreach>
</if>
<if test="attribute == 'localTemplateSuffix'">
LOCAL_TEMPLATE_SUFFIX =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.localTemplateSuffix}
</foreach>
</if>
<if test="attribute == 'templateType'">
TEMPLATE_TYPE =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.templateType}
</foreach>
</if>
<if test="attribute == 'projectType'">
PROJECT_TYPE =
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator=" " open="case TENDER_TEMPLATE_ID" close="end">
when #{ObeProjectTemplate.id} then #{ObeProjectTemplate.projectType}
</foreach>
</if>
</foreach>
</set>
<where>
TENDER_TEMPLATE_ID IN
<foreach collection="ObeProjectTemplateList" item="ObeProjectTemplate" index="index" separator="," open="(" close=")">
#{ObeProjectTemplate.id}
</foreach>
</where>
</update>
<select id="getLatestModifyTime" resultType="Date">
SELECT MAX(MODIFY_DATE) MODIFY_TIME
FROM OBE_PROJECT_TEMPLATE
</select>
</mapper>
package com.gx.obe.server.management.project.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
/**
* @Description:
* @author mazc
*/
@TableName("obe_bill_table_project_result")
public class BillTableProjectResult extends Model<BillTableProjectResult> {
private static final long serialVersionUID=1L;
/**
* 结果主键
*/
@TableId("RESULT_ID")
private String id;
/**
* 项目ID
*/
@TableField("TENDER_ID")
private String tenderId;
/**
* 供应商ID
*/
@TableField("SUPPLIER_ID")
private String supplierId;
/**
* 用户ID
*/
@TableField("USER_ID")
private String userId;
/**
* 单项工程编号
*/
@TableField("DX_PROJECT_CODE")
private String dxProjectCode;
/**
* 单位工程编号
*/
@TableField("DW_PROJECT_CODE")
private String dwProjectCode;
/**
* 清单编码
*/
@TableField("BILL_CODE")
private String billCode;
/**
* 评审分值
*/
@TableField("SCORE")
private BigDecimal score;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTenderId(){
return tenderId;
}
public void setTenderId(String tenderId) {
this.tenderId = tenderId;
}
public String getSupplierId(){
return supplierId;
}
public void setSupplierId(String supplierId) {
this.supplierId = supplierId;
}
public String getUserId(){
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getDxProjectCode(){
return dxProjectCode;
}
public void setDxProjectCode(String dxProjectCode) {
this.dxProjectCode = dxProjectCode;
}
public String getDwProjectCode(){
return dwProjectCode;
}
public void setDwProjectCode(String dwProjectCode) {
this.dwProjectCode = dwProjectCode;
}
public String getBillCode(){
return billCode;
}
public void setBillCode(String billCode) {
this.billCode = billCode;
}
public BigDecimal getScore(){
return score;
}
public void setScore(BigDecimal score) {
this.score = score;
}
public static final String RESULT_ID ="RESULT_ID";
public static final String TENDER_ID ="TENDER_ID";
public static final String SUPPLIER_ID ="SUPPLIER_ID";
public static final String USER_ID ="USER_ID";
public static final String DX_PROJECT_CODE ="DX_PROJECT_CODE";
public static final String DW_PROJECT_CODE ="DW_PROJECT_CODE";
public static final String BILL_CODE ="BILL_CODE";
public static final String SCORE ="SCORE";
@Override
protected Serializable pkVal(){
return this.id;
}
@Override
public String toString() {
return "BillTableProjectResult{" +
", id=" + id +
", tenderId=" + tenderId +
", supplierId=" + supplierId +
", userId=" + userId +
", dxProjectCode=" + dxProjectCode +
", dwProjectCode=" + dwProjectCode +
", billCode=" + billCode +
", score=" + score +
"}";
}
}
package com.gx.obe.server.management.evaluation.dao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.gx.obe.server.management.evaluation.entity.EvaluationFactorResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* @Description:
* @author mazc
*/
/**
* @Description:
* @author mazc
*/
@Mapper
public interface EvaluationFactorResultMapper extends BaseMapper<EvaluationFactorResult> {
/**
* @Description: 批量修改
* @author mazc
* @param ObeEvaluationFactorResultList
*/
Integer updateBatchList (@Param("ObeEvaluationFactorResultList")List<EvaluationFactorResult> ObeEvaluationFactorResultList);
/**
* @Description: 批量插入
* @author mazc
* @param ObeEvaluationFactorResultList
*/
Integer insertByBatch (@Param("ObeEvaluationFactorResultList")List<EvaluationFactorResult> ObeEvaluationFactorResultList);
/**
* @Description: 获得评标专家的评标结果列表
* @author mazc
* @param tenderId
* @param stepId
* @param userId
* @param supplierId
* @return
*/
List<EvaluationFactorResult> getExpertEvaluationFactorResult(@Param("tenderId")String tenderId, @Param("stepId")String stepId,
@Param("userId")String userId, @Param("supplierId")String supplierId);
/**
* @Description: 获取同一指标评标结果不同的列表
* @author mazc
* @param tenderId
* @param stepId
* @param isScoreFactor
* @return
*/
List<Map<String, Object>> getSupplierDistinctFactorResultList(@Param("tenderId")String tenderId, @Param("stepId")String stepId,
@Param("isScoreFactor")boolean isScoreFactor);
/**
* @Description: 删除评标专家对指定评标步骤的所有评审记录
* @author mazc
* @param tenderId
* @param stepId
* @param userId
* @return
*/
Integer deleteEvaluationFactorResult(@Param("tenderId")String tenderId, @Param("stepId")String stepId,@Param("userId") String userId);
/**
* @Description: 获得当前评标步骤下供应商偏离性指标个数
* @author mazc
* @param tenderId
* @param stepId
* @param minDeviateCount
* @return
*/
List<Map<String, Object>> getSupplierDeviateClauseCountList(@Param("tenderId")String tenderId,@Param("stepId") String stepId, @Param("minDeviateCount")int minDeviateCount);
/**
* @Description: 删除一个或多个用户数据
* @author mazc
* @param tenderId
* @param stepId
* @param userIdList
* @return
*/
Integer deleteEvaluationResultAndUserId(@Param("tenderId") String tenderId,@Param("stepId")String stepId,@Param("userIdList")List<String> userIdList);
/**
* @Description: 重新开始评审 删除评审指标的评标结果
* @author mazc
* @param tenderId
* @return
*/
Integer deleteRestartEvaluation(@Param("tenderId")String tenderId);
/**
* @Description: 获得指标的平均分
* @author chenxw
* @param tenderId
* @param stepId
* @param supplierId
* @param removeMaxMin
* @return
*/
List<Map<String, Object>> getEvaluationFactorAvgScoreList(@Param("tenderId")String tenderId, @Param("stepId")String stepId, @Param("supplierId")String supplierId, @Param("removeMaxMin")boolean removeMaxMin);
/**
* @Description: 根据指标Id获取对应的指标评审结果
* @author chenxw
* @param tenderId
* @param stepId
* @param factorId
* @return
*/
List<EvaluationFactorResult> getEvaluationFactorResultList(@Param("tenderId")String tenderId, @Param("stepId")String stepId, @Param("factorId")String factorId, @Param("userId")String userId);
/**
* @Description: 获得评标专家的评标结果列表
* @author chenxw
* @param tenderId
* @param factorType
* @return
*/
List<EvaluationFactorResult> getResultListByFactorType(@Param("tenderId")String tenderId, @Param("factorType")String factorType);
/**
* @Description: 获取指定指标不同评审结果的个数
* @author chenxw
* @param tenderId
* @param stepId
* @param factorId
* @param userId
* @param result
* @param score
* @return
*/
Integer getSupplierDistinctFactorCount(@Param("tenderId")String tenderId, @Param("stepId")String stepId, @Param("factorId")String factorId, @Param("userId")String userId, @Param("result")String result, @Param("score")BigDecimal score);
/**
* @Description: 获得按供就商打分结果列表
* @author chenxw
* @param projectId
* @param groupCode
* @param userId
* @param supplierName
* @return
*/
List<Map<String, Object>> getSupplierEvaluationFactorResult(@Param("projectId")String projectId, @Param("groupCode")String groupCode, @Param("userId")String userId, @Param("supplierName")String supplierName);
/**
* @Description: 更新供应商评审指标得分
* @author chenxw
* @param evalScore
* @param projectId
* @param groupCode
* @param userId
* @param supplierName
*/
Integer updateSupplierEvalFactorScore(@Param("evalScore")BigDecimal evalScore, @Param("projectId")String projectId, @Param("groupCode")String groupCode, @Param("userId")String userId, @Param("supplierName")String supplierName);
/**
* @Description: 插入供应商评审指标结果
* @author chenxw
* @param projectId
* @param groupCode
* @param userId
* @param supplierName
* @param factorName
* @param evalScore
* @return
*/
Integer insertSupplierEvaluationFactorResult(@Param("projectId")String projectId, @Param("groupCode")String groupCode, @Param("userId")String userId, @Param("supplierName")String supplierName, @Param("factorName")String factorName, @Param("evalScore")BigDecimal evalScore);
}
\ No newline at end of file
package com.gx.obe.server.management.boq.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gx.obe.server.management.boq.entity.ObeSupplyMaterialDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author mazc
* @Description:
*/
@Mapper
public interface ObeSupplyMaterialDetailMapper extends BaseMapper<ObeSupplyMaterialDetail> {
/**
* @param ObeSupplyMaterialDetailList
* @Description: 批量更新
* @author mazc
*/
Integer updateBatchList(@Param("ObeSupplyMaterialDetailList") List<ObeSupplyMaterialDetail> ObeSupplyMaterialDetailList);
/**
* @param ObeSupplyMaterialDetailList
* @Description: 批量插入
* @author mazc
*/
Integer insertByBatch(@Param("ObeSupplyMaterialDetailList") List<ObeSupplyMaterialDetail> ObeSupplyMaterialDetailList);
/**
* @param ObeSupplyMaterialDetail
* @param attributes
* @Description: 指定字段修改
* @author chenxw
*/
Integer updateAssignProperty(@Param("ObeSupplyMaterialDetail") ObeSupplyMaterialDetail ObeSupplyMaterialDetail, @Param("attributes") String[] attributes);
/**
* @param ObeSupplyMaterialDetailList
* @param attributes
* @Description: 批量指定字段修改
* @author chenxw
*/
Integer batchUpdateProperty(@Param("ObeSupplyMaterialDetailList") List<ObeSupplyMaterialDetail> ObeSupplyMaterialDetailList, @Param("attributes") String[] attributes);
/**
* @param tenderId
* @return
* @Description 根据项目ID删除数据
*/
Integer deleteByTenderId(@Param("tenderId") String tenderId);
/**
* @param projectId
* @return
* @Description: 根据工程项目id获取招标人供应材料设备明细列表
* @author chenxw
*/
List<ObeSupplyMaterialDetail> getSupplyMaterialDetailListByProjectId(@Param("projectId") String projectId);
}
\ No newline at end of file
package com.gx.obe.server.management.evaluation.dao;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
import com.gx.obe.server.management.evaluation.entity.EvaluationReport;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* @Description:
* @author mazc
*/
@Mapper
public interface EvaluationReportMapper extends BaseMapper<EvaluationReport> {
/**
* @Description: 批量更新
* @author mazc
* @param ObeEvaluationReportList
*/
Integer updateBatchList (@Param("ObeEvaluationReportList") List<EvaluationReport> ObeEvaluationReportList);
/**
* @Description: 批量插入
* @author mazc
* @param ObeEvaluationReportList
*/
Integer insertByBatch (@Param("ObeEvaluationReportList")List<EvaluationReport> ObeEvaluationReportList);
/**
* @Description: 删除专家的评标报表
* @author mazc
* @param tenderId
* @param userId
* @param stepId
* @return
*/
Integer deleteUserEvaluationReport(@Param("tenderId")String tenderId, @Param("userId")String userId,@Param("stepId") String stepId);
/**
* @Description: 获得专家的评标报表
* @author mazc
* @param tenderId
* @param userId
* @param stepId
* @return
*/
EvaluationReport getUserEvaluationReport(@Param("tenderId")String tenderId,@Param("userId")String userId,@Param("stepId") String stepId);
}
\ No newline at end of file
package com.gx.obe.server.management.config.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gx.obe.server.management.config.entity.SysConfig;
import com.gx.obe.server.management.config.entity.SysConfigValue;
/**
* @Description:
* @author mazc
*/
@Mapper
public interface SysConfigMapper extends BaseMapper<SysConfig> {
/**
* @Description: 批量更新
* @author mazc
* @param SysConfigList
*/
public int updateBatchList(@Param("SysConfigList") List<SysConfig> SysConfigList);
/**
* @Description: 批量插入
* @author mazc
* @param SysConfigList
*/
public int insertByBatch(@Param("SysConfigList") List<SysConfig> SysConfigList);
/**
* @Description: 指定字段修改
* @author chenxw
* @param SysConfig
* @param attributes
*/
public int updateAssignProperty(@Param("SysConfig")SysConfig SysConfig, @Param("attributes")String[] attributes);
/**
* @Description: 批量指定字段修改
* @author chenxw
* @param SysConfigList
* @param attributes
*/
public int batchUpdateProperty(@Param("SysConfigList")List<SysConfig> SysConfigList, @Param("attributes")String[] attributes);
/**
* @Description: 验证配置名称唯一性
* @author mazc
* @param id
* @param configName
* @return
*/
public int isUniqueConfigName(@Param("id")String id, @Param("configName")String configName);
/**
* @Description:
* @author mazc
* @param id
* @param configCode
* @return
*/
public int isUniqueConfigCode(@Param("id")String id, @Param("configCode")String configCode);
public SysConfig getConfigByCode(@Param("configCode")String configCode);
/**
* @Description: 根据配置编码,获得有效配置值集合。
* @author mazc
* @param dictCode 配置编码
* @return List<SysConfigValue>
*/
public List<SysConfigValue> getConfigValueList(@Param("configCode") String configCode);
}
\ No newline at end of file
package com.gx.obe.server.management.boq.controller;
import com.gx.obe.server.common.base.BaseController;
import com.gx.obe.server.management.boq.entity.ObeBillTable;
import com.gx.obe.server.management.boq.service.ObeBillTableService;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author mazc
* @Description:
*/
@Api(tags = "分部分项")
@RestController
@AllArgsConstructor
@RequestMapping("/obeBillTable")
public class ObeBillTableController extends BaseController<ObeBillTableService, ObeBillTable> {
@Autowired
public ObeBillTableService ObeBillTableServices;
/**
* @param ObeBillTableList
* @Description: 批量插入
* @author mazc
*/
@PostMapping("/insertByBatch")
public int insertByBatch(@RequestBody List<ObeBillTable> ObeBillTableList) {
return ObeBillTableServices.insertByBatch(ObeBillTableList);
}
/**
* @param ObeBillTableList
* @Description: 批量更新
* @author mazc
*/
@PostMapping("/updateByBatch")
public int updateByBatch(@RequestBody List<ObeBillTable> ObeBillTableList) {
return ObeBillTableServices.updateByBatch(ObeBillTableList);
}
/**
* @param tenderId
* @param supplierId
* @return
* @Description: 获得供应商全部分布分项的清单列表
*/
@GetMapping("/getAllBillTableQDList")
public List<ObeBillTable> getAllBillTableQDList(String tenderId, String supplierId) {
return ObeBillTableServices.getAllBillTableQDList(tenderId, supplierId);
}
/**
* @param tenderId
* @param projectCode
* @return
* @Description: 获得招标项目的分布分项的清单列表
* @author guoyr
*/
@GetMapping("/getTenderProjectBillTableQdList")
public List<ObeBillTable> getTenderProjectBillTableQdList(String tenderId, String projectCode) {
return ObeBillTableServices.getTenderProjectBillTableQdList(tenderId, projectCode);
}
/**
* @param projectId
* @return
* @Description: 获得分布分项的清单列表
* @author guoyr
*/
@GetMapping("/getBillTableQdList")
public List<ObeBillTable> getBillTableQdList(String projectId) {
return ObeBillTableServices.getBillTableQdList(projectId);
}
/**
* @param projectId 单位工程编号
* @return List<BillTable>
* @Description: 根据工程项目编号",获得分部分项信息(分布工程、清单、定额、工料机)
* @author guoyr
*/
@GetMapping("/getBillTableList")
public List<ObeBillTable> getBillTableList(String projectId) {
return ObeBillTableServices.getBillTableList(projectId);
}
/**
* @param constructionIds
* @return
* @Description: 获得供应商全部分布分项的清单列表
* @author mazc
*/
@PostMapping("/getBillTableBTConstructionIdsList")
public List<ObeBillTable> getBillTableBTConstructionIdsList(@RequestBody List<String> constructionIds) {
return ObeBillTableServices.getBillTableBTConstructionIdsList(constructionIds);
}
/**
* @param projectId
* @return
* @Description: 获得分布分项的清单和定额列表
* @author guoyr
*/
@GetMapping("/getBillTableQdAndDeList")
public List<ObeBillTable> getBillTableQdAndDeList(String projectId) {
return ObeBillTableServices.getBillTableQdAndDeList(projectId);
}
}
\ No newline at end of file
package com.gx.obe.server.tripartitefunction.bidata.vo;
public class BidataMutiNodesOrder {
String order;
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
}
package com.gx.obe.server.management.evaluation.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gx.obe.server.management.evaluation.dao.EvaluationReportMapper;
import com.gx.obe.server.management.evaluation.entity.EvaluationReport;
import com.gx.obe.server.management.evaluation.service.EvaluationReportService;
/**
* @Description:
* @author mazc
*/
@Service
@Transactional
public class EvaluationReportServiceImpl extends ServiceImpl<EvaluationReportMapper, EvaluationReport> implements EvaluationReportService {
@Autowired
private EvaluationReportMapper evaluationReportMapper;
/**
* @Description: 批量更新
* @author mazc
* @param ObeEvaluationReportList
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer updateByBatch (List<EvaluationReport> ObeEvaluationReportList){
return evaluationReportMapper.updateBatchList(ObeEvaluationReportList);
}
/**
* @Description: 批量插入
* @author mazc
* @param ObeEvaluationReportList
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer insertByBatch (List<EvaluationReport> ObeEvaluationReportList){
return evaluationReportMapper.insertByBatch(ObeEvaluationReportList);
}
/**
* @Description: 删除专家的评标报表
* @author mazc
* @param tenderId
* @param userId
* @param stepId
* @return
*/
@Override
public boolean deleteUserEvaluationReport(String tenderId, String userId, String stepId) {
return evaluationReportMapper.deleteUserEvaluationReport(tenderId, userId, stepId) > 0;
}
/**
* @Description: 获得专家的评标报表
* @author mazc
* @param tenderId
* @param userId
* @param stepId
* @return
*/
@Override
public EvaluationReport getUserEvaluationReport(String tenderId, String userId, String stepId) {
return evaluationReportMapper.getUserEvaluationReport(tenderId, userId, stepId);
}
/**
* @Description:
* @author mazc
* @param tenderId
* @param userId
* @param evaluationStepId
* @param evaluationReport
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean insertEvaluationReport(String tenderId, String userId, String evaluationStepId,EvaluationReport evaluationReport) {
evaluationReportMapper.deleteUserEvaluationReport(tenderId, userId, evaluationStepId);
int size = evaluationReportMapper.insert(evaluationReport);
if(size > 0) {
return true;
}
return false;
}
@Override
public List<EvaluationReport> getEvaluationReportListByTenderId(String tenderId) {
QueryWrapper<EvaluationReport> queryWrapper = new QueryWrapper<EvaluationReport>();
queryWrapper.lambda().eq(EvaluationReport::getTenderId, tenderId);
return evaluationReportMapper.selectList(queryWrapper);
}
}
package com.gx.obe.server.management.dictionary.controller;
import java.util.List;
import com.gx.obe.server.management.dictionary.entity.BaseDictionaryValue;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gx.obe.server.common.base.BaseController;
import com.gx.obe.server.common.utils.IDUtils;
import com.gx.obe.server.common.utils.StringUtils;
import com.gx.obe.server.management.dictionary.entity.BaseDictionary;
import com.gx.obe.server.management.dictionary.service.BaseDictionaryService;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
/**
* @Description:
* @author mazc
*/
@Api(tags = "数据字典表")
@RestController
@AllArgsConstructor
@RequestMapping("/baseDictionary")
public class BaseDictionaryController extends BaseController<BaseDictionaryService,BaseDictionary>{
@Autowired
public BaseDictionaryService baseDictionaryServices;
/**
* @Description: 批量插入
* @author mazc
* @param BaseDictionaryList
*/
@PostMapping("/insertByBatch")
public int insertByBatch(@RequestBody List<BaseDictionary> BaseDictionaryList) {
return baseDictionaryServices.insertByBatch(BaseDictionaryList);
}
/**
* @Description: 批量更新
* @author mazc
* @param BaseDictionaryList
*/
@PostMapping("/updateByBatch")
public int updateByBatch(@RequestBody List<BaseDictionary> BaseDictionaryList) {
return baseDictionaryServices.updateByBatch(BaseDictionaryList);
}
/**
* @Description: 验证字典名称唯一性
* @author mazc
* @param id
* @param dictName
* @return boolean true:是唯一;false:不是唯一
*/
@GetMapping("/isUniqueDictName")
public boolean isUniqueDictName(String id, String dictName){
return baseDictionaryServices.isUniqueDictName(id, dictName);
}
/**
* @Description: 验证字典编码唯一性
* @author mazc
* @param id
* @param dictCode
* @return
*/
@GetMapping("/isUniqueDictCode")
public boolean isUniqueDictCode(String id, String dictCode){
return baseDictionaryServices.isUniqueDictCode(id, dictCode);
}
/**
* @Description: 根据编码,获得数据字典对象。
* @author mazc
* @param dictCode
* @return
*/
@GetMapping("/getDictionaryByCode")
public BaseDictionary getDictionaryByCode(String dictCode){
return baseDictionaryServices.getDictionaryByCode(dictCode);
}
/**
* @Description: 根据编码,获得字典和字典值。
* @author mazc
* @param dictCode
* @return
*/
@GetMapping("/getDictionaryAndValuesByCode")
public BaseDictionary getDictionaryAndValuesByCode(String dictCode){
return baseDictionaryServices.getDictionaryAndValuesByCode(dictCode);
}
/**
* @Description: 根据字典编码,获得有效字典值集合。
* @author mazc
* @param dictCode 字典编码
* @return List<DictionaryValue>
*/
@GetMapping("/getDictionaryValueList")
public List<BaseDictionaryValue> getDictionaryValueList(String dictCode){
return baseDictionaryServices.getDictionaryValueList(dictCode);
}
/**
* @Description: 添加或按照id更新非空字段
* @author mazc
* @param awardCertificate
* @return
*/
@PostMapping("/saveOrUpdateReturn")
public boolean saveOrUpdateReturn(@RequestBody BaseDictionary baseDictionary){
if(StringUtils.isEmpty(baseDictionary.getId())) {
baseDictionary.setId(IDUtils.getId());
return baseDictionaryServices.save(baseDictionary);
}else {
return baseDictionaryServices.updateById(baseDictionary);
}
}
@GetMapping("/getDictionaryListOrderByCreateTime")
public List<BaseDictionary> getDictionaryListOrderByCreateTime(){
return baseDictionaryServices.getDictionaryListOrderByCreateTime();
}
}
\ No newline at end of file
package com.gx.obe.server.im.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.slf4j.Logger;
/**
* @Description:
* @Description:
* @author guoyr
*/
public class SocketUtil {
/**
* 分发文件
*/
public static final String FILE = "SEND_FILE";
/**
* 登录系统
*/
public static final String LOGIN_IN = ":I";
/**
* 退出系统
*/
public static final String LOGIN_OUT = ":O";
/**
* 完成
*/
public static final String FINISH = "FINISH";
/**
* 刷新在线状态
*/
public static final String FINISH_ONLINE_STATUS = ":R_ON";
/**
* 下线
*/
public static final String FINISH_OUT_LINE_STATUS = ":R_OUT";
public static Logger LOG = org.slf4j.LoggerFactory.getLogger(SocketUtil.class);
/**
* @Description: 发指令
* @author guoyr
* @param order
* @param os
* @throws IOException
*/
public static void sendOrder(String order, OutputStream os) throws IOException {
sendMessage(order, os);
}
/**
* @Description: 读取命令
* @author guoyr
* @param is
* @return
* @throws IOException
*/
public static String readOrder(InputStream is) throws IOException {
int order_len = readInteger(is);
byte[] result = new byte[order_len];
is.read(result);
return new String(result);
}
/**
* @Description: 分发文件
* @author guoyr
* @param fileDirectory
* @param filepath
* @param os
* @return
*/
public static boolean sendFile(String fileDirectory, String filepath, OutputStream os){
boolean sendSuccess = true;
File file = new File(filepath);
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(filepath);
// 发送socket指令
SocketUtil.sendOrder(FILE, os);
int length = (int) file.length();
LOG.debug("发送文件:" + file.getName() + ",长度:" + length);
// 输入文件目录
SocketUtil.sendMessage(fileDirectory, os);
// 发送文件名
SocketUtil.sendFileName(file, os);
// 输出文件长度
SocketUtil.sendFileSize(length, os);
// 输出文件内容
byte[] buffer = new byte[4096];
int size;
while ((size = fileInputStream.read(buffer)) != -1) {
os.write(buffer, 0, size);
}
} catch (FileNotFoundException e1) {
sendSuccess = false;
LOG.error(e1.getMessage());
} catch (IOException e) {
sendSuccess = false;
LOG.error(e.getMessage());
}finally{
if(null != os){
try {
os.close();
} catch (IOException e1) {
}
}
if(null != fileInputStream){
try {
fileInputStream.close();
} catch (IOException e) {
}
}
}
try {
} catch(Exception e){
sendSuccess = false;
} finally {
}
return sendSuccess;
}
/**
* @Description: 从流中读取内容并保存
* @author guoyr
* @param is
* @throws IOException
*/
public static boolean readAndSaveFile(String savePath, InputStream is) throws IOException {
boolean readSuccess = true;
String fileDirectory = SocketUtil.readFileDirectory(is);
String filename = SocketUtil.readFileName(is);
int file_len = SocketUtil.readFileSize(is);
LOG.debug("接收文件:" + filename + ",长度:" + file_len);
// 文件保存位置
StringBuilder filePath = new StringBuilder();
filePath.append(savePath);
filePath.append(File.separator);
if(null != fileDirectory && fileDirectory.length() > 0){
filePath.append(fileDirectory);
filePath.append(File.separator);
}
filePath.append(filename);
FileOutputStream os = getFileOutPutStream(filePath.toString());
int readFileSize = readAndWrite(is, os, file_len);
os.close();
readSuccess = (readFileSize == file_len);
if(readSuccess){
LOG.debug("文件保存成功(" + file_len + "字节)。");
}else {
LOG.debug("文件保存失败,发送" + file_len + "字节,收到"+readFileSize+"字节)。");
}
return readSuccess;
}
/**
* @Description: 发送消息
* @author guoyr
* @param message
* @param os
* @throws IOException
*/
public static void sendMessage(String message, OutputStream os)throws IOException{
byte[] fn_bytes = message.getBytes();
os.write(i2b(fn_bytes.length)); // 输出文件名长度
os.write(fn_bytes); // 输出消息
}
/**
* @Description: 读取文件名称(包括路径)
* @author guoyr
* @param is
* @return
* @throws IOException
*/
public static String readMessage(InputStream is) throws IOException {
int message_len = readInteger(is);
byte[] result = new byte[message_len];
is.read(result);
return new String(result);
}
/**
* @Description: 读取文件的目录
* @author guoyr
* @param is
* @return
* @throws IOException
*/
public static String readFileDirectory(InputStream is) throws IOException {
return readMessage(is);
}
/**
* @Description: 输出文件名
* @author guoyr
* @param file
* @param os
* @throws IOException
*/
public static void sendFileName(File file, OutputStream os) throws IOException {
// 输出文件名长度和名称
sendMessage(file.getName(), os);
}
/**
* @Description: 读取文件名称(包括路径)
* @author guoyr
* @param is
* @return
* @throws IOException
*/
public static String readFileName(InputStream is) throws IOException {
return readMessage(is);
}
/**
* @Description: 发送文件大小
* @author guoyr
* @param message
* @param os
* @throws IOException
*/
public static void sendFileSize(int length, OutputStream os)throws IOException{
sendInteger(length, os);
}
/**
* @Description: 读取文件大小
* @author guoyr
* @param is
* @return
* @throws IOException
*/
public static int readFileSize(InputStream is) throws IOException {
return readInteger(is);
}
/**
* @Description: 发送Integer
* @author guoyr
* @param message
* @param os
* @throws IOException
*/
public static void sendInteger(int integer, OutputStream os)throws IOException{
os.write(i2b(integer));
}
/**
* @Description: 读取一个数字
* @author guoyr
* @param is
* @return
* @throws IOException
*/
public static int readInteger(InputStream is) throws IOException {
byte[] bytes = new byte[4];
is.read(bytes);
return b2i(bytes);
}
/**
* @Description: 边读边写,直到读取 size 个字节
* @author guoyr
* @param is
* @param os
* @param size
* @throws IOException
*/
public static int readAndWrite(InputStream is, FileOutputStream os, int size)
throws IOException {
byte[] buffer = new byte[4096];
int count = 0;
while (count < size) {
int n = is.read(buffer);
// 这里没有考虑 n = -1 的情况
os.write(buffer, 0, n);
count += n;
}
// int len;
// while ((len = is.read(buffer)) != -1) {
// os.write(buffer, 0, len);
// count += len;
// }
return count;
}
/**
* @Description: 创建文件并返回输出流
* @author guoyr
* @param path
* @return
* @throws IOException
*/
public static FileOutputStream getFileOutPutStream(String path) throws IOException {
File file = new File(path);
if (!file.exists()) {
// 如果上级目录不存在,则先新建上级目录
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
file.createNewFile();
}
return new FileOutputStream(file);
}
/**
* @Description: 将字节转成 intb 长度不得小于 4,且只会取前 4 位。
* @author guoyr
* @param b
* @return
*/
public static int b2i(byte[] b) {
int value = 0;
for (int i = 0; i < 4; i++) {
int shift = (4 - 1 - i) * 8;
value += (b[i] & 0x000000FF) << shift;
}
return value;
}
/**
* @Description: int 转成字节
* @author guoyr
* @param i
* @return
*/
public static byte[] i2b(int i) {
return new byte[] {
(byte) ((i >> 24) & 0xFF),
(byte) ((i >> 16) & 0xFF),
(byte) ((i >> 8) & 0xFF),
(byte) (i & 0xFF)
};
}
}
package com.gx.obe.server.management.config.dao;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gx.obe.server.management.config.entity.SysConfigValue;
/**
* @Description:
* @author mazc
*/
@Mapper
public interface SysConfigValueMapper extends BaseMapper<SysConfigValue> {
/**
* @Description: 批量更新
* @author mazc
* @param SysConfigValueList
*/
public int updateBatchList(@Param("SysConfigValueList") List<SysConfigValue> SysConfigValueList);
/**
* @Description: 批量插入
* @author mazc
* @param SysConfigValueList
*/
public int insertByBatch(@Param("SysConfigValueList") List<SysConfigValue> SysConfigValueList);
/**
* @Description: 指定字段修改
* @author chenxw
* @param SysConfigValue
* @param attributes
*/
public int updateAssignProperty(@Param("SysConfigValue")SysConfigValue SysConfigValue, @Param("attributes")String[] attributes);
/**
* @Description: 批量指定字段修改
* @author chenxw
* @param SysConfigValueList
* @param attributes
*/
public int batchUpdateProperty(@Param("SysConfigValueList")List<SysConfigValue> SysConfigValueList, @Param("attributes")String[] attributes);
/**
* @Description: 根据字典编码,获得有效字典值集合。
* @author mazc
* @param configCode
* @param useStatus
* @return
*/
List<SysConfigValue> getConfigValueList(String configCode, String useStatus);
/**
* @Description:根据字典编码,获得有效字典值集合。
* @author mazc
* @param configCode
* @param useStatus
* @return
*/
List<SysConfigValue> getConfigValueListByConfigCode(String configCode, String useStatus);
/**
* @Description: 验证字典值编码唯一性
* @author mazc
* @param id
* @param configCode
* @return
*/
int isUniqueConfigValueCode(String configId, String id, String configValueCode);
/**
* @Description: 获得系统配置的最大序号
* @author mazc
* @return
*/
int getMaxConfigValueSortNo(String configId);
/**
* @Description: 获得系统配置的最晚修改时间
* @author mazc
* @return
*/
Date getLatestModifyTime(String configCode);
/**
* @Description: 交换系统配置的排序
* @author mazc
* @param sourceSortNo
* @param sourceid
* @param targetSortNo
* @param targetId
* @return
*/
boolean changeConfigValueSortNo(Integer sourceSortNo, String sourceid, Integer targetSortNo, String targetId);
List<SysConfigValue> getConfigValueListByConfigId(String configId, String useStatus);
}
\ No newline at end of file
package com.gx.obe.server.management.editprice.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gx.obe.server.management.editprice.entity.EditPriceItem;
/**
* @Description:
* @author mazc
*/
public interface EditPriceItemService extends IService<EditPriceItem> {
/**
* @Description: 批量更新
* @author mazc
* @param ObeEditPriceItemList
*/
Integer updateByBatch (List<EditPriceItem> ObeEditPriceItemList);
/**
* @Description: 批量插入
* @author mazc
* @param ObeEditPriceItemList
*/
Integer insertByBatch (List<EditPriceItem> ObeEditPriceItemList);
/**
* @Description: 获取偏离性条款修正报价项
* @author mazc
* @param tenderId
* @return
*/
EditPriceItem getDeviateCaluseEditPriceItem(String tenderId);
List<EditPriceItem> getEditPriceItemList(String tenderId);
Integer batchSaveOrUpdate(List<EditPriceItem> editPriceItemResultList, String[] attributes);
boolean saveEditPriceItemList(List<EditPriceItem> editPriceItemList, List<EditPriceItem> removeList);
}
<?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.gx.obe.server.management.dictionary.dao.DecEnvelopeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.gx.obe.server.management.dictionary.entity.DecEnvelope">
<id column="DEC_ENVELOPE_ID" property="id"/>
<result column="TENDER_ID" property="tenderId"/>
<result column="SUPPLIER_ID" property="supplierId"/>
<result column="DEC_ENVELOPE_BYTE" property="decEnvelopeByte"/>
<result column="CA_TYPE" property="caType"/>
<result column="CERT_ID" property="certId"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
DEC_ENVELOPE_ID, TENDER_ID, SUPPLIER_ID, DEC_ENVELOPE_BYTE, CA_TYPE, CERT_ID
</sql>
<!-- 批量更新 -->
<update id="updateBatchList" parameterType="java.util.List">
<foreach collection="ObeDecEnvelopeList" item="ObeDecEnvelope" index="index" open="" close="" separator=";">
UPDATE obe_dec_envelope
<set>
<if test="ObeDecEnvelope.tenderId != null">
TENDER_ID = #{ObeDecEnvelope.tenderId} ,
</if>
<if test="ObeDecEnvelope.supplierId != null">
SUPPLIER_ID = #{ObeDecEnvelope.supplierId} ,
</if>
<if test="ObeDecEnvelope.decEnvelopeByte != null">
DEC_ENVELOPE_BYTE = #{ObeDecEnvelope.decEnvelopeByte} ,
</if>
<if test="ObeDecEnvelope.caType != null">
CA_TYPE = #{ObeDecEnvelope.caType} ,
</if>
<if test="ObeDecEnvelope.certId != null">
CERT_ID = #{ObeDecEnvelope.certId} ,
</if>
</set>
<where>
DEC_ENVELOPE_ID = #{ObeDecEnvelope.id}
</where>
</foreach>
</update>
<!-- 批量插入-->
<insert id="insertByBatch" parameterType="java.util.List">
insert into obe_dec_envelope
(
DEC_ENVELOPE_ID, TENDER_ID, SUPPLIER_ID, DEC_ENVELOPE_BYTE, CA_TYPE, CERT_ID
)
values
<foreach collection="ObeDecEnvelopeList" item="ObeDecEnvelope" index="index" open="" close="" separator=",">
(
#{ObeDecEnvelope.id} ,
#{ObeDecEnvelope.tenderId} ,
#{ObeDecEnvelope.supplierId} ,
#{ObeDecEnvelope.decEnvelopeByte} ,
#{ObeDecEnvelope.caType} ,
#{ObeDecEnvelope.certId} ,
)
</foreach>
</insert>
<!-- 获得解密信封 -->
<select id="getDecEnvelope" resultMap="BaseResultMap">
SELECT
*
FROM
OBE_DEC_ENVELOPE
WHERE
TENDER_ID = #{tenderId}
AND SUPPLIER_ID = #{supplierId}
</select>
<!-- 是否已经存在解密信封 -->
<select id="hasDecEnvelope" resultType="Integer">
SELECT
COUNT( DEC_ENVELOPE_ID )
FROM
OBE_DEC_ENVELOPE
WHERE
TENDER_ID = #{tenderId}
AND SUPPLIER_ID = #{supplierId}
</select>
<!-- 删除供应商的投标信封信息 -->
<delete id="deleteSupplierEnvelop">
DELETE
FROM
OBE_DEC_ENVELOPE
WHERE
TENDER_ID = #{tenderId}
AND SUPPLIER_ID = #{supplierId}
</delete>
<!-- 删除项目的投标信封信息 -->
<delete id="deleteTenderEnvelop">
DELETE
FROM
OBE_DEC_ENVELOPE
WHERE
TENDER_ID = #{tenderId}
</delete>
</mapper>
package com.gx.obe.server.management.vo;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.gx.obe.server.management.project.entity.TenderProject;
/**
* @Description:
* @author mazc
*/
public class TenderPackOpeningInfo {
private TenderProject tenderProject;
private int tenderCount;// 投标家次,统计有投标时间的供应商
private int threeTenderCount;// 所有投标家数满足3家的的统计
private int openingCount;// 可开标的家次(已投标且已启动解密的家次统计,或者已完成解密的家次)
private int signCount;
private int decCount;
private int decFailCount;
private int confirmCount;
private int confirmQuestionCount;
private int revokeCount;
private int noPriceCount;
private boolean complate;
private boolean hasError = false;
public Date bidOpeningTime;
/**
* 是否项目 true:项目;false:包件
*/
private boolean project = false;
/**
* 项目是否存在分包 true:带包件的项目;false:不带包件的项目
*/
private boolean hasPack = false;
/**
* 包件列表
*/
private List<TenderProject> tenderPackList;
private List<TenderPackOpeningInfo> tenderPackOpeningInfoList;
public BigDecimal bidPrice;
/**
* 完成的包件数
*/
public int complatePackCount;
/**
* 完成的供应商数
*/
public int complateSupplierCount;
public TenderPackOpeningInfo(TenderProject tenderPack, boolean isProject){
this.tenderProject = tenderPack;
}
public TenderPackOpeningInfo(TenderProject tenderProjectEntity, List<TenderProject> tenderPackList){
this.tenderProject = tenderProjectEntity;
project = true;
setTenderPackList(tenderPackList);
}
public TenderProject getTenderProject() {
return tenderProject;
}
public void setTenderProject(TenderProject tenderPack) {
this.tenderProject = tenderPack;
}
public int getTenderCount() {
return tenderCount;
}
public void setTenderCount(int tenderCount) {
this.tenderCount = tenderCount;
}
public int getThreeTenderCount() {
return threeTenderCount;
}
public void setThreeTenderCount(int threeTenderCount) {
this.threeTenderCount = threeTenderCount;
}
public int getOpeningCount() {
return openingCount;
}
public void setOpeningCount(int openingCount) {
this.openingCount = openingCount;
}
public int getSignCount() {
return signCount;
}
public void setSignCount(int signCount) {
this.signCount = signCount;
}
public int getDecCount() {
return decCount;
}
public void setDecCount(int decCount) {
this.decCount = decCount;
}
public int getConfirmCount() {
return confirmCount;
}
public void setConfirmCount(int confirmCount) {
this.confirmCount = confirmCount;
}
public boolean isComplate() {
return complate;
}
public void setComplate(boolean complate) {
this.complate = complate;
}
public int getDecFailCount() {
return decFailCount;
}
public void setDecFailCount(int decFailCount) {
this.decFailCount = decFailCount;
}
public int getConfirmQuestionCount() {
return confirmQuestionCount;
}
public void setConfirmQuestionCount(int confirmQuestionCount) {
this.confirmQuestionCount = confirmQuestionCount;
}
public BigDecimal getBidPrice() {
return bidPrice;
}
public void setBidPrice(BigDecimal bidPrice) {
this.bidPrice = bidPrice;
}
public int getRevokeCount() {
return revokeCount;
}
public void setRevokeCount(int revokeCount) {
this.revokeCount = revokeCount;
}
public int getNoPriceCount() {
return noPriceCount;
}
public void setNoPriceCount(int noPriceCount) {
this.noPriceCount = noPriceCount;
}
public boolean isProject() {
return project;
}
public void setProject(boolean isProject) {
this.project = isProject;
}
public boolean isHasPack() {
return hasPack;
}
public void setHasPack(boolean hasPack) {
this.hasPack = hasPack;
}
@JsonManagedReference
public List<TenderProject> getTenderPackList() {
return tenderPackList;
}
public void setTenderPackList(List<TenderProject> tenderPackList) {
this.tenderPackList = tenderPackList;
if(null != tenderPackList && tenderPackList.size() > 0){
hasPack = true;
}
}
@JsonManagedReference
public List<TenderPackOpeningInfo> getTenderPackOpeningInfoList() {
return tenderPackOpeningInfoList;
}
public void setTenderPackOpeningInfoList(
List<TenderPackOpeningInfo> tenderPackOpeningInfoList) {
this.tenderPackOpeningInfoList = tenderPackOpeningInfoList;
}
public boolean isHasError() {
return hasError;
}
public void setHasError(boolean hasError) {
this.hasError = hasError;
}
public int getComplatePackCount() {
return complatePackCount;
}
public void setComplatePackCount(int complatePackCount) {
this.complatePackCount = complatePackCount;
}
public int getComplateSupplierCount() {
return complateSupplierCount;
}
public void setComplateSupplierCount(int complateSupplierCount) {
this.complateSupplierCount = complateSupplierCount;
}
public Date getBidOpeningTime() {
return bidOpeningTime;
}
public void setBidOpeningTime(Date bidOpeningTime) {
this.bidOpeningTime = bidOpeningTime;
}
}
package com.gx.obe.server.common.utils;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
public class ListSortUtils<T> {
private Map<T, Integer> sortMap = new HashMap<T, Integer>();
public ListSortUtils(List<T> list, final Comparator<T> c) {
final Map<T, List<T>> tListMap = new HashMap<T, List<T>>();
Set<T> set = new TreeSet<T>(new Comparator<T>() {
public int compare(T o1, T o2) {
int i = c.compare(o1, o2);
if (i == 0) {
if (tListMap.containsKey(o2)) {
tListMap.get(o2).add(o1);
} else {
List<T> list = new ArrayList<T>();
list.add(o1);
tListMap.put(o2, list);
}
}
return i;
}
});
set.addAll(list);
int sortNo = 1;
for (T t : set) {
sortMap.put(t, sortNo);
if (tListMap.containsKey(t)) {
for (T t1 : tListMap.get(t)) {
sortMap.put(t1, sortNo);
}
}
sortNo++;
}
}
public int getSortNo(T t) {
return sortMap.get(t);
}
}
package com.gx.obe.server.management.dictionary.service;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import com.gx.obe.server.management.dictionary.entity.DecEnvelope;
/**
* @Description:
* @author mazc
*/
public interface DecEnvelopeService extends IService<DecEnvelope> {
/**
* @Description: 批量更新
* @author mazc
* @param ObeDecEnvelopeList
*/
Integer updateByBatch (List<DecEnvelope> ObeDecEnvelopeList);
/**
* @Description: 批量插入
* @author mazc
* @param ObeDecEnvelopeList
*/
Integer insertByBatch (List<DecEnvelope> ObeDecEnvelopeList);
/**
* @Description: 获得解密信封
* @author mazc
* @param tenderId
* @param supplierId
* @return
*/
DecEnvelope getDecEnvelope(String tenderId, String supplierId);
/**
* @Description: 获得解密信封
* @author mazc
* @param decEnvelope
* @return
*/
boolean uploadDecEnvelope(DecEnvelope decEnvelope);
/**
* @Description: 是否已经存在解密信封
* @author mazc
* @param tenderId
* @param supplierId
* @return
*/
boolean hasDecEnvelope(String tenderId, String supplierId);
}
package com.gx.obe.server.management.dictionary.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gx.obe.server.common.agent.ProjectTemplateAgent;
import com.gx.obe.server.common.enumeration.EvaluationStepEnum;
import com.gx.obe.server.common.utils.CollectionUtils;
import com.gx.obe.server.common.utils.IDUtils;
import com.gx.obe.server.common.utils.StringUtils;
import com.gx.obe.server.common.vo.ProjectTypeVo;
import com.gx.obe.server.management.dictionary.dao.ProjectTemplateMapper;
import com.gx.obe.server.management.dictionary.entity.ProjectTemplate;
import com.gx.obe.server.management.dictionary.service.ProjectTemplateService;
import com.gx.obe.server.management.evaluation.service.EvaluationStepService;
import com.gx.obe.server.management.project.dao.TenderProjectMapper;
import com.gx.obe.server.management.project.entity.TenderProject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.nio.file.Paths;
import java.util.*;
/**
* @author mazc
* @Description:
*/
@Service
@Transactional
public class ProjectTemplateServiceImpl extends ServiceImpl<ProjectTemplateMapper, ProjectTemplate> implements ProjectTemplateService {
@Autowired
private TenderProjectMapper tenderProjectMapper;
@Autowired
private ProjectTemplateMapper projectTemplateMapper;
@Autowired
private EvaluationStepService evaluationStepService;
@Value("${upload.templateFolder}")
private String templateFolder;
/**
* @param ObeProjectTemplateList
* @Description: 批量更新
* @author mazc
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer updateByBatch(List<ProjectTemplate> ObeProjectTemplateList) {
return projectTemplateMapper.updateBatchList(ObeProjectTemplateList);
}
/**
* @param ObeProjectTemplateList
* @Description: 批量插入
* @author mazc
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer insertByBatch(List<ProjectTemplate> ObeProjectTemplateList) {
return projectTemplateMapper.insertByBatch(ObeProjectTemplateList);
}
/**
* @param ObeProjectTemplate
* @param attributes
* @Description: 指定字段修改
* @author chenxw
*/
@Override
public boolean updateAssignProperty(ProjectTemplate ObeProjectTemplate, String[] attributes) {
return projectTemplateMapper.updateAssignProperty(ObeProjectTemplate, attributes) > 0;
}
/**
* @param ObeProjectTemplateList
* @param attributes
* @Description: 批量指定字段修改
* @author chenxw
*/
@Override
public Integer batchUpdateProperty(List<ProjectTemplate> ObeProjectTemplateList, String[] attributes) {
return projectTemplateMapper.batchUpdateProperty(ObeProjectTemplateList, attributes);
}
/**
* @param ObeProjectTemplateList
* @param attributes
* @return
* @Description: 批量添加或跟新
* @author chenxw
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer batchSaveOrUpdate(List<ProjectTemplate> ObeProjectTemplateList, String[] attributes) {
List<ProjectTemplate> insertObeProjectTemplateList = new ArrayList<>();
List<ProjectTemplate> updateObeProjectTemplateList = new ArrayList<>();
for (ProjectTemplate ObeProjectTemplate : ObeProjectTemplateList) {
if (StringUtils.isEmpty(ObeProjectTemplate.getId())) {
ObeProjectTemplate.setId(IDUtils.getId());
insertObeProjectTemplateList.add(ObeProjectTemplate);
} else {
updateObeProjectTemplateList.add(ObeProjectTemplate);
}
}
int count = 0;
if (insertObeProjectTemplateList.size() > 0) {
count += projectTemplateMapper.insertByBatch(insertObeProjectTemplateList);
}
if (updateObeProjectTemplateList.size() > 0) {
count += projectTemplateMapper.batchUpdateProperty(updateObeProjectTemplateList, attributes);
}
return count;
}
/**
* @Description: 获取所有模板
* @author chenxw
* @return
*/
@Override
public List<ProjectTemplate> getAllList() {
return projectTemplateMapper.selectList(new QueryWrapper<>());
}
/**
* @Description: 根据项目id及模板类型获取列表
* @author chenxw
* @param tenderId
* @param templateType
* @return
*/
@Override
public List<ProjectTemplate> getListByTenderIdAndTemplateType(String tenderId, String templateType) {
boolean fixedFactor = CollectionUtils.isNotNull(evaluationStepService.getEvaluationStepListByType(tenderId, EvaluationStepEnum.FIXED_FACTOR));
String agentName = Optional.ofNullable(tenderId).map(tenderProjectMapper::selectById).map(TenderProject::getAgentName).orElse("");
List<ProjectTemplate> list = ProjectTemplateAgent.init(this)
.filter(ProjectTemplate::getTemplateType, t -> templateType == null || templateType.equals(t))
.filterType(ProjectTypeVo::isFixedFactor, t -> fixedFactor == t)
.filterType(ProjectTypeVo::getAgentKeyList, t -> Objects.nonNull(t) && t.contains(agentName))
.get();
if (!list.isEmpty()) return list;
return ProjectTemplateAgent.init(this)
.filterType(ProjectTypeVo::isDefaultType, t -> t)
.get();
}
/**
* @Description: 删除项目模板
* @author chenxw
* @param projectTemplate
* @return
*/
@Override
public boolean deleteProjectTemplate(ProjectTemplate projectTemplate) {
File file = new File(Paths.get(templateFolder + "/" + projectTemplate.getTemplateFileName()).toString());
if (file.exists() && !file.delete()) {
return false;
}
return projectTemplateMapper.deleteById(projectTemplate.getId()) > 0;
}
/**
* @Description: 获取最晚修改时间
* @author chenxw
* @return
*/
@Override
public Date getLatestModifyTime() {
return projectTemplateMapper.getLatestModifyTime();
}
}
package com.gx.obe.server.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
@Configuration
public class RedisConfig {
@Bean
@SuppressWarnings("all")
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<Object, Object> template = new RedisTemplate<Object, Object>();
template.setConnectionFactory(factory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
// key采用String的序列化方式
template.setKeySerializer(stringRedisSerializer);
// hashkey也采用String的序列化方式
template.setHashKeySerializer(stringRedisSerializer);
// value序列化方式采用jackson
template.setValueSerializer(jackson2JsonRedisSerializer);
// hashvalue序列化方式采用jackson
template.setHashValueSerializer(jackson2JsonRedisSerializer);
template.afterPropertiesSet();
return template;
}
}
package com.gx.obe.server.im.listener;
import javax.swing.Icon;
import javax.swing.text.AttributeSet;
public interface ChatContentListener{
public void initConnection();
public void receiveHead(String head, AttributeSet attributeSet);
public void receiveText(String text, AttributeSet attributeSet);
public void receiveIcon(Icon icon);
public void finish();
// public void closeChat();
}
\ No newline at end of file
<?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.gx.obe.server.management.expert.dao.EvaluationStepExpertMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.gx.obe.server.management.expert.entity.EvaluationStepExpert">
<id column="STEP_EXPERT_ID" property="id"/>
<result column="STEP_ID" property="stepId"/>
<result column="TENDER_ID" property="tenderId"/>
<result column="USER_ID" property="userId"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
STEP_EXPERT_ID, STEP_ID, TENDER_ID, USER_ID
</sql>
<!-- 批量更新 -->
<update id="updateBatchList" parameterType="java.util.List">
<foreach collection="ObeEvaluationStepExpertList" item="ObeEvaluationStepExpert" index="index" open="" close="" separator=";">
UPDATE obe_evaluation_step_expert
<set>
<if test="ObeEvaluationStepExpert.stepId != null">
STEP_ID = #{ObeEvaluationStepExpert.stepId} ,
</if>
<if test="ObeEvaluationStepExpert.tenderId != null">
TENDER_ID = #{ObeEvaluationStepExpert.tenderId} ,
</if>
<if test="ObeEvaluationStepExpert.userId != null">
USER_ID = #{ObeEvaluationStepExpert.userId} ,
</if>
</set>
<where>
STEP_EXPERT_ID = #{ObeEvaluationStepExpert.id} ,
</where>
</foreach>
</update>
<!-- 批量插入-->
<insert id="insertByBatch" parameterType="java.util.List">
insert into obe_evaluation_step_expert
(
STEP_EXPERT_ID, STEP_ID, TENDER_ID, USER_ID
)
values
<foreach collection="ObeEvaluationStepExpertList" item="ObeEvaluationStepExpert" index="index" open="" close="" separator=",">
(
#{ObeEvaluationStepExpert.id} ,
#{ObeEvaluationStepExpert.stepId} ,
#{ObeEvaluationStepExpert.tenderId} ,
#{ObeEvaluationStepExpert.userId}
)
</foreach>
</insert>
<!-- 根据项目ID删除全部 -->
<delete id="deleteAllByTenderId">
DELETE FROM OBE_EVALUATION_STEP_EXPERT WHERE TENDER_ID = #{tenderId}
</delete>
</mapper>
package com.gx.obe.server.management.fileload.controller;
import com.gx.obe.server.common.vo.Result;
import com.gx.obe.server.management.fileload.entity.FileChunk;
import com.gx.obe.server.management.fileload.entity.ParameterInfo;
import com.gx.obe.server.management.fileload.utill.FileMd5Util;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Objects;
import static com.gx.obe.server.management.fileload.utill.FileUtils.generatePath;
import static com.gx.obe.server.management.fileload.utill.FileUtils.merge;
@Slf4j
@RestController
@RequestMapping("/softwareUpload")
public class SoftwareUploadController {
@Value("${upload.softwareFolder}")
private String softwareFolder;
@PostMapping("/chunk")
public Result<String> uploadChunk(FileChunk chunk) {
MultipartFile file = chunk.getFile();
try {
byte[] bytes = file.getBytes();
Path path = Paths.get(generatePath(softwareFolder, chunk));
//文件写入指定路径
Files.write(path, bytes);
Result<String> result = new Result<>();
result.setCode(Result.SUCCESS);
result.setData("success");
result.setMsg("上传成功");
return result;
} catch (Exception e) {
e.printStackTrace();
return getStringResult(e);
}
}
private static Result<String> getStringResult(Exception e) {
log.error(e.getMessage());
Result<String> result = new Result<>();
result.setCode(Result.FAIL);
result.setData("fail");
result.setMsg("上传异常");
return result;
}
@PostMapping("/checkFile")
public boolean checkChunk(String fileUrl) {
return new File(Paths.get(fileUrl).toString()).exists();
}
@PostMapping("/checkFileMD5")
public boolean checkChunkMD5(String fileName, String fileMD5) {
File file = new File(Paths.get(softwareFolder + "/" + fileName).toString());
if (file.exists()) {
return MD5check(file, fileMD5);
}
return false;
}
@PostMapping("/chunk/mergeFile")
public Result<String> mergeFile(ParameterInfo fileInfo) {
String filename = fileInfo.getFilename();
StringBuilder sb = new StringBuilder();
sb.append(softwareFolder).append("/");
String file = sb.toString() + "/" + filename;
String folder = sb.toString();
try {
merge(file, folder, filename);
} catch (IOException e) {
return getStringResult(e);
}
Result<String> result = new Result<>();
result.setCode(Result.SUCCESS);
result.setData("success");
result.setMsg("上传成功!");
if (!MD5check(new File(file), fileInfo.getFileMD5())) {
result.setMsg("上传成功,文件MD5校验失败!");
}
return result;
}
private boolean MD5check(File file, String fileMD5) {
return Objects.equals(FileMd5Util.getFileMD5(file), fileMD5);
}
}
package com.gx.obe.server.management.im.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gx.obe.server.management.im.entity.Employee;
import com.gx.obe.server.management.im.entity.GroupItem;
/**
* @Description:
* @author mazc
*/
public interface GroupItemService extends IService<GroupItem> {
/**
* @Description: 批量更新
* @author mazc
* @param GroupItemList
*/
Integer updateByBatch(List<GroupItem> GroupItemList);
/**
* @Description: 批量插入
* @author mazc
* @param GroupItemList
*/
Integer insertByBatch(List<GroupItem> GroupItemList);
/**
* @Description: 指定字段修改
* @author chenxw
* @param GroupItem
* @param attributes
*/
boolean updateAssignProperty(GroupItem GroupItem, String[] attributes);
/**
* @Description: 批量指定字段修改
* @author chenxw
* @param GroupItemList
* @param attributes
*/
Integer batchUpdateProperty(List<GroupItem> GroupItemList, String[] attributes);
/**
* @Description: 批量添加或跟新
* @author chenxw
* @param GroupItemList
* @param attributes
* @return
*/
Integer batchSaveOrUpdate(List<GroupItem> GroupItemList, String[] attributes);
/**
* @Description: 获得群组成员
* @author mazc
* @param groupId
* @return
*/
List<Employee> getGroupItemByGroupId(String groupId);
List<Object> getUserIdListByGroupId(String groupId);
}
package com.gx.obe.server.management.boq.service;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import com.gx.obe.server.management.boq.entity.ObeProjectSummary;
/**
* @author mazc
* @Description:
*/
public interface ObeProjectSummaryService extends IService<ObeProjectSummary> {
/**
* @param ObeProjectSummaryList
* @Description: 批量更新
* @author mazc
*/
Integer updateByBatch(List<ObeProjectSummary> ObeProjectSummaryList);
/**
* @param ObeProjectSummaryList
* @Description: 批量插入
* @author mazc
*/
Integer insertByBatch(List<ObeProjectSummary> ObeProjectSummaryList);
/**
* @param ObeProjectSummary
* @param attributes
* @Description: 指定字段修改
* @author chenxw
*/
boolean updateAssignProperty(ObeProjectSummary ObeProjectSummary, String[] attributes);
/**
* @param ObeProjectSummaryList
* @param attributes
* @Description: 批量指定字段修改
* @author chenxw
*/
Integer batchUpdateProperty(List<ObeProjectSummary> ObeProjectSummaryList, String[] attributes);
/**
* @param ObeProjectSummaryList
* @param attributes
* @return
* @Description: 批量添加或跟新
* @author chenxw
*/
Integer batchSaveOrUpdate(List<ObeProjectSummary> ObeProjectSummaryList, String[] attributes);
/**
* @param projectId
* @return
* @Description: 获得项目的汇总列表
* @author guoyr
*/
List<ObeProjectSummary> getProjectSummaryAndChildList(String projectId);
}
package com.gx.obe.server.management.evaluation.dao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gx.obe.server.management.evaluation.entity.BidPriceResult;
import java.util.List;
/**
* @Description: 投标报价
* @author mazc
*/
@Mapper
public interface BidPriceResultMapper extends BaseMapper<BidPriceResult> {
/**
* @Description: 批量更新
* @author mazc
* @param ObeBidPriceResultList
*/
Integer updateBatchList(@Param("ObeBidPriceResultList") List<BidPriceResult> ObeBidPriceResultList);
Integer updateObeBidPriceResultBatchList (@Param("ObeBidPriceResultList") List<BidPriceResult> ObeBidPriceResultList);
/**
* @Description: 批量插入
* @author mazc
* @param ObeBidPriceResultList
*/
Integer insertByBatch (@Param("ObeBidPriceResultList")List<BidPriceResult> ObeBidPriceResultList);
/**
* @Description: 指定字段修改
* @author chenxw
* @param ObeBidPriceResult
* @param attributes
*/
Integer updateAssignProperty(@Param("ObeBidPriceResult")BidPriceResult ObeBidPriceResult, @Param("attributes")String[] attributes);
/**
* @Description: 批量指定字段修改
* @author chenxw
* @param ObeBidPriceResultList
* @param attributes
*/
Integer batchUpdateProperty(@Param("ObeBidPriceResultList")List<BidPriceResult> ObeBidPriceResultList, @Param("attributes")String[] attributes);
/**
* @Description: 获得供应商开标一览表
* @author guoyr
* @param tenderId
* @param supplierId
* @return
*/
List<BidPriceResult> getBidPriceResultTableList(@Param("tenderId")String tenderId, @Param("supplierId")String supplierId);
List<BidPriceResult> findBidPriceResultList(@Param("tenderId")String tenderId, @Param("bidPriceId")String bidPriceId);
/**
* @Description: 获得供应商的分项报价
* @author mazc
* @param tenderId
* @param supplierId
* @return
*/
List<BidPriceResult> getSupplierBidPriceResultList(@Param("tenderId")String tenderId, @Param("supplierId")String supplierId);
/**
* @Description: 删除投标报价明细 按照tenderId删除
* @author mazc
* @param tenderId
* @return
*/
Integer deleteByTenderId (@Param("tenderId") String tenderId);
/**
* @Description: 获得唱标的分项报价
* @author mazc
* @param tenderId
* @return
*/
List<BidPriceResult> getSingBidPriceResultList(@Param("tenderId") String tenderId);
/**
* @Description: 获得供应商的分项报价
* @author mazc
* @param bidPriceId
* @param supplierId
* @return
*/
BidPriceResult getSupplierBidPriceResult(@Param("bidPriceId")String bidPriceId,@Param("supplierId") String supplierId);
/**
* @Description: 删除供应商报价明细
* @author mazc
* @param tenderId
* @param supplierId
* @return
*/
Integer deletePriceResult(@Param("tenderId")String tenderId,@Param("supplierId")String supplierId);
/**
* @Description: 删除分项报价
* @author mazc
* @return
*/
Integer deleteByPriceId(@Param("bidPriceId") String bidPriceId);
}
\ No newline at end of file
package com.gx.obe.server.management.boq.service;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import com.gx.obe.server.management.boq.entity.ObeExtraTable;
/**
* @author mazc
* @Description:
*/
public interface ObeExtraTableService extends IService<ObeExtraTable> {
/**
* @param ObeExtraTableList
* @Description: 批量更新
* @author mazc
*/
Integer updateByBatch(List<ObeExtraTable> ObeExtraTableList);
/**
* @param ObeExtraTableList
* @Description: 批量插入
* @author mazc
*/
Integer insertByBatch(List<ObeExtraTable> ObeExtraTableList);
/**
* @param ObeExtraTable
* @param attributes
* @Description: 指定字段修改
* @author chenxw
*/
boolean updateAssignProperty(ObeExtraTable ObeExtraTable, String[] attributes);
/**
* @param ObeExtraTableList
* @param attributes
* @Description: 批量指定字段修改
* @author chenxw
*/
Integer batchUpdateProperty(List<ObeExtraTable> ObeExtraTableList, String[] attributes);
/**
* @param ObeExtraTableList
* @param attributes
* @return
* @Description: 批量添加或跟新
* @author chenxw
*/
Integer batchSaveOrUpdate(List<ObeExtraTable> ObeExtraTableList, String[] attributes);
/**
* @param tenderId
* @param supplierId
* @return
* @Description: 获得供应商全部其他项目清单
* @author mazc
*/
List<ObeExtraTable> getAllExtraTableQDList(String tenderId, String supplierId);
/**
* @param tenderId
* @param projectCode
* @return
* @Description: : 获得招标项目的其他项目的清单列表
* @author mazc
*/
List<ObeExtraTable> getTenderProjectExtraTableQdList(String tenderId, String projectCode);
/**
* @param projectId
* @return List<ExtraTable>
* @Description: 根据项目Id 获得其他项目信息。
* @author guoyr
*/
List<ObeExtraTable> getExtraTableListByProjectId(String projectId);
}
package com.gx.obe.server.common.utils;
import java.math.BigDecimal;
/**
* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。
*/
public class BigDecimalUtils {
private static final org.slf4j.Logger LOG = org.slf4j.LoggerFactory.getLogger(BigDecimalUtils.class);
// 默认除法运算精度
private static final int DEF_DIV_SCALE = 10;
// 这个类不能实例化
private BigDecimalUtils() {
}
public static double doubleValue(BigDecimal bigDecimal, double defaultValue) {
if (null == bigDecimal) {
return defaultValue;
}
return bigDecimal.doubleValue();
}
/**
* @Description: 提供精确的加法运算。
* @author guoyr
* @param v1 被加数
* @param v2 加数
* @return 两个参数的和
*/
public static BigDecimal add(double v1, double v2) {
BigDecimal b1;
try {
b1 = new BigDecimal(Double.toString(v1));
} catch (Exception e) {
b1 = null;
LOG.error(e.getMessage(), e);
}
BigDecimal b2;
try {
b2 = new BigDecimal(Double.toString(v2));
} catch (Exception e) {
b2 = null;
LOG.error(e.getMessage(), e);
}
return add(b1, b2);
}
/**
* @Description: 提供精确的加法运算。
* @author guoyr
* @param b1 被加数
* @param b2 加数
* @return 两个参数的和
*/
public static BigDecimal add(BigDecimal b1, BigDecimal b2) {
if (null == b1) {
return b2;
// b1 = BigDecimal.ZERO;
}
if (null == b2) {
return b1;
// b2 = BigDecimal.ZERO;
}
return b1.add(b2);
}
/**
* @Description: 多个参数求和
* @author chenxw
* @param bigDecimals
* @return
*/
public static BigDecimal adds(BigDecimal... bigDecimals) {
BigDecimal decimal = null;
for (BigDecimal bigDecimal : bigDecimals) {
decimal = add(decimal, bigDecimal);
}
return decimal;
}
/**
* @Description: 多个参数求平均数
* @author chenxw
* @param bigDecimals
* @return
*/
public static BigDecimal average(BigDecimal... bigDecimals) {
if (null == bigDecimals || bigDecimals.length == 0) return null;
BigDecimal decimal = BigDecimal.ZERO;
int count = 0;
for (BigDecimal bigDecimal : bigDecimals) {
if (null == bigDecimal) continue;
count++;
decimal = decimal.add(bigDecimal);
}
if (count == 0) return null;
return decimal.divide(BigDecimal.valueOf(count), 10, BigDecimal.ROUND_HALF_UP);
}
/**
* @Description: 提供精确的减法运算。
* @author guoyr
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public static BigDecimal sub(double v1, double v2) {
BigDecimal b1;
try {
b1 = new BigDecimal(Double.toString(v1));
} catch (Exception e) {
b1 = null;
LOG.error(e.getMessage(), e);
}
BigDecimal b2;
try {
b2 = new BigDecimal(Double.toString(v2));
} catch (Exception e) {
b2 = null;
LOG.error(e.getMessage(), e);
}
return sub(b1, b2);
}
/**
* @Description: 提供精确的减法运算。
* @author guoyr
* @param b1 被减数
* @param b2 减数
* @return 两个参数的差
*/
public static BigDecimal sub(BigDecimal b1, BigDecimal b2) {
if (null == b1) {
return b2;
// b1 = BigDecimal.ZERO;
}
if (null == b2) {
return b1;
// b2 = BigDecimal.ZERO;
}
return b1.subtract(b2);
}
/**
* @Description: 提供精确的乘法运算。
* @author guoyr
* @param v1 被乘数
* @param v2 乘数
* @return 两个参数的积
*/
public static BigDecimal mul(double v1, double v2) {
BigDecimal b1;
try {
b1 = new BigDecimal(Double.toString(v1));
} catch (Exception e) {
b1 = null;
// b1 = BigDecimal.ZERO;
LOG.error(e.getMessage(), e);
}
BigDecimal b2;
try {
b2 = new BigDecimal(Double.toString(v2));
} catch (Exception e) {
b2 = null;// BigDecimal.ZERO;
LOG.error(e.getMessage(), e);
}
return mul(b1, b2);
}
/**
* @Description: 提供精确的乘法运算。
* @author guoyr
* @param b1 被乘数
* @param b2 乘数
* @return 两个参数的积
*/
public static BigDecimal mulIsNull(BigDecimal b1, BigDecimal b2) {
if (null == b1 || null == b2) {
return null;
}
return b1.multiply(b2);
}
/**
* @Description: 提供精确的乘法运算。
* @author guoyr
* @param b1 被乘数
* @param b2 乘数
* @return 两个参数的积
*/
public static BigDecimal mul(BigDecimal b1, BigDecimal b2) {
if (null == b1) {
return b2;
}
if (null == b2) {
return b1;
}
return b1.multiply(b2);
}
/**
* @Description: 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入。
* @author guoyr
* @param v1 被除数
* @param v2 除数
* @return 两个参数的商
*/
public static BigDecimal div(double v1, double v2) {
return div(v1, v2, DEF_DIV_SCALE);
}
/**
* @Description: 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入。
* @author guoyr
* @param v1 v1 被除数
* @param v2 v2 除数
* @return 两个参数的商
*/
public static BigDecimal div(BigDecimal v1, BigDecimal v2) {
return div(v1, v2, DEF_DIV_SCALE);
}
/**
* @Description: 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。
* @author guoyr
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static BigDecimal div(double v1, double v2, int scale) {
if (scale < 0) {
// throw new IllegalArgumentException(
// "The scale must be a positive integer or zero");
scale = DEF_DIV_SCALE;
}
BigDecimal b1;
try {
b1 = new BigDecimal(Double.toString(v1));
} catch (Exception e) {
b1 = null;
LOG.error(e.getMessage(), e);
}
BigDecimal b2;
try {
b2 = new BigDecimal(Double.toString(v2));
} catch (Exception e) {
b2 = null;
LOG.error(e.getMessage(), e);
}
return div(b1, b2, scale);
}
/**
* @Description: 提供(相对)精确的除法运算
* @author guoyr
* @param b1 被除数
* @param b2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static BigDecimal div(BigDecimal b1, BigDecimal b2, int scale) {
if (null == b1) {
// b1 = BigDecimal.ZERO;
return null;
}
if (null == b2) {
return null;
}
if (b1.compareTo(BigDecimal.ZERO) == 0) {
return BigDecimal.ZERO;
}
if (b2.compareTo(BigDecimal.ZERO) == 0) {
return b1;
}
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP);
}
/**
* @Description: 提供精确的小数位四舍五入处理。
* @author guoyr
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static BigDecimal round(double v, int scale) {
BigDecimal b;
try {
b = new BigDecimal(Double.toString(v));
} catch (Exception e) {
b = null;
LOG.error(e.getMessage(), e);
}
return round(b, scale);
}
/**
* @Description: 供精确的小数位四舍五入处理。
* @author guoyr
* @param b 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static BigDecimal round(BigDecimal b, int scale) {
if (scale < 0) {
scale = 0;
}
if (null == b) {
return null;
}
return b.setScale(scale, BigDecimal.ROUND_HALF_UP);
}
/**
* @Description: 获得差额
* @author guoyr
* @param b1
* @param b2
* @return
*/
public static BigDecimal difference(BigDecimal b1, BigDecimal b2) {
BigDecimal difference = sub(b1, b2);
if (null == difference) {
return BigDecimal.ZERO;
}
if (difference.compareTo(BigDecimal.ZERO) > 0) {
return difference;
} else {
return sub(BigDecimal.ZERO, difference);
}
}
/**
* @Description: 获得不同梯度
* @author guoyr
* @param error
* @param base
* @param gradientNumber
* @return
*/
public static int getGradient(BigDecimal value, BigDecimal base, int gradientNumber) {
if (null == base) {
return 0;
}
if (null == value) {
return 0;
}
BigDecimal absoluteValue = BigDecimalUtils.difference(value, BigDecimal.ZERO);
BigDecimal absoluteBase = BigDecimalUtils.difference(base, BigDecimal.ZERO);
if (gradientNumber <= 1) {
gradientNumber = 3;
}
BigDecimal stepDif = BigDecimalUtils.div(absoluteBase, BigDecimal.valueOf(gradientNumber));
int gradient = 1;
for (int i = 1; i <= gradientNumber; i++) {
if (absoluteValue.compareTo(BigDecimalUtils.mul(stepDif, BigDecimal.valueOf(i))) <= 0) {
gradient = i;
break;
}
}
return gradient;
}
/**
* @Description:
* @author chenxw
* @param b1
* @param b2
* @return
*/
public static int compareTo(BigDecimal b1, BigDecimal b2) {
if (null == b1) {
b1 = BigDecimal.ZERO;
}
if (null == b2) {
b2 = BigDecimal.ZERO;
}
return b1.compareTo(b2);
}
public static void main(String args[]) {
System.out.println(getGradient(BigDecimal.valueOf(40), BigDecimal.valueOf(100), 5));
}
};
package com.gx.obe.server.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.gx.obe.server.common.cache.GroupCacheFactory;
@Configuration
public class CacheConfig {
@Bean
public GroupCacheFactory groupCacheFactory() {
return new GroupCacheFactory();
}
}
package com.gx.obe.server.management.editprice.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gx.obe.server.common.entity.ReflecUtils;
import com.gx.obe.server.common.utils.CollectionUtils;
import com.gx.obe.server.common.utils.IDUtils;
import com.gx.obe.server.management.editprice.dao.EditPriceItemResultMapper;
import com.gx.obe.server.management.editprice.entity.EditPriceItemResult;
import com.gx.obe.server.management.editprice.service.EditPriceItemResultService;
/**
* @Description:
* @author mazc
*/
@Service
@Transactional
public class EditPriceItemResultServiceImpl extends ServiceImpl<EditPriceItemResultMapper, EditPriceItemResult> implements EditPriceItemResultService {
@Autowired
private EditPriceItemResultMapper editPriceItemResultMapper;
/**
* @Description: 批量更新
* @author mazc
* @param ObeEditPriceItemResultList
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer updateByBatch(List<EditPriceItemResult> ObeEditPriceItemResultList) {
if (CollectionUtils.isNull(ObeEditPriceItemResultList)) {
return 0;
}
return editPriceItemResultMapper.updateBatchList(ObeEditPriceItemResultList);
}
/**
* @Description: 批量插入
* @author mazc
* @param ObeEditPriceItemResultList
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer insertByBatch(List<EditPriceItemResult> ObeEditPriceItemResultList) {
if (CollectionUtils.isNull(ObeEditPriceItemResultList)) {
return 0;
}
return editPriceItemResultMapper.insertByBatch(ObeEditPriceItemResultList);
}
/**
* @Description: 批量更新指定字段
* @author mazc
* @param editPriceItemResultList
* @param attributes
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer batchSaveOrUpdate(List<EditPriceItemResult> editPriceItemResultList, String[] attributes) {
int iCount = 0;
List<EditPriceItemResult> insertEditPriceItemResultListTemp = new ArrayList<EditPriceItemResult>();
List<EditPriceItemResult> UpdateeditPriceItemResultListTemp = new ArrayList<EditPriceItemResult>();
for(EditPriceItemResult editPriceItemResult : editPriceItemResultList) {
EditPriceItemResult editPriceItemResultTemp = ReflecUtils.reflex(editPriceItemResult, attributes ,EditPriceItemResult.class);
if(null != editPriceItemResultTemp) {
if(null == editPriceItemResultTemp.getId()) {
editPriceItemResultTemp.setId(IDUtils.getId());
insertEditPriceItemResultListTemp.add(editPriceItemResultTemp);
}else {
UpdateeditPriceItemResultListTemp.add(editPriceItemResultTemp);
}
}
}
iCount += updateByBatch(UpdateeditPriceItemResultListTemp);
iCount += insertByBatch(insertEditPriceItemResultListTemp);
return iCount;
}
/**
* @Description:
* @author mazc
* @param tenderId
* @return
*/
@Override
public List<EditPriceItemResult> getEditPriceItemResultList(String tenderId) {
QueryWrapper<EditPriceItemResult> queryWrapper = new QueryWrapper<EditPriceItemResult>();
queryWrapper.lambda().eq(EditPriceItemResult::getTenderId, tenderId);
return editPriceItemResultMapper.selectList(queryWrapper);
}
}
package com.gx.obe.server.management.editprice.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gx.obe.server.common.entity.ReflecUtils;
import com.gx.obe.server.common.enumeration.BidPriceEnum;
import com.gx.obe.server.common.utils.IDUtils;
import com.gx.obe.server.management.editprice.dao.EditPriceItemMapper;
import com.gx.obe.server.management.editprice.dao.EditPriceItemResultMapper;
import com.gx.obe.server.management.editprice.entity.EditPriceItem;
import com.gx.obe.server.management.editprice.entity.EditPriceItemResult;
import com.gx.obe.server.management.editprice.service.EditPriceItemService;
/**
* @Description:
* @author mazc
*/
@Service
@Transactional
public class EditPriceItemServiceImpl extends ServiceImpl<EditPriceItemMapper, EditPriceItem> implements EditPriceItemService {
@Autowired
private EditPriceItemMapper editPriceItemMapper;
@Autowired
private EditPriceItemResultMapper editPriceItemResultMapper;
/**
* @Description: 批量更新
* @author mazc
* @param ObeEditPriceItemList
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer updateByBatch (List<EditPriceItem> ObeEditPriceItemList){
return editPriceItemMapper.updateBatchList(ObeEditPriceItemList);
}
/**
* @Description: 批量插入
* @author mazc
* @param ObeEditPriceItemList
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer insertByBatch (List<EditPriceItem> ObeEditPriceItemList){
return editPriceItemMapper.insertByBatch(ObeEditPriceItemList);
}
/**
* @Description: 获取偏离性条款修正报价项
* @author mazc
* @param tenderId
* @return
*/
@Override
public EditPriceItem getDeviateCaluseEditPriceItem(String tenderId) {
EditPriceItem editPriceItem = editPriceItemMapper.getDeviateCaluseEditPriceItem(tenderId);
if(null != editPriceItem) {
editPriceItem = new EditPriceItem();
editPriceItem.setId(IDUtils.getId());
editPriceItem.setTenderId(tenderId);
editPriceItem.setItemCode(BidPriceEnum.DEVIATE_CALUSE);
editPriceItem.setItemName("偏离性条款");
editPriceItem.setEditType(BidPriceEnum.EDIT_FLOAT);
editPriceItemMapper.insert(editPriceItem);
}
return null;
}
/**
* @Description: 获取修正报价项列表
* @author mazc
* @param tenderId
* @return
*/
@Override
public List<EditPriceItem> getEditPriceItemList(String tenderId) {
QueryWrapper<EditPriceItem> queryWrapper = new QueryWrapper<EditPriceItem>();
queryWrapper.lambda().eq(EditPriceItem::getTenderId, tenderId).orderByAsc(EditPriceItem::getSortNo);
return editPriceItemMapper.selectList(queryWrapper);
}
/**
* @Description: 保存修正报价项列表
* @author mazc
* @param editPriceItemList
* @param removeList
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveEditPriceItemList(List<EditPriceItem> editPriceItemList, List<EditPriceItem> removeList) {
batchSaveOrUpdate(editPriceItemList, new String[] { "id","itemName", "editType", "sortNo" });
editPriceItemMapper.deleteBatchIds(removeList);
for (EditPriceItem remove : removeList) {
QueryWrapper<EditPriceItemResult> queryWrapper = new QueryWrapper<EditPriceItemResult>();
queryWrapper.lambda().eq(EditPriceItemResult::getTenderId, remove.getTenderId()).eq(EditPriceItemResult::getEditPriceItemId, remove.getId());
editPriceItemResultMapper.delete(queryWrapper);
}
return true;
}
/**
* @Description: 批量更新指定字段
* @author mazc
* @param editPriceItemResultList
* @param attributes
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer batchSaveOrUpdate(List<EditPriceItem> editPriceItemltList, String[] attributes) {
int iCount = 0;
List<EditPriceItem> insertEditPriceItemListTemp = new ArrayList<EditPriceItem>();
List<EditPriceItem> UpdateeditPriceIteListTemp = new ArrayList<EditPriceItem>();
for(EditPriceItem editPriceItemResult : editPriceItemltList) {
EditPriceItem editPriceItemResultTemp = ReflecUtils.reflex(editPriceItemResult, attributes ,EditPriceItem.class);
if(null != editPriceItemResultTemp) {
if(null == editPriceItemResultTemp.getId()) {
editPriceItemResultTemp.setId(IDUtils.getId());
insertEditPriceItemListTemp.add(editPriceItemResultTemp);
}else {
UpdateeditPriceIteListTemp.add(editPriceItemResultTemp);
}
}
}
iCount += editPriceItemMapper.updateBatchList(UpdateeditPriceIteListTemp);
iCount += editPriceItemMapper.insertByBatch(insertEditPriceItemListTemp);
return iCount;
}
}
package com.gx.obe.server.management.dictionary.dao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gx.obe.server.management.dictionary.entity.TransactionServerEntity;
import java.util.List;
/**
* @Description:
* @author mazc
*/
@Mapper
public interface TransactionServerMapper extends BaseMapper<TransactionServerEntity> {
Integer updateObeTransactionServerBatchList (List<TransactionServerEntity> ObeTransactionServerList);
/**
* @Description: 获得执行交易系统的最大序号
* @author mazc
* @return
*/
int getMaxTransactionServerSortNo();
/**
* @Description: 获得当前平台的服务信息
* @author mazc
* @param serName
* @param serverAddress
* @return
*/
TransactionServerEntity getCurPlatformTransactionServer(@Param("serName")String serName,@Param("serverAddress") String serverAddress);
/**
* @Description: 获得指定状态的服务
* @author wangxiang
* @param realStatus
* @return
*/
List<TransactionServerEntity> getStatusServer(String realStatus);
}
\ No newline at end of file
package com.gx.obe.server.management.im.controller;
import java.util.List;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gx.obe.server.common.base.BaseController;
import com.gx.obe.server.management.im.entity.Message;
import com.gx.obe.server.management.im.service.MessageService;
import lombok.AllArgsConstructor;
/**
* @Description:
* @author mazc
*/
@RestController
@AllArgsConstructor
@RequestMapping("/im/message")
public class MessageController extends BaseController<MessageService,Message>{
@Autowired
public MessageService messageServices;
/**
* @Description: 批量插入
* @author mazc
* @param MessageList
*/
@PostMapping("/insertByBatch")
public int insertByBatch(@RequestBody List<Message> MessageList) {
return messageServices.insertByBatch(MessageList);
}
/**
* @Description: 批量更新
* @author mazc
* @param MessageList
*/
@PostMapping("/updateByBatch")
public int updateByBatch(@RequestBody List<Message> MessageList) {
return messageServices.updateByBatch(MessageList);
}
@GetMapping("/getMessageByReceiveIdlist")
public List<Message> getMessageByReceiveIdlist(String id) {
return messageServices.getMessageByReceiveIdlist(id);
}
@GetMapping("/getMessageByReceiveIdAndSendId")
public List<Message> getMessageByReceiveIdAndSendId(String id, String receiveId) {
return messageServices.getMessageByReceiveIdAndSendId(id, receiveId);
}
@GetMapping("/getMessageByGroupIdAndSendTimeAsc")
public List<Message> getMessageByGroupIdAndSendTimeAsc(String groupId) {
return messageServices.getMessageByGroupIdAndSendTimeAsc(groupId);
}
@GetMapping("/getMessageListByReceiveIdAndSendIdAndSendTiemAsc")
public List<Message> getMessageListByReceiveIdAndSendIdAndSendTiemAsc(String myId, String uid) {
return messageServices.getMessageListByReceiveIdAndSendIdAndSendTiemAsc(myId, uid);
}
@PostMapping("/saveOrUpdate")
public boolean saveOrUpdate(@RequestBody Message message) {
return messageServices.saveUpdate(message);
}
}
\ No newline at end of file
package com.gx.obe.server.management.evaluation.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gx.obe.server.common.utils.CollectionUtils;
import com.gx.obe.server.common.utils.StringUtils;
import com.gx.obe.server.management.evaluation.dao.EvaluationGroupMapper;
import com.gx.obe.server.management.evaluation.entity.EvaluationGroup;
import com.gx.obe.server.management.evaluation.service.EvaluationGroupService;
/**
* @Description:
* @author mazc
*/
@Service
@Transactional
public class EvaluationGroupServiceImpl extends ServiceImpl<EvaluationGroupMapper, EvaluationGroup> implements EvaluationGroupService {
@Autowired
private EvaluationGroupMapper evaluationGroupMapper;
/**
* @Description: 批量更新
* @author mazc
* @param ObeEvaluationGroupList
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer updateByBatch(List<EvaluationGroup> ObeEvaluationGroupList) {
// TODO Auto-generated method stub
return evaluationGroupMapper.updateBatchList(ObeEvaluationGroupList);
}
/**
* @Description: 批量插入
* @author mazc
* @param ObeEvaluationGroupList
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Integer insertByBatch(List<EvaluationGroup> ObeEvaluationGroupList) {
if (CollectionUtils.isNull(ObeEvaluationGroupList)) {
return 0;
}
return evaluationGroupMapper.insertByBatch(ObeEvaluationGroupList);
}
/**
* @Description: 根据用户id获取评审分组
* @author chenxw
* @param tenderId
* @return
*/
@Override
public List<EvaluationGroup> getEvaluationGroupByUserId(String tenderId, String userId, String stepId) {
QueryWrapper<EvaluationGroup> wrapper = new QueryWrapper<EvaluationGroup>();
wrapper.lambda().select(
EvaluationGroup::getId,
EvaluationGroup::getTenderId,
EvaluationGroup::getSupplierId,
EvaluationGroup::getUserId,
EvaluationGroup::getEvalBidType,
EvaluationGroup::getStepId
)
.eq(EvaluationGroup::getTenderId, tenderId);
if (StringUtils.isNotEmpty(userId)) {
wrapper.lambda().eq(EvaluationGroup::getUserId, userId);
}
if (StringUtils.isNotEmpty(stepId)) {
wrapper.lambda().eq(EvaluationGroup::getStepId, stepId);
}
return list(wrapper);
}
/**
* @Description: 通过tenderid stepId删除
* @author mazc
* @param tenderId
* @param stepId
* @return
*/
@Override
public int deleteByTenderIdAndStepId(String tenderId, String stepId) {
QueryWrapper<EvaluationGroup> wrapper = new QueryWrapper<EvaluationGroup>();
wrapper.lambda().eq(EvaluationGroup::getTenderId, tenderId);
wrapper.lambda().eq(EvaluationGroup::getStepId, stepId);
return evaluationGroupMapper.delete(wrapper);
}
}
package com.gx.obe.server.management.evaluation.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gx.obe.server.management.evaluation.entity.SupplierEvaluationFactor;
/**
* @Description:
* @author mazc
*/
public interface SupplierEvaluationFactorService extends IService<SupplierEvaluationFactor> {
/**
* @Description: 批量更新
* @author mazc
* @param ObeSupplierEvaluationFactorList
*/
Integer updateByBatch(List<SupplierEvaluationFactor> ObeSupplierEvaluationFactorList);
/**
* @Description: 批量插入
* @author mazc
* @param ObeSupplierEvaluationFactorList
*/
Integer insertByBatch(List<SupplierEvaluationFactor> ObeSupplierEvaluationFactorList);
/**
* @Description: 获得已评审的结果
* @author mazc
* @param factorCode
* @param supplierId
* @return
*/
List<SupplierEvaluationFactor> getSupplierEvaluationFactorByFactorCodeAndSupplierId(String factorCode, String supplierId);
/**
* @Description: 保存或更新
* @author mazc
* @param supplierEvaluationFactorList
* @return
*/
int batchSaveOrUpdate(List<SupplierEvaluationFactor> supplierEvaluationFactorList, String[] attributes);
/**
* @Description: 按照id更新非空字段
* @author mazc
* @param supplierEvaluationFactor
* @return
*/
boolean updateEventById(SupplierEvaluationFactor supplierEvaluationFactor);
/**
* @Description: 通过tenderId 获取
* @author mazc
* @param tenderId
* @return
*/
List<SupplierEvaluationFactor> getEntityListByTenderId(String tenderId);
/**
* @Description: 按照tenderid删除
* @author mazc
* @param tenderId
* @return
*/
int deleteByTenderId(String tenderId);
/**
* @Description: 指定字段修改
* @author chenxw
* @param supplierEvaluationFactor
* @param attributes
* @return
*/
boolean updateAssignProperty(SupplierEvaluationFactor supplierEvaluationFactor, String[] attributes);
}
# 中国浦东干部学院招投标交易平台39.97.30.133 server: port: 8856 spring: application: name: com.gx.obe.server datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://rm-2zesgdtgnuxq2e54h.mysql.rds.aliyuncs.com:3306/obe_zgpdgbxy?characterEncoding=utf8&allowMultiQueries=true&useSSL=false&useUnicode=true&useOldAliasMetadataBehavior=true&serverTimezone=Asia/Shanghai #url: jdbc:mysql://rm-2zesgdtgnuxq2e54hko.mysql.rds.aliyuncs.com:3306/obe_zgpdgbxy?characterEncoding=utf8&allowMultiQueries=true&useSSL=false&useUnicode=true&useOldAliasMetadataBehavior=true&serverTimezone=Asia/Shanghai username: gxcx-zgpdgbxy password: da3dd0a78b629f logging: level: cn.jay.repository: info # 文件保存路径 upload: folder: folder videofolder: videofolder
\ No newline at end of file
package com.gx.obe.server.management.config.controller;
import java.util.List;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gx.obe.server.common.base.BaseController;
import com.gx.obe.server.management.config.entity.SysConfig;
import com.gx.obe.server.management.config.entity.SysConfigValue;
import com.gx.obe.server.management.config.service.SysConfigService;
import com.gx.obe.server.management.vo.UpdateAssignPropertyVo;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
/**
* @Description:
* @author mazc
*/
@Api(tags = "")
@RestController
@AllArgsConstructor
@RequestMapping("/sysConfig")
public class ConfigController extends BaseController<SysConfigService,SysConfig>{
@Autowired
public SysConfigService sysConfigService;
/**
* @Description: 批量插入
* @author mazc
* @param sysConfigList
*/
@PostMapping("/insertByBatch")
public int insertByBatch(@RequestBody List<SysConfig> sysConfigList) {
return sysConfigService.insertByBatch(sysConfigList);
}
/**
* @Description: 批量更新
* @author mazc
* @param SysConfigList
*/
@PostMapping("/updateByBatch")
public int updateByBatch(@RequestBody List<SysConfig> SysConfigList) {
return sysConfigService.updateByBatch(SysConfigList);
}
/**
* @Description: 指定字段修改
* @param vo
* @return
*/
@PostMapping("/updateAssignProperty")
public boolean updateAssignProperty(@RequestBody UpdateAssignPropertyVo<SysConfig> vo) {
return sysConfigService.updateAssignProperty(vo.getEntity(), vo.getAttributes());
}
/**
* @Description: 验证配置名称唯一性
* @author mazc
* @param id
* @param configName
* @return boolean true:是唯一;false:不是唯一
*/
@GetMapping("/isUniqueConfigName")
public boolean isUniqueConfigName(String id, String configName){
return sysConfigService.isUniqueConfigName(id, configName);
}
/**
* @Description: 验证配置编码唯一性
* @author mazc
* @param id
* @param configCode
* @return
*/
@GetMapping("/isUniqueConfigCode")
public boolean isUniqueConfigCode(String id, String configCode){
return sysConfigService.isUniqueConfigCode(id, configCode);
}
/**
* @Description: 根据编码,获得数据配置对象。
* @author mazc
* @param configCode
* @return
*/
@GetMapping("/getConfigByCode")
public SysConfig getConfigByCode(String configCode){
return sysConfigService.getConfigByCode(configCode);
}
/**
* @Description: 根据配置编码,获得有效配置值集合。
* @author mazc
* @param configCode 配置编码
* @return List<ConfigValue>
*/
@GetMapping("/getConfigValueList")
public List<SysConfigValue> getConfigValueList(String configCode){
return sysConfigService.getConfigValueList(configCode);
}
}
\ No newline at end of file
# 设置服务端口外网端口为8860 server: port: 8835 spring: application: name: com.gx.obe.server datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://172.17.187.151:6033/obe_zhongguohuaneng_cs?characterEncoding=utf8&allowMultiQueries=true&useSSL=false&useUnicode=true&useOldAliasMetadataBehavior=true&serverTimezone=Asia/Shanghai # url: jdbc:mysql://59.110.139.213:6033/obe_zhongguohuaneng_cs?characterEncoding=utf8&allowMultiQueries=true&useSSL=false&useUnicode=true&useOldAliasMetadataBehavior=true&serverTimezone=Asia/Shanghai username: zhongguohuaneng password: ff32fb45a5625f5417e76e logging: level: cn.jay.repository: info # 文件保存路径 upload: folder: folder
\ No newline at end of file
# 设置服务端口 server: port: 8899 spring: application: name: com.gx.obe.server datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://rm-2zesgdtgnuxq2e54hko.mysql.rds.aliyuncs.com:3306/obe_zgyd?characterEncoding=utf8&allowMultiQueries=true&useSSL=false&useUnicode=true&useOldAliasMetadataBehavior=true&serverTimezone=Asia/Shanghai username: gxcx-zgyd password: Z3hjeC16Z3lk logging: level: cn.jay.repository: info # 文件保存路径 upload: folder: folder
\ No newline at end of file
package com.gx.obe.server.management.fileload.service;
import java.util.List;
import com.gx.obe.server.common.vo.Result;
import com.gx.obe.server.management.fileload.entity.ParameterInfo;
import com.gx.obe.server.management.fileload.entity.FileInfoEntity;
public interface BidFileService {
public List<FileInfoEntity> getReportFile(String folderPath ,ParameterInfo FileInfo);
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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