From f65443d8abeaedc9d102324565e8368e7c9d90c8 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: Mon, 19 Jun 2023 14:41:54 +0800
Subject: [PATCH] commit
---
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