Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java
master
郑明梁 2 years ago
commit 770405f62a

@ -72,20 +72,20 @@ public class BasicOrderPrintController {
//校验模板是否正确
@AuthRuleAnnotation("")
@PostMapping("/udiwms/pdf/template/inspection/order/file")
public BaseResponse inspectionStockOrderPDFFromTemplateFile(@RequestBody FilterOrderPrintRequest filterOrderPrintRequest){
public BaseResponse inspectionStockOrderPDFFromTemplateFile(@RequestBody FilterOrderPrintRequest filterOrderPrintRequest) {
SystemPDFTemplateRelevanceEntity systemPDFTemplateRelevanceEntityt=systemPDFTemplateRelevanceService.selectModuleldAndAction(filterOrderPrintRequest.getModuleId(),filterOrderPrintRequest.getAction());
if(systemPDFTemplateRelevanceEntityt!=null){
SystemPDFTemplateEntity systemPDFTemplateEntity=systemPDFTemplateService.selectById(systemPDFTemplateRelevanceEntityt.getTemplateId()+"");
if (systemPDFTemplateEntity==null){
return ResultVOUtils.error(999,"所属模板错误!");
}else{
return ResultVOUtils.success(systemPDFTemplateEntity.getId());
}
}else{
return ResultVOUtils.error(999,"所属模板错误!");
}
SystemPDFTemplateRelevanceEntity systemPDFTemplateRelevanceEntityt = systemPDFTemplateRelevanceService.selectModuleldAndAction(filterOrderPrintRequest.getModuleId(), filterOrderPrintRequest.getAction());
if (systemPDFTemplateRelevanceEntityt != null) {
SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(systemPDFTemplateRelevanceEntityt.getTemplateId() + "");
if (systemPDFTemplateEntity == null) {
return ResultVOUtils.error(999, "所属模板错误!");
} else {
return ResultVOUtils.success(systemPDFTemplateEntity.getId());
}
} else {
return ResultVOUtils.error(999, "所属模板错误!");
}
}

@ -91,6 +91,9 @@ public class IoCodeTempController extends BaseController {
InvProductDetailService invProductDetailService;
@Resource
IoCodeLostService codeLostService;
@Resource
IoOrderDetailBizService orderDetailBizService;
//手持端扫码单据上传调用接口
@AuthRuleAnnotation("")
@ -843,24 +846,39 @@ public class IoCodeTempController extends BaseController {
}
//更新供应商
IoCodeTempEntity codeTempEntity = codeTempService.selectById(codeSaveRequest.getId());
codeTempEntity.setSupId(codeSaveRequest.getSupId());
if (StrUtil.isNotEmpty(codeTempEntity.getSupId())) {
codeTempEntity.setSupId(codeTempEntity.getSupId());
codeTempService.updateById(codeTempEntity);
if (StrUtil.isNotEmpty(codeSaveRequest.getMySupId())) {
codeTempEntity.setSupId(codeSaveRequest.getMySupId());
codeTempService.updateById(codeSaveRequest);
}
if (codeTempEntity.getRelId() != null) {
codeTempEntity = codeTempService.selectById(codeTempEntity.getId());
int reCount = udiCalCountUtil.getActCount(codeTempEntity);
codeTempEntity.setReCount(reCount);
codeTempService.updateById(codeTempEntity);
//更新耗材字典
if (codeSaveRequest.getRelId() != null) {
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(codeTempEntity.getAction());
BaseResponse baseResponse = checkSupId(bussinessTypeEntity, codeTempEntity, codeTempEntity.getSupId());
if (baseResponse != null)
return baseResponse;
codeTempEntity.setRelId(codeSaveRequest.getRelId());
int reCount = udiCalCountUtil.getActCount(codeTempEntity);
codeTempEntity.setReCount(reCount);
}
codeTempEntity = codeTempService.selectById(codeTempEntity.getId());
IoOrderEntity orderEntity = orderService.findByBillNo(codeTempEntity.getOrderId());
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
if (orderEntity.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) {
String errMsg = ioCheckInoutService.checkCode(codeTempEntity);
if (errMsg != null) {
return ResultVOUtils.error(500, errMsg);
} else
codeTempService.updateById(codeTempEntity);
} else {
codeTempService.updateById(codeTempEntity);
}
ioAddInoutService.genOrderDetailCode(orderEntity, codeTempEntity);
return ResultVOUtils.success("绑定成功");

@ -49,7 +49,7 @@ public class InvInnerOrderPrintController {
private InvInnerOrderPrintService invInnerOrderPrintService;
@Resource
SystemPDFModuleService systemPDFModuleService;
SystemPDFModuleService systemPDFModuleService;
@Resource
SystemPDFTemplateService systemPDFTemplateService;
@Value("${file_path}")
@ -60,8 +60,6 @@ public class InvInnerOrderPrintController {
private InvInnerOrderPdfTempService innerOrderPdfTempService;
@GetMapping("/udiwms/innerOrderPrint/filter")
public BaseResponse filterList(FilterinnerOrderprintRequest filterinnerOrderprintRequest) {
List<InvInnerOrderPrintEntity> list = invInnerOrderPrintService.filterOrderPrintList(filterinnerOrderprintRequest);
@ -73,24 +71,26 @@ public class InvInnerOrderPrintController {
}
@PostMapping("/udiwms/innerOrderPrint/addOrderPrint")
public BaseResponse addOrderPrint(@RequestBody invInnerOrderprintReques invInnerOrderprintReques){
public BaseResponse addOrderPrint(@RequestBody invInnerOrderprintReques invInnerOrderprintReques) {
if(invInnerOrderprintReques.getOrderIdFk()!=null){
invInnerOrderPrintService.addOrderList(invInnerOrderprintReques.getOrderIdFk());
}else{
return ResultVOUtils.error(999,"参数错误!");
}
return ResultVOUtils.success();
if (invInnerOrderprintReques.getOrderIdFk() != null) {
invInnerOrderPrintService.addOrderList(invInnerOrderprintReques.getOrderIdFk());
} else {
return ResultVOUtils.error(999, "参数错误!");
}
return ResultVOUtils.success();
}
//-----------打印码
@AuthRuleAnnotation("")
@PostMapping("/udiwms/pdf/template/inspection/stock/qrcode/text/file")
public BaseResponse inspectionStockQRCodeTextPDFFromTemplateFile(
@RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) throws Exception {
SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(6 + "");
if (inspectionPDFTemplateRequest.getModuleId() == null)
inspectionPDFTemplateRequest.setModuleId(3);
SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(inspectionPDFTemplateRequest.getModuleId() + "");
if (systemPDFModuleEntity == null) return ResultVOUtils.error(ResultEnum.DATA_NOT, "所属模块错误");
SystemPDFTemplateEntity systemPDFTemplateEntity =
systemPDFTemplateService.selectById(String.valueOf(systemPDFModuleEntity.getTemplateId()));
@ -104,8 +104,10 @@ public class InvInnerOrderPrintController {
public BaseResponse stockQRCodeTextPDFFromTemplateFile(
@RequestBody InnerOrderQRCodeTextPDFTemplateRequest stockQRCodeTextPDFTemplateRequest,
HttpServletRequest request, HttpServletResponse response) throws Exception {
SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(6 + "");
if (systemPDFModuleEntity == null) return null;
if (stockQRCodeTextPDFTemplateRequest.getModuleId() == null)
stockQRCodeTextPDFTemplateRequest.setModuleId(3);
SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(stockQRCodeTextPDFTemplateRequest.getModuleId() + "");
if (systemPDFModuleEntity == null) return ResultVOUtils.error(500, "未找到单据模板模块设置,请检查");
SystemPDFTemplateEntity systemPDFTemplateEntity =
systemPDFTemplateService.selectById(String.valueOf(systemPDFModuleEntity.getTemplateId()));
if (systemPDFTemplateEntity == null) return null;
@ -178,7 +180,7 @@ public class InvInnerOrderPrintController {
}
for (innerOrderPrintRequest innerOrderPrintRequest : mStockPrintEntities) {
InvInnerOrderPrintEntity innerOrderPrintEntity=new InvInnerOrderPrintEntity();
InvInnerOrderPrintEntity innerOrderPrintEntity = new InvInnerOrderPrintEntity();
innerOrderPrintEntity.setStatus(1);
innerOrderPrintEntity.setId(innerOrderPrintRequest.getId());
invInnerOrderPrintService.updateOrder(innerOrderPrintEntity);
@ -198,9 +200,9 @@ public class InvInnerOrderPrintController {
@AuthRuleAnnotation("")
@PostMapping("/udiwms/pdf/template/stock/qrcode/text/maxfile")
public BaseResponse stockQRCodeMaxTextPDFFromTemplateFile(@RequestBody InnerOrderQRCodeTextPDFTemplateRequest innerOrderQRCodeTextPDFTemplateRequest){
public BaseResponse stockQRCodeMaxTextPDFFromTemplateFile(@RequestBody InnerOrderQRCodeTextPDFTemplateRequest innerOrderQRCodeTextPDFTemplateRequest) {
PageSimpleResponse pageSimpleResponse=invInnerOrderPrintService.print(innerOrderQRCodeTextPDFTemplateRequest);
PageSimpleResponse pageSimpleResponse = invInnerOrderPrintService.print(innerOrderQRCodeTextPDFTemplateRequest);
return ResultVOUtils.success(pageSimpleResponse);

@ -0,0 +1,71 @@
package com.glxp.api.controller.purchase;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.req.purchase.FilterCertRemindMsgRequest;
import com.glxp.api.res.purchase.SupCertRemindMsgResponse;
import com.glxp.api.service.purchase.SupCertRemindMsgService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
*
*/
@Slf4j
@RestController
public class SupCertRemindMsgController {
@Resource
private SupCertRemindMsgService supCertRemindMsgService;
/**
*
*
* @param filterCertRemindMsgRequest
* @return
*/
@GetMapping("/sup/cert/remind/msg/filter")
public BaseResponse filterList(FilterCertRemindMsgRequest filterCertRemindMsgRequest) {
List<SupCertRemindMsgResponse> list = supCertRemindMsgService.filterList(filterCertRemindMsgRequest);
PageInfo<SupCertRemindMsgResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}
/**
*
*
* @param id
* @param handleMsg
* @return
*/
@GetMapping("/sup/cert/remind/msg/confirmMsg")
public BaseResponse confirmMsg(Integer id, String handleMsg) {
if (null == id || StrUtil.isBlank(handleMsg)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
return supCertRemindMsgService.confirmMsg(id, handleMsg);
}
/**
*
*
* @param id
* @param ignoreStatus
* @return
*/
@GetMapping("/sup/cert/remind/msg/ignoreMsg")
public BaseResponse ignoreMsg(Integer id, Integer ignoreStatus) {
if (null == id || null == ignoreStatus) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
return supCertRemindMsgService.ignoreMsg(id, ignoreStatus);
}
}

@ -1,6 +1,7 @@
package com.glxp.api.dao.purchase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.purchase.SupCertEntity;
import com.glxp.api.req.purchase.FilterSupCertRequest;
import com.glxp.api.req.purchase.purPlanPrintRequest;
@ -10,7 +11,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface SupCertDao {
public interface SupCertDao extends BaseMapper<SupCertEntity> {
List<SupCertEntity> filterCompanyCert(FilterSupCertRequest filterSupCertRequest);
@ -25,7 +26,7 @@ public interface SupCertDao {
boolean deleteById(String id);
boolean updateCustomerId(@Param("oldId") String oldId, @Param("newId") String newId,@Param("auditStatus") Integer auditStatus);
boolean updateCustomerId(@Param("oldId") String oldId, @Param("newId") String newId, @Param("auditStatus") Integer auditStatus);
boolean updateManufacturerId(@Param("oldCustomerId") String oldCustomerId, @Param("newCustomerId") String newCustomerId,
@Param("oldManufacturerIdFk") String oldManufacturerIdFk, @Param("newManufacturerIdFk") String newManufacturerIdFk);

@ -0,0 +1,35 @@
package com.glxp.api.dao.purchase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.purchase.SupCertRemindMsgEntity;
import com.glxp.api.req.purchase.FilterCertRemindMsgRequest;
import com.glxp.api.res.purchase.SupCertRemindMsgResponse;
import java.util.List;
public interface SupCertRemindMsgDao extends BaseMapper<SupCertRemindMsgEntity> {
/**
*
*
* @param filterCertRemindMsgRequest
* @return
*/
List<SupCertRemindMsgResponse> selectSupRemindMsgList(FilterCertRemindMsgRequest filterCertRemindMsgRequest);
/**
*
*
* @param filterCertRemindMsgRequest
* @return
*/
List<SupCertRemindMsgResponse> selectManufactureRemindMsgList(FilterCertRemindMsgRequest filterCertRemindMsgRequest);
/**
*
*
* @param filterCertRemindMsgRequest
* @return
*/
List<SupCertRemindMsgResponse> selectProductRemindMsgList(FilterCertRemindMsgRequest filterCertRemindMsgRequest);
}

@ -4,6 +4,7 @@ package com.glxp.api.dao.purchase;
import com.glxp.api.entity.purchase.SupCompanyEntity;
import com.glxp.api.req.purchase.FilterSupCompanyRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -26,4 +27,11 @@ public interface SupCompanyDao {
boolean deleteCompany(String customerId);
/**
* ID
*
* @param customerId
* @return
*/
String selectNameByCustomerId(@Param("customerId") String customerId);
}

@ -24,4 +24,12 @@ public interface SupManufacturerDao {
boolean deleteById(@Param("id") String id);
List<SupManufacturerEntity> getCompanyByNameAndCode(FilterSupManufacturerRequest filterSupManufacturerRequest);
/**
* ID
*
* @param manufacturerId
* @return
*/
String selectNameByManufacturerId(@Param("manufacturerId") String manufacturerId);
}

@ -27,4 +27,5 @@ public interface SupProductDao {
boolean deleteById(@Param("id") String id);
boolean deleteByEnterpriseId(@Param("enterpriseId") String enterpriseId);
}

@ -0,0 +1,102 @@
package com.glxp.api.entity.purchase;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
*
*/
@Data
@TableName(value = "sup_cert_remind_msg")
public class SupCertRemindMsgEntity {
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* IDIDID
*/
@TableField(value = "idFk")
private String idFk;
/**
*
*/
@TableField(value = "code")
private String code;
/**
*
*/
@TableField(value = "vailDate")
private Date vailDate;
/**
*
*/
@TableField(value = "expireDate")
private Date expireDate;
/**
* 123
*/
@TableField(value = "`type`")
private Integer type;
/**
* 12
*/
@TableField(value = "`status`")
private Integer status;
/**
* 017215330
*/
@TableField(value = "ignoreStatus")
private Integer ignoreStatus;
/**
*
*/
@TableField(value = "msg")
private String msg;
/**
*
*/
@TableField(value = "handleMsg")
private String handleMsg;
/**
*
*/
@TableField(value = "nextRemindTime")
private Date nextRemindTime;
/**
*
*/
@TableField(value = "createTime")
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
/**
*
*/
@TableField(value = "remark")
private String remark;
}

@ -12,7 +12,7 @@ public class InspectionPDFTemplateRequest {
private int module;
private String orderId;
private Long customerId;
private int moduleId;
private Integer moduleId;
}

@ -0,0 +1,32 @@
package com.glxp.api.req.purchase;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
/**
*
*/
@Data
public class FilterCertRemindMsgRequest extends ListPageRequest {
/**
*
*/
private String name;
/**
* 123
*/
private Integer type;
/**
* 12
*/
private Integer status;
/**
* 017215330
*/
private Integer ignoreStatus;
}

@ -0,0 +1,96 @@
package com.glxp.api.res.purchase;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* VO
*/
@Data
public class SupCertRemindMsgResponse {
/**
* id
*/
private Integer id;
/**
* IDIDID
*/
private String idFk;
/**
*
*/
private String code;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date vailDate;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expireDate;
/**
* 123
*/
private Integer type;
/**
* 12
*/
private Integer status;
/**
* 017215330
*/
private Integer ignoreStatus;
/**
*
*/
private String msg;
/**
*
*/
private String handleMsg;
/**
*
*/
private Date nextRemindTime;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
*
*/
private String remark;
/**
* //
*/
private String name;
/**
*
*/
private String certName;
}

@ -56,7 +56,7 @@ public class InvRemindMsgServiceImpl implements InvRemindMsgService {
public BaseResponse confirmMsg(Integer id, String handleMsg) {
InvRemindMsgEntity invRemindMsgEntity = invRemindMsgDao.selectById(id);
if (null == invRemindMsgEntity) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "息不存在");
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "预警信息不存在");
}
invRemindMsgEntity.setStatus(2); //消息状态修改为已确认
invRemindMsgEntity.setIgnoreStatus(0); //重置成为不忽略
@ -192,7 +192,7 @@ public class InvRemindMsgServiceImpl implements InvRemindMsgService {
}
msgEntity.setIgnoreStatus(ignoreStatus);
invRemindMsgDao.updateById(msgEntity);
return ResultVOUtils.success("已忽略提醒");
return ResultVOUtils.success("已忽略预警");
}
/**
@ -217,7 +217,7 @@ public class InvRemindMsgServiceImpl implements InvRemindMsgService {
}
/**
*
*
*
* @param invRemindMsgRequest
* @param invProductEntity

@ -0,0 +1,45 @@
package com.glxp.api.service.purchase;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.req.purchase.FilterCertRemindMsgRequest;
import com.glxp.api.res.purchase.SupCertRemindMsgResponse;
import java.util.List;
/**
* Service
*/
public interface SupCertRemindMsgService {
/**
*
*
* @param filterCertRemindMsgRequest
* @return
*/
List<SupCertRemindMsgResponse> filterList(FilterCertRemindMsgRequest filterCertRemindMsgRequest);
/**
*
*
* @param id
* @param handleMsg
* @return
*/
BaseResponse confirmMsg(Integer id, String handleMsg);
/**
*
*
* @param id
* @param ignoreStatus
* @return
*/
BaseResponse ignoreMsg(Integer id, Integer ignoreStatus);
/**
*
*/
void createRemindMsg();
}

@ -0,0 +1,231 @@
package com.glxp.api.service.purchase.impl;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dao.purchase.*;
import com.glxp.api.entity.purchase.SupCertEntity;
import com.glxp.api.entity.purchase.SupCertRemindMsgEntity;
import com.glxp.api.req.purchase.FilterCertRemindMsgRequest;
import com.glxp.api.res.purchase.SupCertRemindMsgResponse;
import com.glxp.api.service.purchase.SupCertRemindMsgService;
import com.glxp.api.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class SupCertRemindMsgImpl implements SupCertRemindMsgService {
@Resource
private SupCertRemindMsgDao supCertRemindMsgDao;
@Resource
private SupProductDao supProductDao;
@Resource
private UdiRelevanceDao udiRelevanceDao;
@Resource
private SupManufacturerDao supManufacturerDao;
@Resource
private SupCompanyDao supCompanyDao;
@Resource
private SupCertDao supCertDao;
@Override
public List<SupCertRemindMsgResponse> filterList(FilterCertRemindMsgRequest filterCertRemindMsgRequest) {
if (null == filterCertRemindMsgRequest || null == filterCertRemindMsgRequest.getType()) {
return Collections.emptyList();
}
if (null == filterCertRemindMsgRequest.getPage() && null != filterCertRemindMsgRequest.getLimit()) {
PageHelper.offsetPage((filterCertRemindMsgRequest.getPage() - 1) * filterCertRemindMsgRequest.getLimit(), filterCertRemindMsgRequest.getLimit());
}
List<SupCertRemindMsgResponse> list = null;
//根据类型查询预警信息
switch (filterCertRemindMsgRequest.getType()) {
case 1: //查询供应商资质预警信息
list = supCertRemindMsgDao.selectSupRemindMsgList(filterCertRemindMsgRequest);
break;
case 2: //查询生产企业资质预警信息
list = supCertRemindMsgDao.selectManufactureRemindMsgList(filterCertRemindMsgRequest);
break;
case 3: //查询产品资质预警信息
list = supCertRemindMsgDao.selectProductRemindMsgList(filterCertRemindMsgRequest);
break;
default:
break;
}
return list;
}
@Override
public BaseResponse confirmMsg(Integer id, String handleMsg) {
SupCertRemindMsgEntity supCertRemindMsgEntity = supCertRemindMsgDao.selectById(id);
if (null == supCertRemindMsgEntity) {
return ResultVOUtils.error(500, "预警信息不存在");
}
supCertRemindMsgEntity.setHandleMsg(handleMsg);
Date date = new Date();
supCertRemindMsgEntity.setUpdateTime(date);
supCertRemindMsgEntity.setNextRemindTime(date);
supCertRemindMsgEntity.setStatus(2); //已确认
supCertRemindMsgEntity.setIgnoreStatus(0); //忽略状态,不忽略
supCertRemindMsgDao.updateById(supCertRemindMsgEntity);
return ResultVOUtils.success("已确认");
}
@Override
public BaseResponse ignoreMsg(Integer id, Integer ignoreStatus) {
SupCertRemindMsgEntity msgEntity = supCertRemindMsgDao.selectById(id);
if (null == msgEntity) {
return ResultVOUtils.error(500, "预警信息不存在");
}
//根据忽略状态,更新忽略时间
Date updateTime = msgEntity.getUpdateTime();
switch (ignoreStatus) {
case 1: //忽略7天
msgEntity.setNextRemindTime(DateUtil.getAfterDay(updateTime, 7 * 24));
break;
case 2: //忽略15天
msgEntity.setNextRemindTime(DateUtil.getAfterDay(updateTime, 15 * 24));
break;
case 3: //忽略30天
msgEntity.setNextRemindTime(DateUtil.getAfterDay(updateTime, 30 * 24));
break;
default:
break;
}
msgEntity.setIgnoreStatus(ignoreStatus);
supCertRemindMsgDao.updateById(msgEntity);
return ResultVOUtils.success("已忽略预警");
}
@Override
public void createRemindMsg() {
//资质预警类型集合
List<Integer> types = Arrays.asList(1, 2, 3);
for (Integer type : types) {
buildRemindMsg(buildQueryWrapper(type), type);
}
}
/**
*
*
* @param type
* @return
*/
private QueryWrapper<SupCertEntity> buildQueryWrapper(Integer type) {
QueryWrapper<SupCertEntity> wrapper = new QueryWrapper<>();
wrapper.eq("status", 0).eq("auditStatus", ConstantStatus.AUDIT_PASS).lt("expireDate", new Date()).eq("type", type);
switch (type) {
case 1: //查询供应商ID
wrapper.select("CustomerId", "code", "vailDate", "expireDate");
break;
case 2: //查询生产企业ID
wrapper.select("manufacturerIdFk", "code", "vailDate", "expireDate");
break;
case 3: //查询产品ID
wrapper.select("productIdFk", "code", "vailDate", "expireDate");
break;
default:
break;
}
return wrapper;
}
/**
*
*
* @param supCertWrapper
* @param type
*/
private void buildRemindMsg(QueryWrapper<SupCertEntity> supCertWrapper, Integer type) {
List<SupCertEntity> supCertList = supCertDao.selectList(supCertWrapper);
List<SupCertEntity> list = new CopyOnWriteArrayList<>(supCertList);
list.parallelStream().forEach(supCertEntity -> {
//判断证书是否超出失效期
SupCertRemindMsgEntity msgEntity = getSupCertRemindMsg(supCertEntity, type);
if (null == msgEntity.getNextRemindTime() || msgEntity.getNextRemindTime().getTime() > new Date().getTime()) {
//生成,更新预警信息
saveMsg(msgEntity);
}
});
}
/**
* /
*
* @param msgEntity
*/
private void saveMsg(SupCertRemindMsgEntity msgEntity) {
msgEntity.setStatus(1); //重置成为未确认信息
msgEntity.setIgnoreStatus(0); //忽略状态修改为不忽略
msgEntity.setHandleMsg(null); //处理方式重置为空
msgEntity.setUpdateTime(new Date());
msgEntity.setNextRemindTime(new Date());
if (null == msgEntity.getId()) {
log.info("新增资质预警:{}", JSONUtil.toJsonStr(msgEntity));
supCertRemindMsgDao.insert(msgEntity);
} else {
log.info("更新资质预警:{}", JSONUtil.toJsonStr(msgEntity));
supCertRemindMsgDao.insert(msgEntity);
}
}
/**
* /
*
* @param supCertEntity
* @param type
* @return
*/
private SupCertRemindMsgEntity getSupCertRemindMsg(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()));
if (null == msgEntity) {
//构造新的资质预警信息
msgEntity = new SupCertRemindMsgEntity();
msgEntity.setIdFk(idFk); //设置关联主键
msgEntity.setType(type); //类型
msgEntity.setCode(supCertEntity.getCode()); //证书编码
msgEntity.setCreateTime(new Date());
}
msgEntity.setVailDate(supCertEntity.getVailDate());
msgEntity.setExpireDate(supCertEntity.getExpireDate());
msgEntity.setMsg(msg);
return msgEntity;
}
}

@ -20,6 +20,9 @@ import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingDeque;
/**
*
*/
@Slf4j
@Component
public class InvRemindMsgTask implements SchedulingConfigurer {
@ -58,16 +61,16 @@ public class InvRemindMsgTask implements SchedulingConfigurer {
}
private void process() {
// log.info("开始扫描库存信息,生成库存预警消息");
// List<InvRemindSetEntity> invRemindSetEntities = invRemindSetDao.selectList(null);
// if (CollUtil.isNotEmpty(invRemindSetEntities)) {
// log.info("库存预警设置条数:{}", invRemindSetEntities.size());
// //开始生成库存信息
// for (InvRemindSetEntity invRemindSetEntity : invRemindSetEntities) {
// executor.execute(ThreadUtil.newThread(() -> invRemindMsgService.createRemindMsg(invRemindSetEntity), "createInvRemindThread"));
// }
// } else {
// log.info("无库存预警设置,结束库存扫描");
// }
log.info("开始扫描库存信息,生成库存预警消息");
List<InvRemindSetEntity> invRemindSetEntities = invRemindSetDao.selectList(null);
if (CollUtil.isNotEmpty(invRemindSetEntities)) {
log.info("库存预警设置条数:{}", invRemindSetEntities.size());
//开始生成库存信息
for (InvRemindSetEntity invRemindSetEntity : invRemindSetEntities) {
executor.execute(ThreadUtil.newThread(() -> invRemindMsgService.createRemindMsg(invRemindSetEntity), "createInvRemindThread"));
}
} else {
log.info("无库存预警设置,结束库存扫描");
}
}
}

@ -0,0 +1,47 @@
package com.glxp.api.task;
import com.glxp.api.dao.schedule.ScheduledDao;
import com.glxp.api.entity.system.ScheduledEntity;
import com.glxp.api.req.system.ScheduledRequest;
import com.glxp.api.service.purchase.SupCertRemindMsgService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
*
*/
@Slf4j
@Component
public class SupCertRemindMsgTask implements SchedulingConfigurer {
@Resource
private ScheduledDao scheduledDao;
@Resource
private SupCertRemindMsgService supCertRemindMsgService;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(this::process, triggerContext -> {
ScheduledRequest scheduledRequest = new ScheduledRequest();
scheduledRequest.setCronName("supCertRemindMsgTask");
ScheduledEntity scheduled = scheduledDao.findScheduled(scheduledRequest);
if (null == scheduled) {
log.error("资质预警预警定时任务未配置,请注意!");
return null;
}
String cron = scheduled.getCron();
return new CronTrigger(cron).nextExecutionTime(triggerContext);
});
}
private void process() {
log.info("开始扫描资质证书信息,生成资质预警消息");
supCertRemindMsgService.createRemindMsg();
log.info("资质证书预警信息生成结束");
}
}

@ -1,5 +1,6 @@
package com.glxp.api.upload;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@ -15,29 +16,56 @@ import java.io.OutputStream;
@RestController
public class DownloadController {
@Value("${file_path}")
private String filePath;
@GetMapping(value = "/udiwms/image/register/file/getImage")
public void getImage(HttpServletResponse response
, @RequestParam String type
, @RequestParam String name) throws IOException {
OutputStream os = null;
try {
// 读取图片
BufferedImage image = ImageIO.read(
new FileInputStream(new File("d:/1s/udiwms/register/file/" + type + "/" + name)));
response.setContentType("image/png");
os = response.getOutputStream();
if (image != null) {
ImageIO.write(image, "png", os);
if (name.endsWith("pdf") || name.endsWith("doc")) {
OutputStream os = null;
try {
FileInputStream input = new FileInputStream(new File(filePath + "/register/file/" + type + "/" + name));
OutputStream out = response.getOutputStream();
byte[] b = new byte[2048];
int len;
while ((len = input.read(b)) != -1) {
out.write(b, 0, len);
}
input.close();
} catch (IOException e) {
} finally {
if (os != null) {
os.flush();
os.close();
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (os != null) {
os.flush();
os.close();
} else {
OutputStream os = null;
try {
// 读取图片
BufferedImage image = ImageIO.read(
new FileInputStream(new File(filePath + "/register/file/" + type + "/" + name)));
response.setContentType("image/png");
os = response.getOutputStream();
if (image != null) {
ImageIO.write(image, "png", os);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (os != null) {
os.flush();
os.close();
}
}
}
}
@GetMapping(value = "/udiwms/donwload/file")
@ -63,4 +91,4 @@ public class DownloadController {
}
}
}
}

@ -112,11 +112,11 @@ public class uploadController {
String fileName = file.getOriginalFilename();
String fileType = fileName.substring(fileName.lastIndexOf("."));
// 文件类型判断
if (StringUtils.isBlank(fileType) || !fileType.equals(".jpg") && !fileType.equals(".png")) {
return ResultVOUtils.error(ResultEnum.DATA_ERROR, "上传文件只能是 .jpg,.png 格式");
if (StringUtils.isBlank(fileType) || (!fileType.equals(".jpg") && !fileType.equals(".png") && !fileType.equals(".doc") && !fileType.equals(".pdf"))) {
return ResultVOUtils.error(ResultEnum.DATA_ERROR, "上传文件只能是 jpg,png,doc,pdf 格式");
}
String newName = UUID.randomUUID() + fileType;//生成新文件名
String savePath = "d:/1s/udiwms/register/file/" + type;
String savePath = filePath + "/register/" + type;
File file1 = new File(savePath);
if (!file1.exists()) {// 判断目录是否存在
@ -135,4 +135,4 @@ public class uploadController {
}
return ResultVOUtils.error(ResultEnum.DATA_ERROR, "上传失败");
}
}
}

@ -3,7 +3,7 @@ server:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://192.168.0.66:3364/udi_wms_glxp?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
jdbc-url: jdbc:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: Glxp@6066
hikari:

@ -2,7 +2,7 @@ spring:
profiles:
active: pro
jmx:
enabled: true
enabled: false
mybatis-plus:
mapper-locations: classpath:mybatis/mapper/*/*.xml

@ -0,0 +1,72 @@
<?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.glxp.api.dao.purchase.SupCertRemindMsgDao">
<select id="selectSupRemindMsgList" resultType="com.glxp.api.res.purchase.SupCertRemindMsgResponse">
select m.*,
c.companyName `name`,
(select `name` from sup_cert s where s.code = m.code and s.CustomerId = m.idFk) certName
from sup_cert_remind_msg m
left join sup_company c on m.idFk = c.customerId
<where>
<if test="name != null and name != ''">
AND c.companyName like concat('%', #{name}, '%')
</if>
<if test="status != null">
AND m.status = #{status}
</if>
<if test="ignoreStatus != null">
AND m.ignoreStatus = #{ignoreStatus}
</if>
<if test="type != null">
AND m.type = #{type}
</if>
</where>
order by m.updateTime desc
</select>
<select id="selectManufactureRemindMsgList" resultType="com.glxp.api.res.purchase.SupCertRemindMsgResponse">
select m.*,
c.companyName `name`,
(select `name` from sup_cert s where s.code = m.code and s.manufacturerIdFk = m.idFk) certName
from sup_cert_remind_msg m
left join sup_manufacturer c on m.idFk = c.customerId
<where>
<if test="name != null and name != ''">
AND c.companyName like concat('%', #{name}, '%')
</if>
<if test="status != null">
AND m.status = #{status}
</if>
<if test="ignoreStatus != null">
AND m.ignoreStatus = #{ignoreStatus}
</if>
<if test="type != null">
AND m.type = #{type}
</if>
</where>
order by m.updateTime desc
</select>
<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) certName
from sup_cert_remind_msg m
left join sup_product c on m.idFk = c.productId
<where>
<if test="name != null and name != ''">
AND c.recordProductName like concat('%', #{name}, '%')
</if>
<if test="status != null">
AND m.status = #{status}
</if>
<if test="ignoreStatus != null">
AND m.ignoreStatus = #{ignoreStatus}
</if>
<if test="type != null">
AND m.type = #{type}
</if>
</where>
order by m.updateTime desc
</select>
</mapper>

@ -179,5 +179,7 @@
#{auditTime}, #{auditComment}, #{editStatus})
</insert>
<select id="selectNameByCustomerId" resultType="java.lang.String">
select companyName from sup_company where customerId = #{customerId}
</select>
</mapper>

@ -152,4 +152,7 @@
</where>
</select>
<select id="selectNameByManufacturerId" resultType="java.lang.String">
select companyName from sup_manufacturer where manufacturerId = #{manufacturerId}
</select>
</mapper>
Loading…
Cancel
Save