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/TransportCertServiceImpl.java |  373 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 373 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gk/firework/Service/ServiceImpl/TransportCertServiceImpl.java b/src/main/java/com/gk/firework/Service/ServiceImpl/TransportCertServiceImpl.java
new file mode 100644
index 0000000..568cb43
--- /dev/null
+++ b/src/main/java/com/gk/firework/Service/ServiceImpl/TransportCertServiceImpl.java
@@ -0,0 +1,373 @@
+package com.gk.firework.Service.ServiceImpl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+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.CertificateStatus;
+import com.gk.firework.Domain.Exception.BusinessException;
+import com.gk.firework.Domain.Utils.Properties;
+import com.gk.firework.Domain.Utils.StringUtils;
+import com.gk.firework.Domain.Utils.UploadUtil;
+import com.gk.firework.Domain.Vo.TransportCertVo;
+import com.gk.firework.Mapper.TransportCertMapper;
+import com.gk.firework.Service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import sun.rmi.transport.Transport;
+
+import java.util.*;
+
+@Service("transportCertService")
+public class TransportCertServiceImpl extends ServiceImpl<TransportCertMapper, TransportCert> implements TransportCertService {
+
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private TransportCertProductService transportCertProductService;
+    @Autowired
+    private TransportCertificatePersonService transportCertificatePersonService;
+    @Autowired
+    private TransportCertMapper transportCertMapper;
+    @Autowired
+    private TransportCertFileService transportCertFileService;
+
+    @Override
+    @Transactional
+    public void addCert(TransportCertVo transportCertVo, UserInfo user) throws Exception {
+
+        if (StringUtils.isBlank(transportCertVo.getCode())) {
+            throw new BusinessException("运输证编号不能为空");
+        }
+        //判断重复
+        if (this.countByCode(transportCertVo.getCode()) > 0) {
+            throw new BusinessException("运输证编号已经重复");
+        }
+        JSONArray personJson = JSONArray.parseArray(transportCertVo.getTransportPerson());
+        JSONArray productJson = JSONArray.parseArray(transportCertVo.getTransportProduct());
+
+        if (personJson == null) {
+            throw new BusinessException("产品信息不能不填");
+        }
+        if (productJson == null) {
+            throw new BusinessException("驾驶员|押运员不能不填");
+        }
+
+
+        UserInfo userInfo = userService.getById(user.getId());
+        if (StringUtils.isBlank(userInfo.getCompanynumber())){
+            throw new BusinessException("没有权限创建运输证");
+        }
+        //新增运输证基本信息
+        TransportCert transportCert = new TransportCert();
+        {
+//            String code = "TC-" + System.currentTimeMillis();
+            //运输证上传改手动上传-》编号已存在(手填)
+            transportCert.setCode(transportCertVo.getCode());
+            transportCert.setCreateby(user.getId());
+            transportCert.setCreatebyname(user.getUsername());
+            transportCert.setEnterprisenumber(userInfo.getCompanynumber());
+            transportCert.setCreatetime(new Date());
+            transportCert.setValidflag(true);
+            transportCert.setStatus(CertificateStatus.PENDING);
+            transportCert.setCarnumber(transportCertVo.getCarnumber());
+            transportCert.setContractcode(transportCertVo.getContractcode());
+            transportCert.setReceiveraddress(transportCertVo.getReceiveraddress());
+            transportCert.setReceivercompanyname(transportCertVo.getReceivercompanyname());
+            transportCert.setReceiverprincipalname(transportCertVo.getReceiverprincipalname());
+            transportCert.setReceiveraddress(transportCertVo.getReceiveraddress());
+            transportCert.setReceiverprincipalphone(transportCertVo.getReceiverprincipalphone());
+            transportCert.setTransportPerson(personJson.toJavaList(TransportCertificatePerson.class));
+            transportCert.setTransportProduct(productJson.toJavaList(TransportCertProduct.class));
+            transportCert.setprocesstime(transportCertVo.getProcesstime());
+
+            this.save(transportCert);
+        }
+
+        //新增产品
+        {
+            List<TransportCertProduct> products = transportCert.getTransportProduct();
+            if (products != null && products.size() > 0) {
+                for (TransportCertProduct product : products) {
+                    product.setCertificatecode(transportCert.getCode());
+                    product.setValidflag(true);
+                }
+                transportCertProductService.saveBatch(products);
+            }
+        }
+
+        //新增 驾驶员|押运员
+        {
+            List<TransportCertificatePerson> persons = transportCert.getTransportPerson();
+            if (persons != null && persons.size() > 0) {
+                for (TransportCertificatePerson person : persons) {
+                    person.setCertificatecode(transportCert.getCode());
+                    person.setValidflag(true);
+                }
+                transportCertificatePersonService.saveBatch(persons);
+            }
+        }
+
+        //新增文件信息
+        {
+            MultipartFile[] files = transportCertVo.getFile();
+            List<TransportCertFile> adds;
+            if (files != null && files.length > 0) {
+                adds = new ArrayList<>();
+                for (MultipartFile file : files) {
+                    String name = UploadUtil.uploadFile(file, com.gk.firework.Domain.Utils.Properties.transportCertificatePath);
+                    TransportCertFile certFile = new TransportCertFile();
+                    certFile.setCertificatecode(transportCert.getCode());
+                    certFile.setFilename(file.getOriginalFilename());
+                    certFile.setType(file.getContentType());
+                    certFile.setUrl(Properties.transportCertificate + name);
+                    certFile.setValidflag(true);
+                    adds.add(certFile);
+                }
+                transportCertFileService.saveBatch(adds);
+
+            }
+
+        }
+    }
+
+
+    /**
+    * @Description: 分页查询运输证
+    * @date 2021/4/25 15:11
+    */
+    @Override
+    public IPage selectPages(Page<TransportCert> page, Map filter, UserInfo userInfo) {
+
+        UserInfo user = userService.getById(userInfo.getId());
+        Map<String, Object> params = new HashMap<>();
+        //可见权限
+        {
+            params.put("enterprisenumber", user.getCompanynumber());
+            params.put("province", user.getProvince());
+            params.put("city", user.getCity());
+            params.put("district", user.getArea());
+            params.put("street", user.getTown());
+            params.put("committee", user.getCommunity());
+        }
+        //基本
+        params.put("filterProvince", filter.get("province"));
+        params.put("filterCity", filter.get("city"));
+        params.put("filterDistrict",filter.get("district"));
+        params.put("filterStreet", filter.get("street"));
+        params.put("filterCommittee", filter.get("committee"));
+        params.put("code", filter.get("code"));
+        List<TransportCert> list = transportCertMapper.selectPages(page, params);
+        return page.setRecords(list);
+    }
+
+
+    /**
+     * @Description: 修改运输证
+     * @date 2021/4/25 15:29
+     */
+    @Override
+    @Transactional
+    public void modCert(TransportCertVo transportCertVo, UserInfo userInfo) throws Exception {
+
+        if (StringUtils.isBlank(transportCertVo.getCode())) {
+            throw new BusinessException("运输证编号不能为空");
+        }
+        JSONArray personJson = JSONArray.parseArray(transportCertVo.getTransportPerson());
+        JSONArray productJson = JSONArray.parseArray(transportCertVo.getTransportProduct());
+
+        if (personJson == null) {
+            throw new BusinessException("产品信息不能不填");
+        }
+        if (productJson == null) {
+            throw new BusinessException("驾驶员|押运员不能不填");
+        }
+        //修改运输证基本信息
+        TransportCert transportCert = new TransportCert();
+        UserInfo user = userService.getById(userInfo.getId());
+        {
+            transportCert.setCode(transportCertVo.getCode());
+            transportCert.setId(transportCertVo.getId());
+            transportCert.setCarnumber(transportCertVo.getCarnumber());
+            transportCert.setContractcode(transportCertVo.getContractcode());
+            transportCert.setReceiveraddress(transportCertVo.getReceiveraddress());
+            transportCert.setReceivercompanyname(transportCertVo.getReceivercompanyname());
+            transportCert.setReceiverprincipalname(transportCertVo.getReceiverprincipalname());
+            transportCert.setReceiveraddress(transportCertVo.getReceiveraddress());
+            transportCert.setReceiverprincipalphone(transportCertVo.getReceiverprincipalphone());
+            transportCert.setUpdateby(user.getId());
+            transportCert.setUpdatebyname(user.getUsername());
+            transportCert.setUpdatetime(new Date());
+            transportCert.setTransportPerson(personJson.toJavaList(TransportCertificatePerson.class));
+            transportCert.setTransportProduct(productJson.toJavaList(TransportCertProduct.class));
+            transportCert.setprocesstime(transportCertVo.getProcesstime());
+
+            this.updateById(transportCert);
+        }
+        //修改产品
+        {
+            List<TransportCertProduct> adds = new ArrayList<>();
+            List<TransportCertProduct> dels = new ArrayList<>();
+            List<TransportCertProduct> upds = new ArrayList<>();
+            List<TransportCertProduct> products = transportCert.getTransportProduct();
+            List<TransportCertProduct> productList = transportCertProductService.selectProduct(transportCert.getCode());
+            if (products.size() > 0) {
+                for (TransportCertProduct product : products) {
+                    if (product.getId() == null) {
+                        product.setValidflag(true);
+                        product.setCertificatecode(transportCert.getCode());
+                        adds.add(product);
+                    }
+                }
+            }
+            //B-A
+            if (productList.size() > 0) {
+                for (int i = 0; i < productList.size(); i++) {
+                    boolean flag = true;
+                    for (int j = 0; j < products.size(); j++) {
+                        if (productList.get(i).getId().equals(products.get(j).getId())) {
+                            upds.add(products.get(j));
+                            flag = false;
+                        }
+                    }
+                    if (flag) {
+                        productList.get(i).setValidflag(false);
+                        dels.add(productList.get(i));
+                    }
+
+
+                }
+            }
+
+            if (adds.size() > 0) {
+                transportCertProductService.saveBatch(adds);
+            }
+            if (dels.size() > 0) {
+                transportCertProductService.updateBatchById(dels);
+            }
+            if (upds.size() > 0) {
+                transportCertProductService.updateBatchById(upds);
+            }
+        }
+
+        //修改人员
+        {
+
+            List<TransportCertificatePerson> adds = new ArrayList<>();
+            List<TransportCertificatePerson> dels = new ArrayList<>();
+            List<TransportCertificatePerson> upds = new ArrayList<>();
+            List<TransportCertificatePerson> persons = transportCert.getTransportPerson();
+            List<TransportCertificatePerson> personList = transportCertificatePersonService.selectProduct(transportCert.getCode());
+            if (persons.size() > 0) {
+                for (TransportCertificatePerson person : persons) {
+                    if (person.getId() == null) {
+                        person.setValidflag(true);
+                        person.setCertificatecode(transportCert.getCode());
+                        adds.add(person);
+                    }
+                }
+            }
+            //B-A
+            if (personList.size() > 0) {
+                for (int i = 0; i < personList.size(); i++) {
+                    boolean flag = true;
+                    for (int j = 0; j < persons.size(); j++) {
+                        if (personList.get(i).getId().equals(persons.get(j).getId())) {
+                            upds.add(persons.get(j));
+                            flag = false;
+                        }
+                    }
+                    if (flag) {
+                        personList.get(i).setValidflag(false);
+                        dels.add(personList.get(i));
+                    }
+
+
+                }
+            }
+
+            if (adds.size() > 0) {
+                transportCertificatePersonService.saveBatch(adds);
+            }
+            if (dels.size() > 0) {
+                transportCertificatePersonService.updateBatchById(dels);
+            }
+            if (upds.size() > 0) {
+                transportCertificatePersonService.updateBatchById(upds);
+            }
+        }
+
+
+        //修改文件(每次上传都是覆盖)
+        {
+
+            MultipartFile[] files = transportCertVo.getFile();
+            List<TransportCertFile> adds;
+            if (files != null && files.length > 0) {
+                //1.删除所有文件
+                transportCertFileService.deleteByCode(transportCert.getCode());
+
+                //2.新增新上传文件
+                adds = new ArrayList<>();
+                for (MultipartFile file : files) {
+                    String name = UploadUtil.uploadFile(file, com.gk.firework.Domain.Utils.Properties.transportCertificatePath);
+                    TransportCertFile certFile = new TransportCertFile();
+                    certFile.setCertificatecode(transportCert.getCode());
+                    certFile.setFilename(file.getOriginalFilename());
+                    certFile.setType(file.getContentType());
+                    certFile.setUrl(Properties.transportCertificate + name);
+                    certFile.setValidflag(true);
+                    adds.add(certFile);
+                }
+                transportCertFileService.saveBatch(adds);
+
+            }
+        }
+    }
+
+
+    /**
+    * @Description: 删除单子
+    * @date 2021/4/28 8:33
+    */
+    @Override
+    public void delCert(Long id, UserInfo user) {
+        TransportCert cert = new TransportCert();
+        cert.setId(id);
+        cert.setUpdatetime(new Date());
+        cert.setUpdateby(user.getId());
+        cert.setUpdatebyname(user.getUsername());
+        cert.setValidflag(false);
+        this.updateById(cert);
+
+        TransportCert transport = this.getById(cert);
+        //删除产品
+        transportCertProductService.deleteProductByCode(transport.getCode());
+        //删除人员
+        transportCertificatePersonService.deleteByCertificateCode(transport.getCode());
+        //删除文件
+        transportCertFileService.deleteByCode(transport.getCode());
+    }
+
+    @Override
+    public int countByCode(String code) {
+        if (StringUtils.isBlank(code)) {
+            throw new BusinessException("运输证编号不能为空");
+        }
+        LambdaQueryWrapper<TransportCert> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(TransportCert::getValidflag, true)
+                .eq(TransportCert::getCode, code);
+        return transportCertMapper.selectCount(queryWrapper);
+    }
+
+    @Override
+    public List<TransportCert> selectWarnList(Date start, Date end) {
+        return transportCertMapper.selectWarnList(start,end);
+    }
+
+
+}

--
Gitblit v1.9.2