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