资质证书预警等相关修改

dev_test1.0
anthonywj 1 year ago
parent bdd9306804
commit 48c0ce5269

@ -10,12 +10,18 @@ import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.dao.purchase.SupCertRemindMsgDao;
import com.glxp.api.entity.basic.BasicCorpsImportLogEntity;
import com.glxp.api.entity.purchase.SupCertRemindMsgEntity;
import com.glxp.api.req.basic.FilterCorpImportLogRequest;
import com.glxp.api.req.purchase.FilterCertRemindMsgRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.purchase.SupCertRemindMsgResponse;
import com.glxp.api.service.purchase.SupCertRemindMsgService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
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.RestController;
import javax.annotation.Resource;
@ -85,4 +91,22 @@ public class SupCertRemindMsgController {
return supCertRemindMsgService.ignoreMsg(id, ignoreStatus);
}
/**
*
*
* @param deleteRequest
* @param bindingResult
* @return
*/
@PostMapping("/sup/cert/remind/msg/delete")
@Log(title = "删除预警信息", businessType = BusinessType.DELETE)
public BaseResponse deleteLog(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
supCertRemindMsgDao.deleteById(deleteRequest.getId());
return ResultVOUtils.success("删除成功");
}
}

@ -33,10 +33,7 @@ import com.glxp.api.service.auth.AuthAdminService;
import com.glxp.api.service.auth.AuthRoleAdminService;
import com.glxp.api.service.auth.CustomerInfoService;
import com.glxp.api.service.basic.BasicCorpService;
import com.glxp.api.service.purchase.CustomerContactService;
import com.glxp.api.service.purchase.SupCertService;
import com.glxp.api.service.purchase.SupCertSetService;
import com.glxp.api.service.purchase.SupCompanyService;
import com.glxp.api.service.purchase.*;
import com.glxp.api.util.CustomUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
@ -218,6 +215,8 @@ public class SupCompanyController {
return ResultVOUtils.success("修改成功");
}
@Resource
SupCertRemindMsgService supCertRemindMsgService;
@AuthRuleAnnotation("")
@PostMapping("/api/pur/auditCompany")
@ -327,7 +326,8 @@ public class SupCompanyController {
} else {
}
//更新移除预警信息
supCertRemindMsgService.removeRemindMsg(companyEntity.getUnitIdFk());
return ResultVOUtils.success("修改成功");
}

@ -23,10 +23,7 @@ import com.glxp.api.req.purchase.FilterSupManufacturerRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.service.auth.AuthAdminService;
import com.glxp.api.service.purchase.SupCertService;
import com.glxp.api.service.purchase.SupCertSetService;
import com.glxp.api.service.purchase.SupCompanyService;
import com.glxp.api.service.purchase.SupManufacturerService;
import com.glxp.api.service.purchase.*;
import com.glxp.api.service.system.CompanyService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -297,6 +294,8 @@ public class SupManufacturerController {
}
}
@Resource
SupCertRemindMsgService supCertRemindMsgService;
@AuthRuleAnnotation("")
@PostMapping("/udiwms/sup/manufacturer/audit")
@ -380,7 +379,8 @@ public class SupManufacturerController {
boolean b = supManufacturerService.modifyCompany(supManufacturerEntity);
//修改证书对应的供应商ID生产企业ID
supCertService.updateManufacturerId(originEntity.getCustomerId(), supManufacturerEntity.getCustomerId(), originEntity.getManufacturerId(), supManufacturerEntity.getManufacturerId());
//更新移除预警信息
supCertRemindMsgService.removeRemindMsg(supManufacturerEntity.getManufacturerId());
if (b) {
return ResultVOUtils.success("修改成功");
} else {

@ -30,10 +30,7 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.purchase.SupProductResponse;
import com.glxp.api.service.auth.AuthAdminService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.purchase.SupCertService;
import com.glxp.api.service.purchase.SupCertSetService;
import com.glxp.api.service.purchase.SupManufacturerService;
import com.glxp.api.service.purchase.SupProductService;
import com.glxp.api.service.purchase.*;
import com.glxp.api.service.thrsys.ThrProductsService;
import com.glxp.api.service.thrsys.ThrSystemService;
import com.glxp.api.util.GennerOrderUtils;
@ -65,9 +62,12 @@ public class SupProductController {
SupManufacturerService supManufacturerService;
@Resource
SupCertSetService supCertSetService;
@Resource
SupCertRemindMsgService supCertRemindMsgService;
@AuthRuleAnnotation("")
@GetMapping("/sup/product/getRegistrationInfo")
public BaseResponse getRegistrationInfo(FilterPoductRequest filterPoductRequest) {
SupProductEntity supProductEntity = supProductService.findRegistration(filterPoductRequest.getId());
if (supProductEntity != null) {
@ -363,6 +363,10 @@ public class SupProductController {
supProductEntity.setUpdateTime(new Date());
boolean b = supProductService.modifyRegistration(supProductEntity);
//更新移除预警信息
supCertRemindMsgService.removeRemindMsg(supProductEntity.getProductId());
if (StrUtil.isNotEmpty(supProductEntity.getRelIdFk())) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(Long.parseLong(supProductEntity.getRelIdFk()));
if (udiRelevanceEntity != null) {

@ -82,6 +82,11 @@ public class SupCertEntity {
/**
*
* 0: "草稿",
* 1: "已确认",
* 2: "已拒绝",
* 3: "变更未确认",
* 6: "未确认",
*/
@TableField("auditStatus")
private Integer auditStatus;

@ -51,6 +51,14 @@ public class SupCertRemindMsgEntity {
@TableField(value = "`type`")
private Integer type;
/**
* 12
*/
@TableField(value = "`warnType`")
private Integer warnType;
/**
* 12
*/

@ -100,5 +100,9 @@ public class SupCertRemindMsgResponse {
private String supName;
private Integer warnType;
private String supId;
private String manufacturerIdFk;
}

@ -42,4 +42,11 @@ public interface SupCertRemindMsgService {
*/
void createRemindMsg();
/**
*
*/
boolean removeRemindMsg(String idFk);
}

@ -1,6 +1,7 @@
package com.glxp.api.service.purchase.impl;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.res.BaseResponse;
@ -16,12 +17,15 @@ import com.glxp.api.res.purchase.SupCertRemindMsgResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.purchase.SupCertRemindMsgService;
import com.glxp.api.service.purchase.SupCertService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.DateUtil;
import com.glxp.api.util.IntUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
@ -122,10 +126,16 @@ public class SupCertRemindMsgImpl implements SupCertRemindMsgService {
//资质预警类型集合
List<Integer> types = Arrays.asList(1, 2, 3);
for (Integer type : types) {
buildNearRemindMsg(buildNearQueryWrapper(type), type);
buildRemindMsg(buildQueryWrapper(type), type);
}
}
@Override
public boolean removeRemindMsg(String idFk) {
return supCertRemindMsgDao.delete(new LambdaQueryWrapper<SupCertRemindMsgEntity>().eq(SupCertRemindMsgEntity::getIdFk, idFk)) > 0;
}
/**
*
*
@ -151,10 +161,73 @@ public class SupCertRemindMsgImpl implements SupCertRemindMsgService {
return wrapper;
}
/**
*
*
* @param type
* @return
*/
@Resource
SystemParamConfigService systemParamConfigService;
private QueryWrapper<SupCertEntity> buildNearQueryWrapper(Integer type) {
String plusDay = systemParamConfigService.selectValueByParamKey("cert_near_warn");
if (IntUtil.value(plusDay) > 0) {
QueryWrapper<SupCertEntity> wrapper = new QueryWrapper<>();
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 获取N天后的日期
LocalDate endDate = currentDate.plusDays(IntUtil.value(plusDay));
// 创建 QueryWrapper 并设置条件
wrapper.lt("expireDate", endDate);
wrapper.ge("expireDate", currentDate);
wrapper.eq("status", 0).eq("auditStatus", ConstantStatus.AUDIT_PASS).eq("type", type);
switch (type) {
case 1: //查询供应商ID
wrapper.select("CustomerId", "code", "vailDate", "expireDate", "type");
break;
case 2: //查询生产企业ID
wrapper.select("manufacturerIdFk", "code", "vailDate", "expireDate", "type");
break;
case 3: //查询产品ID
wrapper.select("productIdFk", "code", "vailDate", "expireDate", "type");
break;
default:
break;
}
return wrapper;
}
return null;
}
@Resource
SupCertService supCertService;
/**
*
*/
private void buildNearRemindMsg(QueryWrapper<SupCertEntity> supCertWrapper, Integer type) {
List<SupCertEntity> supCertList = supCertDao.selectList(supCertWrapper);
List<SupCertEntity> list = new CopyOnWriteArrayList<>(supCertList);
list.parallelStream().forEach(supCertEntity -> {
SupCertRemindMsgEntity msgEntity = getSupCertNearRemindMsg(supCertEntity, type);
if (null == msgEntity.getNextRemindTime() || msgEntity.getNextRemindTime().getTime() > new Date().getTime()) {
try {
saveMsg(msgEntity);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
*
*
@ -233,6 +306,7 @@ public class SupCertRemindMsgImpl implements SupCertRemindMsgService {
msgEntity = new SupCertRemindMsgEntity();
msgEntity.setIdFk(idFk); //设置关联主键
msgEntity.setType(type); //类型
msgEntity.setWarnType(1);
msgEntity.setCode(supCertEntity.getCode()); //证书编码
msgEntity.setCreateTime(new Date());
}
@ -243,4 +317,40 @@ public class SupCertRemindMsgImpl implements SupCertRemindMsgService {
return msgEntity;
}
private SupCertRemindMsgEntity getSupCertNearRemindMsg(SupCertEntity supCertEntity, Integer type) {
String idFk = null; //关联外键
String msg = null; //预警信息
switch (type) {
case 1: //供应商
idFk = supCertEntity.getCustomerId();
msg = "供应商资质即将过期,过期时间:" + DateUtil.formatDate(supCertEntity.getExpireDate(), "yyyy-MM-dd");
break;
case 2: //生产企业
idFk = supCertEntity.getManufacturerIdFk();
msg = "生产企业资质即将过期,过期时间:" + DateUtil.formatDate(supCertEntity.getExpireDate(), "yyyy-MM-dd");
break;
case 3: //产品
idFk = supCertEntity.getProductIdFk();
msg = "产品资质即将过期,过期时间:" + DateUtil.formatDate(supCertEntity.getExpireDate(), "yyyy-MM-dd");
break;
default:
break;
}
SupCertRemindMsgEntity msgEntity = supCertRemindMsgDao.selectOne(new QueryWrapper<SupCertRemindMsgEntity>().eq("idFk", idFk).eq("type", type).eq("code", supCertEntity.getCode()).last("limit 1"));
if (null == msgEntity) {
//构造新的资质预警信息
msgEntity = new SupCertRemindMsgEntity();
msgEntity.setIdFk(idFk); //设置关联主键
msgEntity.setType(type); //类型
msgEntity.setWarnType(2);
msgEntity.setCode(supCertEntity.getCode()); //证书编码
msgEntity.setCreateTime(new Date());
}
msgEntity.setVailDate(supCertEntity.getVailDate());
msgEntity.setExpireDate(supCertEntity.getExpireDate());
msgEntity.setMsg(msg);
return msgEntity;
}
}

@ -1,5 +1,8 @@
package com.glxp.api.upload;
import cn.hutool.core.thread.ThreadUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@ -13,6 +16,7 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
@Slf4j
@RestController
public class DownloadController {
@Value("${file_path}")
@ -35,7 +39,7 @@ public class DownloadController {
}
input.close();
} catch (IOException e) {
log.error("pdf:" + ExceptionUtils.getStackTrace(e));
} finally {
if (os != null) {
os.flush();
@ -55,7 +59,7 @@ public class DownloadController {
ImageIO.write(image, "png", os);
}
} catch (IOException e) {
e.printStackTrace();
log.error("图片:" + ExceptionUtils.getStackTrace(e));
} finally {
if (os != null) {
os.flush();
@ -94,7 +98,7 @@ public class DownloadController {
@GetMapping(value = "/udiwms/donwload/printFile")
public void printFile(HttpServletResponse response, @RequestParam String fileName) throws IOException {
String url="D:\\udi\\udiwms\\udiwmsfile\\pdf\\template\\"+fileName;
String url = "D:\\udi\\udiwms\\udiwmsfile\\pdf\\template\\" + fileName;
OutputStream os = null;
try {
FileInputStream input = new FileInputStream(new File(url));

@ -36,6 +36,7 @@
<select id="selectManufactureRemindMsgList" resultType="com.glxp.api.res.purchase.SupCertRemindMsgResponse">
select m.*,
c.companyName `name`,
c.customerId supId,
(select `name` from sup_cert s where s.code = m.code and s.manufacturerIdFk = m.idFk limit 1) certName
,
(select name from basic_corp where erpId = c.customerId) supName
@ -69,8 +70,9 @@
<select id="selectProductRemindMsgList" resultType="com.glxp.api.res.purchase.SupCertRemindMsgResponse">
select m.*,
c.recordProductName `name`,
(select `name` from sup_cert s where s.code = m.code and s.productIdFk = m.idFk limit 1) certName
,
c.manufacturerIdFk,
c.customerId supId,
(select `name` from sup_cert s where s.code = m.code and s.productIdFk = m.idFk limit 1) certName,
(select name from basic_corp where erpId = c.customerId) supName

@ -25,7 +25,7 @@
FROM sup_company
<where>
<if test="customerId != null and customerId != ''">
and parentIdFk = #{customerId}
and customerId = #{customerId}
</if>
<if test="companyName != null and companyName != ''">
and companyName like concat('%',#{companyName},'%')

@ -695,7 +695,7 @@ VALUES (45, '耗材分类', 'hcType', 1, 1, 1, 0, '耗材分类是否必填字
CALL Pro_Temp_ColumnWork('basic_bustype_pre', 'splitOrder', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('sup_cert_remind_msg', 'warnType', 'tinyint', 1);
CREATE TABLE IF NOT EXISTS `thr_hslb`
(
@ -730,6 +730,12 @@ CREATE TABLE IF NOT EXISTS `thr_product_type`
ROW_FORMAT = DYNAMIC;
INSERT ignore INTO sys_param_config(`id`, `parentId`, `paramName`, `paramKey`, `paramValue`,
`paramStatus`, `paramType`, `paramExplain`, `updateTime`)
VALUES (20090, 0, '资质证书近效期预警', 'cert_near_warn', '15', 1, 0, '资质证书近效期预警(单位:天)', NULL);

Loading…
Cancel
Save