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