From 2fcd97552d16718cc7997629fd637a73a5a4483f Mon Sep 17 00:00:00 2001 From: 郑永安 <zyazyz250@sina.com> Date: 星期一, 19 六月 2023 14:44:19 +0800 Subject: [PATCH] 删除 --- src/main/java/com/gk/firework/Service/ServiceImpl/LicenseServiceImpl.java | 407 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 407 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gk/firework/Service/ServiceImpl/LicenseServiceImpl.java b/src/main/java/com/gk/firework/Service/ServiceImpl/LicenseServiceImpl.java new file mode 100644 index 0000000..4db34d0 --- /dev/null +++ b/src/main/java/com/gk/firework/Service/ServiceImpl/LicenseServiceImpl.java @@ -0,0 +1,407 @@ +package com.gk.firework.Service.ServiceImpl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gk.firework.Domain.*; +import com.gk.firework.Domain.Enum.LicenseStatus; +import com.gk.firework.Domain.Enum.ProvinceCode; +import com.gk.firework.Domain.Exception.BusinessException; +import com.gk.firework.Domain.Utils.BeanUtils; +import com.gk.firework.Domain.Utils.PageInfo; +import com.gk.firework.Domain.Utils.StringUtils; +import com.gk.firework.Domain.Vo.DealingRangeVo; +import com.gk.firework.Domain.Vo.LicenseVo; +import com.gk.firework.Mapper.LicenseInfoMapper; +import com.gk.firework.Service.*; +import com.spire.doc.interfaces.IField; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * @author : jingjy + * @date : 2021/5/11 16:43 + */ +@Service("LicenseService") +public class LicenseServiceImpl extends ServiceImpl<LicenseInfoMapper, LicenseInfo> implements LicenseService { + @Autowired + private LicenseInfoMapper licenseInfoMapper; + @Autowired + private LicenseStorageService licenseStorageService; + @Autowired + private UserService userService; + @Autowired + private EnterpriseLicenseService enterpriseLicenseService; + @Autowired + private EnterpriseService enterpriseService; + + @Override + public void selectDataGrid(PageInfo pageInfo) { + Page<LicenseInfo> page = new Page<>(pageInfo.getPageIndex(), pageInfo.getPageSize()); + + List<OrderItem> orderItems = new ArrayList<>(); + OrderItem orderItem = new OrderItem(); + if (StringUtils.isNotBlank(pageInfo.getSort()) && StringUtils.isNotBlank(pageInfo.getOrder())) { + orderItem.setAsc(pageInfo.getOrder().equalsIgnoreCase("ascending")); + orderItem.setColumn(pageInfo.getSort()); + } else { + orderItem.setAsc(false); + orderItem.setColumn("createdat"); + } + orderItems.add(orderItem); + page.setOrders(orderItems); + if (StringUtils.isBlank(pageInfo.getSort())) { + pageInfo.setSort("createdat"); + } + if (StringUtils.isBlank(pageInfo.getOrder())) { + pageInfo.setOrder("desc"); + } + List<LicenseVo> licenseVoList = licenseInfoMapper.selectLicenseDataGrid(pageInfo.getCondition(), page); + + List<LicenseVo> licenseVos = new ArrayList<>(); + for (LicenseVo licenseVo : licenseVoList) { + List<LicenseStorage> licenseStorageList = licenseStorageService.getListByLicenseCode(licenseVo.getLicensecode()); + String licenseStorage = JSON.toJSONString(licenseStorageList); + licenseVo.setLicenseStorage(licenseStorage); + StringBuilder dealingRangeStr = dealDealingRange(licenseVo.getDealingrange()); + licenseVo.setDealingRangeStr(dealingRangeStr.toString()); + licenseVos.add(licenseVo); + } + + pageInfo.setResult(licenseVos); + pageInfo.setTotalCount(page.getTotal()); + } + + @Override + public StringBuilder dealDealingRange(String dealingRange) { + //处理dealingRange,供前台展示 + StringBuilder dealingRangeStr = new StringBuilder(); + JSONArray jsonArray = JSONArray.parseArray(dealingRange); + List<DealingRangeVo> dealingRangeVos = new ArrayList<>(); + for (int i = 0; i < jsonArray.size(); i++) { + int k = i + 1; + JSONObject object = jsonArray.getJSONObject(i); + Boolean checked = object.getBoolean("checked" + k); + if (checked == null){ + return dealingRangeStr; + } + List<String> checkMore = new ArrayList<>(); + if (object.getJSONArray("checkMore"+k) != null){ + checkMore = object.getJSONArray("checkMore" + k).toJavaList(String.class); + } + DealingRangeVo dealingRangeVo = new DealingRangeVo(); + dealingRangeVo.setSn(k); + dealingRangeVo.setChecked(checked); + dealingRangeVo.setCheckMore(checkMore); + switch (k) { + case 1: + dealingRangeVo.setName("爆竹类"); + break; + case 2: + dealingRangeVo.setName("喷花类"); + break; + case 3: + dealingRangeVo.setName("旋转类"); + break; + case 4: + dealingRangeVo.setName("吐珠类"); + break; + case 5: + dealingRangeVo.setName("玩具类"); + break; + case 6: + dealingRangeVo.setName("组合烟花类"); + break; + default: + } + dealingRangeVos.add(dealingRangeVo); + + } + for (DealingRangeVo dealingRangeVo : dealingRangeVos) { + if (dealingRangeVo.getChecked()){ + dealingRangeStr.append(dealingRangeVo.getName()); + dealingRangeStr.append("("); + if (dealingRangeVo.getCheckMore().size() == 1) { + dealingRangeStr.append(dealingRangeVo.getCheckMore().get(0).trim(), 0, 1); + } else { + for (int i = 0; i < dealingRangeVo.getCheckMore().size(); i++) { + dealingRangeStr.append(dealingRangeVo.getCheckMore().get(i).trim(), 0, 1); + if (i != dealingRangeVo.getCheckMore().size() - 1) { + dealingRangeStr.append("、"); + } + } + } + dealingRangeStr.append(")级、"); + + } + + } + if (dealingRangeStr.length() >= 1){ + dealingRangeStr.deleteCharAt(dealingRangeStr.length() - 1); + } + return dealingRangeStr; + } + + @Override + @Transactional + public void rejectLicense(JSONObject data, UserInfo userInfo) { + +// UserInfo user = userService.getById(userInfo.getId()); +// assert user != null; + Long id = data.getLong("id"); + String rejectnote = data.getString("rejectnote"); + if (id == null) { + throw new BusinessException("参数错误,请联系管理员"); + } + LicenseInfo license = this.getLicenseById(id); + if (!license.getReviewstatus().equals((byte) 2) && !license.getReviewstatus().equals((byte) 1)) { + throw new BusinessException("只有等待审核和已审核的记录可以驳回"); + } + if (StringUtils.isBlank(rejectnote)) { + throw new BusinessException("驳回意见不能为空"); + } + LicenseInfo info = new LicenseInfo(); + info.setId(id); + info.setReviewstatus((byte) 3); + info.setReviewnote(rejectnote); + this.updateById(info); + //删除企业信息的许可证 + enterpriseLicenseService.deleteByLicenseNumber(license.getLicensecode()); + } + + + /** + * @Description: 证书分析 + * @date 2021/7/1 15:24 + */ + @Override + public IPage selectLicenseStatistic(Page<Map> page, Map filter, UserInfo user) { + + Map<String, Object> params = new HashMap<>(); + + UserInfo userInfo = userService.getById(user.getId()); + + //可见度 +// params.put("enterprisenumber", userInfo.getCompanynumber()); + //该菜单只有监管部门能看 + params.put("city", userInfo.getCity()); + params.put("filterCity", filter.get("city")); + params.put("starttime", filter.get("starttime")); + params.put("endtime", filter.get("endtime")); + List<Map> result = licenseInfoMapper.selectLicenseStatisticPage(page, params); + return page.setRecords(result); + } + + @Override + public List<LicenseVo> exportLicense(Map<String, Object> condition) { + List<LicenseVo> licenseVoList = licenseInfoMapper.selectLicenseDataGrid(condition); + + + List<LicenseVo> licenseVos = new ArrayList<>(); + for (LicenseVo licenseVo : licenseVoList) { + List<LicenseStorage> licenseStorageList = licenseStorageService.getListByLicenseCode(licenseVo.getLicensecode()); + String licenseStorage = JSON.toJSONString(licenseStorageList); + licenseVo.setLicenseStorage(licenseStorage); + StringBuilder dealingRangeStr = dealDealingRange(licenseVo.getDealingrange()); + licenseVo.setDealingRangeStr(dealingRangeStr.toString()); + UserInfo one = userService.getOne(new LambdaQueryWrapper<UserInfo>() + .eq(UserInfo::getCompany, licenseVo.getIssuingunit())); + if (one != null) + licenseVo.setIssuingcode(one.getCode()); + licenseVos.add(licenseVo); + } + return licenseVos; + } + + @Override + @Transactional + public void delayLicense(Long id, String issuingunit, Date issuingdate, Date validstarttime, Date validendtime,UserInfo userInfo) { + if (id == null) throw new BusinessException("传参错误"); + LicenseInfo licenseInfo = this.getLicenseById(id); + if (licenseInfo == null) throw new BusinessException("证书不存在"); + if (licenseInfo.getReviewstatus() != (byte)2) throw new BusinessException("只能操作审批通过的证书"); + if (StringUtils.isBlank(issuingunit)) throw new BusinessException("发证机关不能为空"); + if (validendtime == null || validstarttime == null) throw new BusinessException("有效期不能为空"); + if (issuingdate == null) throw new BusinessException("发证日期不能为空"); + if (validendtime.before(new Date())) throw new BusinessException("无意义日期"); + List<LicenseStorage> licenseStorages = licenseStorageService.getListByLicenseCode(licenseInfo.getLicensecode()); + //1.注销原本的证书 + licenseInfo.setValidstatus((byte) -1); + this.updateById(licenseInfo); + //2.创建新的证书 + licenseInfo.setValidstatus((byte) 1); + this.generateLicenseDetail(licenseInfo); + licenseInfo.setId(null); + //证书状态:延期 + licenseInfo.setLicensestatus(LicenseStatus.POSTP); + licenseInfo.setCreatedat(new Date()); + licenseInfo.setCreatedby(userInfo.getUsername()); + licenseInfo.setModifiedat(new Date()); + licenseInfo.setModifiedby(userInfo.getUsername()); + licenseInfo.setEffectdate(validstarttime); + licenseInfo.setNoeffectdate(validendtime); + licenseInfo.setIssuingdate(issuingdate); + licenseInfo.setIssuingunit(issuingunit); + this.save(licenseInfo); + //3.复制新的storage表 + if (licenseStorages.size() > 0) { + for (LicenseStorage licenseStorage : licenseStorages) { + licenseStorage.setId(null); + licenseStorage.setLicensecode(licenseInfo.getLicensecode()); + licenseStorageService.save(licenseStorage); + } + } + + Enterprise enterprise = enterpriseService.selectEnterpriseByName(licenseInfo.getName()); + enterprise.setValidstarttime(licenseInfo.getEffectdate()); + enterprise.setValidendtime(licenseInfo.getNoeffectdate()); + enterpriseService.updateById(enterprise); + EnterpriseLicense enterpriseLicense = new EnterpriseLicense(); + if (licenseInfo.getType().equals((byte)2)){ + enterpriseLicense.setLicensename("烟花爆竹经营(批发)许可证"); + }else if (licenseInfo.getType().equals( (byte)3)){ + enterpriseLicense.setLicensename("烟花爆竹经营(零售)许可证"); + } + enterpriseLicense.setLicensenumber(licenseInfo.getLicensecode()); + enterpriseLicense.setEnterpriseid(enterprise.getId()); + enterpriseLicense.setAuthority(licenseInfo.getIssuingunit()); + enterpriseLicense.setRanges(this.dealDealingRange(licenseInfo.getDealingrange()).toString()); + enterpriseLicense.setValidendtime(licenseInfo.getNoeffectdate()); + enterpriseLicense.setValidstarttime(licenseInfo.getEffectdate()); + enterpriseLicense.setValidflag(true); + enterpriseLicense.setCreatetime(new Date()); + enterpriseLicense.setCreateby(userInfo.getId()); + enterpriseLicense.setCreatebyname(userInfo.getUsername()); + enterpriseLicenseService.save(enterpriseLicense); + //issale = 1 修改 截止有效期 + List<UserInfo> userList = userService.selectByCompanyId(enterprise.getId(),0); + if (userList.size() != 2) { + throw new BusinessException("发生错误,请联系管理员"); + } + for (UserInfo info : userList) { + //修改许可证 同时修改issale=1的用户有效期 + if (info.getIssale() == (byte) 1) { + Calendar instance = Calendar.getInstance(); + instance.setTime(validendtime); + instance.set(Calendar.HOUR_OF_DAY, 23); + instance.set(Calendar.MINUTE, 59); + instance.set(Calendar.SECOND, 59); + info.setExpiredate(instance.getTime()); + userService.updateById(info); + } + } + } + + @Override + public void generateLicenseDetail(LicenseInfo licenseInfo) { + LicenseInfo licenseInfo1 = this.getLastOne(); + Integer sn = licenseInfo1.getSn(); + sn++; + licenseInfo.setSn(sn); + String abbr = ""; + String typeCode = ""; + for (ProvinceCode code : ProvinceCode.values()) { + if (licenseInfo.getProvince().equals(code.getName())) { + abbr = code.getAbbr(); + } + } + if (licenseInfo.getType().equals((byte)2)) { + typeCode = "PF"; + } else if (licenseInfo.getType().equals((byte)3)) { + typeCode = "LS"; + } + Calendar cal = Calendar.getInstance(); + int year = cal.get(Calendar.YEAR); + + String licenseCode = "(" + abbr + ")" + typeCode + "〔" + year + "〕" + String.format("%05d", sn); + licenseInfo.setLicensecode(licenseCode); + } + + @Override + @Transactional + public void modLicense(LicenseVo licenseVo, List<LicenseStorage> licenseStorageList, UserInfo user) { + //1.普通判断 + if (licenseVo.getId() == null) throw new BusinessException("传参错误"); + LicenseInfo older = this.getLicenseById(licenseVo.getId()); + if (older == null) throw new BusinessException("证书不存在"); + if (StringUtils.isBlank(licenseVo.getIssuingunit())) throw new BusinessException("发证机关不能为空"); + if (licenseVo.getEffectdate() ==null|| licenseVo.getNoeffectdate() == null) throw new BusinessException("开始结束时间不能为空"); + if (licenseVo.getIssuingdate()== null) throw new BusinessException("发证日期不能为空"); + //2.注销旧版 + older.setValidstatus((byte) -1); + this.updateById(older); + //3.新建新版 + licenseVo.setLicensestatus(LicenseStatus.MOD); + licenseVo.setValidstatus((byte) 1); + licenseVo.setCreatedat(new Date()); + licenseVo.setCreatedby(user.getUsername()); + licenseVo.setModifiedat(new Date()); + licenseVo.setModifiedby(user.getUsername()); + licenseVo.setId(null); + this.save(licenseVo); + licenseStorageService.saveBatch(licenseStorageList); + + Enterprise enterprise = enterpriseService.selectEnterpriseByName(licenseVo.getName()); + enterprise.setValidstarttime(licenseVo.getEffectdate()); + enterprise.setValidendtime(licenseVo.getNoeffectdate()); + enterpriseService.updateById(enterprise); + EnterpriseLicense enterpriseLicense = new EnterpriseLicense(); + if (licenseVo.getType().equals((byte)2)){ + enterpriseLicense.setLicensename("烟花爆竹经营(批发)许可证"); + }else if (licenseVo.getType().equals( (byte)3)){ + enterpriseLicense.setLicensename("烟花爆竹经营(零售)许可证"); + } + enterpriseLicense.setLicensenumber(licenseVo.getLicensecode()); + enterpriseLicense.setEnterpriseid(enterprise.getId()); + enterpriseLicense.setAuthority(licenseVo.getIssuingunit()); + enterpriseLicense.setRanges(this.dealDealingRange(licenseVo.getDealingrange()).toString()); + enterpriseLicense.setValidendtime(licenseVo.getNoeffectdate()); + enterpriseLicense.setValidstarttime(licenseVo.getEffectdate()); + enterpriseLicense.setValidflag(true); + enterpriseLicense.setCreatetime(new Date()); + enterpriseLicense.setCreateby(user.getId()); + enterpriseLicense.setCreatebyname(user.getUsername()); + enterpriseLicenseService.save(enterpriseLicense); + //issale = 1 修改 截止有效期 + List<UserInfo> userList = userService.selectByCompanyId(enterprise.getId(),0); + if (userList.size() != 2) { + throw new BusinessException("发生错误,请联系管理员"); + } + for (UserInfo info : userList) { + //修改许可证 同时修改issale=1的用户有效期 + if (info.getIssale() == (byte) 1) { + Calendar instance = Calendar.getInstance(); + instance.setTime(licenseVo.getNoeffectdate()); + instance.set(Calendar.HOUR_OF_DAY, 23); + instance.set(Calendar.MINUTE, 59); + instance.set(Calendar.SECOND, 59); + info.setExpiredate(instance.getTime()); + userService.updateById(info); + } + } + + } + + @Override + public LicenseInfo getLastOne() { + LambdaQueryWrapper<LicenseInfo> wrapper = new LambdaQueryWrapper<>(); + wrapper.orderByDesc(LicenseInfo::getSn); + return licenseInfoMapper.selectOne(wrapper); + } + + @Override + public LicenseInfo getLicenseById(Long id) { + LambdaQueryWrapper<LicenseInfo> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(LicenseInfo::getId, id); + wrapper.eq(LicenseInfo::getFlag, 0); + return licenseInfoMapper.selectOne(wrapper); + } +} -- Gitblit v1.9.2