对比新文件 |
| | |
| | | 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); |
| | | } |
| | | } |