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