|
|
@ -1,20 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
package jnpf.tradeupload.controller;
|
|
|
|
package jnpf.tradeupload.controller;
|
|
|
|
|
|
|
|
import ai.djl.ModelException;
|
|
|
|
|
|
|
|
import ai.djl.translate.TranslateException;
|
|
|
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|
|
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|
|
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
|
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
|
|
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
|
|
|
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
|
|
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
|
|
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import io.swagger.annotations.Api;
|
|
|
|
import io.swagger.annotations.Api;
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
import jnpf.base.ActionResult;
|
|
|
|
import jnpf.base.ActionResult;
|
|
|
|
|
|
|
|
import jnpf.base.NoDataSourceBind;
|
|
|
|
import jnpf.base.vo.PageListVO;
|
|
|
|
import jnpf.base.vo.PageListVO;
|
|
|
|
import jnpf.base.vo.PaginationVO;
|
|
|
|
import jnpf.base.vo.PaginationVO;
|
|
|
|
import jnpf.base.UserInfo;
|
|
|
|
import jnpf.base.UserInfo;
|
|
|
|
import jnpf.base.vo.DownloadVO;
|
|
|
|
import jnpf.base.vo.DownloadVO;
|
|
|
|
import jnpf.config.ConfigValueUtil;
|
|
|
|
import jnpf.config.ConfigValueUtil;
|
|
|
|
|
|
|
|
import jnpf.constant.MsgCode;
|
|
|
|
|
|
|
|
import jnpf.contractfile.entity.ContractFileEntity;
|
|
|
|
|
|
|
|
import jnpf.contractfile.service.ContractFileService;
|
|
|
|
|
|
|
|
import jnpf.customer.entity.CustomerEntity;
|
|
|
|
|
|
|
|
import jnpf.customer.service.CustomerService;
|
|
|
|
import jnpf.exception.DataException;
|
|
|
|
import jnpf.exception.DataException;
|
|
|
|
|
|
|
|
import jnpf.model.UploaderVO;
|
|
|
|
|
|
|
|
import jnpf.ocr_sdk.controller.BaiduOcrController;
|
|
|
|
|
|
|
|
import jnpf.permission.entity.UserEntity;
|
|
|
|
|
|
|
|
import jnpf.utils.YozoUtils;
|
|
|
|
|
|
|
|
import jnpf.vehicle.entity.VehicleEntity;
|
|
|
|
|
|
|
|
import jnpf.vehicle.service.VehicleService;
|
|
|
|
|
|
|
|
import org.apache.poi.ss.formula.functions.T;
|
|
|
|
|
|
|
|
import org.bytedeco.opencv.presets.opencv_core;
|
|
|
|
|
|
|
|
import org.springframework.http.MediaType;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import jnpf.base.entity.ProvinceEntity;
|
|
|
|
import jnpf.base.entity.ProvinceEntity;
|
|
|
|
import jnpf.tradeupload.model.tradeupload.*;
|
|
|
|
import jnpf.tradeupload.model.tradeupload.*;
|
|
|
@ -41,10 +62,15 @@ import java.io.FileNotFoundException;
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.IOException;
|
|
|
|
import jnpf.util.GeneraterSwapUtil;
|
|
|
|
import jnpf.util.GeneraterSwapUtil;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
|
|
|
import java.text.ParseException;
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
|
|
import jnpf.util.file.UploadUtil;
|
|
|
|
import jnpf.util.file.UploadUtil;
|
|
|
|
import jnpf.util.enums.FileTypeEnum;
|
|
|
|
import jnpf.util.enums.FileTypeEnum;
|
|
|
|
|
|
|
|
import jnpf.ocr_sdk.baiduUtils.VatInvoice;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -72,7 +98,284 @@ public class TradeuploadController {
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private TradeuploadService tradeuploadService;
|
|
|
|
private TradeuploadService tradeuploadService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private BaiduOcrController baiduOcrController;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private CustomerService customerService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private ContractFileService contractFileService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private VehicleService vehicleService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private YozoUtils yozoUtils;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 上传文件/图片
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@NoDataSourceBind()
|
|
|
|
|
|
|
|
@ApiOperation("上传文件/图片")
|
|
|
|
|
|
|
|
@PostMapping(value = "/UploaderPondList/{type}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
|
|
|
|
|
|
|
public ActionResult uploader(@RequestPart("file") MultipartFile file, @PathVariable("type") String type) throws IOException {
|
|
|
|
|
|
|
|
String fileType = UpUtil.getFileType(file);
|
|
|
|
|
|
|
|
//验证类型
|
|
|
|
|
|
|
|
if (!OptimizeUtil.fileType(configValueUtil.getAllowUploadFileType(), fileType)) {
|
|
|
|
|
|
|
|
return ActionResult.fail(MsgCode.FA017.get());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
TradeuploadCrForm tradeuploadCrForm = new TradeuploadCrForm();
|
|
|
|
|
|
|
|
String result = VatInvoice.weightNote(file);
|
|
|
|
|
|
|
|
// Map<String,Object> map = JsonUtil.stringToMap(result);
|
|
|
|
|
|
|
|
JSONObject jsonObject = JSON.parseObject(result);
|
|
|
|
|
|
|
|
UploaderVO vo = uploaderVO(file, type);
|
|
|
|
|
|
|
|
JSONArray jsonArray = jsonObject.getJSONArray("words_result");
|
|
|
|
|
|
|
|
JSONObject object = jsonArray.getJSONObject(0);
|
|
|
|
|
|
|
|
Map<String, Object> map1 = new HashMap<>();
|
|
|
|
|
|
|
|
for (int i = 0;i<object.size();i++) {
|
|
|
|
|
|
|
|
// JSONObject object = jsonArray.getJSONObject(i);
|
|
|
|
|
|
|
|
JSONArray array = new JSONArray();
|
|
|
|
|
|
|
|
if (i == 0) {
|
|
|
|
|
|
|
|
array = object.getJSONArray("TareWeight");
|
|
|
|
|
|
|
|
}else if(i == 1){
|
|
|
|
|
|
|
|
array = object.getJSONArray("CrossWeight");
|
|
|
|
|
|
|
|
}else if(i == 2){
|
|
|
|
|
|
|
|
array = object.getJSONArray("PlateNum");
|
|
|
|
|
|
|
|
}else if (i == 3){
|
|
|
|
|
|
|
|
array = object.getJSONArray("SendingCompany");
|
|
|
|
|
|
|
|
}else if (i == 4){
|
|
|
|
|
|
|
|
array = object.getJSONArray("DeliveryNumber");
|
|
|
|
|
|
|
|
}else if (i == 5){
|
|
|
|
|
|
|
|
array = object.getJSONArray("ReceivingCompany");
|
|
|
|
|
|
|
|
}else if (i == 6){
|
|
|
|
|
|
|
|
array = object.getJSONArray("PrintTime");
|
|
|
|
|
|
|
|
}else if (i == 7){
|
|
|
|
|
|
|
|
array = object.getJSONArray("NetWeight");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
JSONObject object1 = array.getJSONObject(0);
|
|
|
|
|
|
|
|
Map<String, String> params = JSONObject.parseObject(object1.toJSONString(), new TypeReference<Map<String, String>>() {
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
if (i == 0) {
|
|
|
|
|
|
|
|
map1.put("TareWeight", params.get("word"));
|
|
|
|
|
|
|
|
}else if (i == 1){
|
|
|
|
|
|
|
|
map1.put("CrossWeight", params.get("word"));
|
|
|
|
|
|
|
|
}else if (i == 2){
|
|
|
|
|
|
|
|
map1.put("PlateNum", params.get("word"));
|
|
|
|
|
|
|
|
}else if (i == 3){
|
|
|
|
|
|
|
|
map1.put("SendingCompany", params.get("word"));
|
|
|
|
|
|
|
|
}else if (i == 4){
|
|
|
|
|
|
|
|
map1.put("DeliveryNumber", params.get("word"));
|
|
|
|
|
|
|
|
}else if (i == 5){
|
|
|
|
|
|
|
|
map1.put("ReceivingCompany", params.get("word"));
|
|
|
|
|
|
|
|
}else if (i == 6){
|
|
|
|
|
|
|
|
map1.put("PrintTime", params.get("word"));
|
|
|
|
|
|
|
|
}else if (i == 7){
|
|
|
|
|
|
|
|
map1.put("NetWeight", params.get("word"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// List<VehicleEntity> list = JSONObject.parseArray(array.toJSONString(),VehicleEntity.class);
|
|
|
|
|
|
|
|
// JSONObject jsonObject = (JSONObject) map.get("words_result");
|
|
|
|
|
|
|
|
// JSONArray jsonArray = jsonObject.getJSONArray("words_result");
|
|
|
|
|
|
|
|
// List<VehicleEntity> list = JSONObject.parseArray(jsonArray.toJSONString(),VehicleEntity.class);
|
|
|
|
|
|
|
|
if(map1.size()>0) {
|
|
|
|
|
|
|
|
if (map1.get("ReceivingCompany")!= null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setCustomerId(String.valueOf(map1.get("ReceivingCompany")));
|
|
|
|
|
|
|
|
QueryWrapper<CustomerEntity> customerQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
|
|
|
customerQueryWrapper.lambda().eq(CustomerEntity::getSupplierNm, tradeuploadCrForm.getCustomerId());
|
|
|
|
|
|
|
|
CustomerEntity customerEntity = customerService.getOne(customerQueryWrapper);
|
|
|
|
|
|
|
|
if (customerEntity != null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setCustomerId(customerEntity.getId());
|
|
|
|
|
|
|
|
tradeuploadCrForm.setCustomerName(customerEntity.getSupplierNm());
|
|
|
|
|
|
|
|
tradeuploadCrForm.setClientId(customerEntity.getId());
|
|
|
|
|
|
|
|
QueryWrapper<ContractFileEntity> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
|
|
|
queryWrapper.lambda().eq(ContractFileEntity::getCode, customerEntity.getId());
|
|
|
|
|
|
|
|
queryWrapper.lambda().eq(ContractFileEntity::getContractType, "1");
|
|
|
|
|
|
|
|
queryWrapper.lambda().eq(ContractFileEntity::getStatus, "1");
|
|
|
|
|
|
|
|
queryWrapper.lambda().orderByAsc(ContractFileEntity::getBidOpeningDate).last("limit 1");
|
|
|
|
|
|
|
|
ContractFileEntity contractFileEntity = contractFileService.getOne(queryWrapper);
|
|
|
|
|
|
|
|
if (contractFileEntity != null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setSalesId(contractFileEntity.getId());
|
|
|
|
|
|
|
|
tradeuploadCrForm.setSalesName(contractFileEntity.getContractName());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (map1.get("PlateNum")!= null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setVehicleId(String.valueOf(map1.get("PlateNum")));
|
|
|
|
|
|
|
|
tradeuploadCrForm.setVehicleName(String.valueOf(map1.get("PlateNum")));
|
|
|
|
|
|
|
|
QueryWrapper<VehicleEntity> vehicleQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
|
|
|
vehicleQueryWrapper.lambda().eq(VehicleEntity::getTicketno, map1.get("PlateNum"));
|
|
|
|
|
|
|
|
//vehicleQueryWrapper.lambda().eq(VehicleEntity::getTicketno, "鲁FEV620");
|
|
|
|
|
|
|
|
VehicleEntity vehicleEntity = vehicleService.getOne(vehicleQueryWrapper);
|
|
|
|
|
|
|
|
if (vehicleEntity != null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setVehicleId(vehicleEntity.getId());
|
|
|
|
|
|
|
|
tradeuploadCrForm.setVehicleName(vehicleEntity.getTicketno());
|
|
|
|
|
|
|
|
tradeuploadCrForm.setVehiclePictures(vehicleEntity.getVehiclephotos());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (map1.get("PrintTime") == null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setPoundDate(new Date().getTime());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
String printTime = String.valueOf(map1.get("PrintTime"));
|
|
|
|
|
|
|
|
String sdf = "yyyy-MM-dd" ;
|
|
|
|
|
|
|
|
if(printTime != null && printTime.length() == 10){
|
|
|
|
|
|
|
|
if (dateStrIsValid(printTime, sdf)) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setPoundDate(Long.valueOf(String.valueOf(map1.get("PrintTime"))));
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setPoundDate(new Date().getTime());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
tradeuploadCrForm.setPoundDate(new Date().getTime());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (map1.get("DeliveryNumber") == null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setPoundlistNo(String.valueOf(new Date()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
tradeuploadCrForm.setPoundlistNo(String.valueOf(map1.get("DeliveryNumber")));
|
|
|
|
|
|
|
|
if (map1.get("TareWeight")!=null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setTareWeight(String.valueOf(map1.get("TareWeight")));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (map1.get("CrossWeight")!=null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setGrossWeight(String.valueOf(map1.get("CrossWeight")));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (map1.get("NetWeight") == null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setBuckleWeight("0");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
tradeuploadCrForm.setBuckleWeight(String.valueOf(map1.get("NetWeight")));
|
|
|
|
|
|
|
|
if (map1.get("NetWeight") != null) {
|
|
|
|
|
|
|
|
tradeuploadCrForm.setNetWeight(String.valueOf(map1.get("NetWeight")));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UserInfo userInfo = userProvider.get();
|
|
|
|
|
|
|
|
tradeuploadCrForm.setBusinessId(userInfo.getId());
|
|
|
|
|
|
|
|
tradeuploadCrForm.setBusinessName(userInfo.getUserName());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
tradeuploadCrForm.setVo(vo);
|
|
|
|
|
|
|
|
return ActionResult.success(tradeuploadCrForm);
|
|
|
|
|
|
|
|
// return ActionResult.success(vo);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean dateStrIsValid(String printTime, String sdf) {
|
|
|
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat(sdf);
|
|
|
|
|
|
|
|
Date date = null;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 转化为 Date类型测试判断
|
|
|
|
|
|
|
|
date = dateFormat.parse(printTime);
|
|
|
|
|
|
|
|
return printTime.equals(dateFormat.format(date));
|
|
|
|
|
|
|
|
} catch (ParseException e) {
|
|
|
|
|
|
|
|
log.error("error{}",e.getMessage(),e);
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 封装上传附件
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param file
|
|
|
|
|
|
|
|
* @param type
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
* @throws IOException
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private UploaderVO uploaderVO(MultipartFile file, String type) throws IOException {
|
|
|
|
|
|
|
|
String orgFileName = file.getOriginalFilename();
|
|
|
|
|
|
|
|
String fileType = UpUtil.getFileType(file);
|
|
|
|
|
|
|
|
// if (OptimizeUtil.fileSize(file.getSize(), 1024000)) {
|
|
|
|
|
|
|
|
// return ActionResult.fail("上传失败,文件大小超过1M");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
String fileName = DateUtil.dateNow("yyyyMMdd") + "_" + RandomUtil.uuId() + "." + fileType;
|
|
|
|
|
|
|
|
if (type.equals(FileTypeEnum.MAIL)) {
|
|
|
|
|
|
|
|
type = FileTypeEnum.TEMPORARY;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
String filePath = FilePathUtil.getFilePath(type.toLowerCase());
|
|
|
|
|
|
|
|
UploaderVO vo = UploaderVO.builder().name(fileName).build();
|
|
|
|
|
|
|
|
//上传文件
|
|
|
|
|
|
|
|
UploadUtil.uploadFile(configValueUtil.getFileType(), type, fileName, file, filePath);
|
|
|
|
|
|
|
|
if (type.equalsIgnoreCase(FileTypeEnum.USERAVATAR)) {
|
|
|
|
|
|
|
|
vo.setUrl(UploaderUtil.uploaderImg(fileName));
|
|
|
|
|
|
|
|
} else if (type.equalsIgnoreCase(FileTypeEnum.ANNEX)) {
|
|
|
|
|
|
|
|
// UserInfo userInfo = userProvider.get();
|
|
|
|
|
|
|
|
// vo.setUrl(UploaderUtil.uploaderFile(userInfo.getId() + "#" + fileName + "#" + type));
|
|
|
|
|
|
|
|
vo.setUrl(UploaderUtil.uploaderImg("/api/file/Image/annex/", fileName));
|
|
|
|
|
|
|
|
} else if (type.equalsIgnoreCase(FileTypeEnum.ANNEXPIC)) {
|
|
|
|
|
|
|
|
vo.setUrl(UploaderUtil.uploaderImg("/api/file/Image/annex/", fileName));
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
vo.setUrl(UploaderUtil.uploaderImg("/api/file/Image/"+type.toLowerCase()+"/", fileName));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//上传到永中
|
|
|
|
|
|
|
|
if ("yozo".equals(configValueUtil.getAllowPreviewFileType())) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
@Cleanup InputStream inputStream = file.getInputStream();
|
|
|
|
|
|
|
|
String s = yozoUtils.uploadFileInPreview(inputStream, orgFileName);
|
|
|
|
|
|
|
|
Map<String, Object> map = JsonUtil.stringToMap(s);
|
|
|
|
|
|
|
|
if ("操作成功".equals(map.get("message"))) {
|
|
|
|
|
|
|
|
Map<String, Object> dataMap = JsonUtil.stringToMap(String.valueOf(map.get("data")));
|
|
|
|
|
|
|
|
String verId = String.valueOf(dataMap.get("fileVersionId"));
|
|
|
|
|
|
|
|
vo.setFileVersionId(verId);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
System.out.println("上传到永中失败");
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return vo;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 磅单识别
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param file
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@ApiOperation("磅单识别")
|
|
|
|
|
|
|
|
@PostMapping("/poundai")
|
|
|
|
|
|
|
|
public ActionResult poundAI(MultipartFile file ) throws ModelException, TranslateException, IOException {
|
|
|
|
|
|
|
|
TradeuploadCrForm tradeuploadCrForm = new TradeuploadCrForm();
|
|
|
|
|
|
|
|
String result = VatInvoice.weightNote(file);
|
|
|
|
|
|
|
|
Map<String,Object> map = JsonUtil.stringToMap(result);
|
|
|
|
|
|
|
|
tradeuploadCrForm.setCustomerId(String.valueOf(map.get("ReceivingCompany")));
|
|
|
|
|
|
|
|
QueryWrapper<CustomerEntity> customerQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
|
|
|
customerQueryWrapper.lambda().eq(CustomerEntity::getSupplierNm,tradeuploadCrForm.getCustomerId());
|
|
|
|
|
|
|
|
CustomerEntity customerEntity = customerService.getOne(customerQueryWrapper);
|
|
|
|
|
|
|
|
tradeuploadCrForm.setClientId(customerEntity.getId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QueryWrapper<ContractFileEntity> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
|
|
|
queryWrapper.lambda().eq(ContractFileEntity::getCode,customerEntity.getId());
|
|
|
|
|
|
|
|
queryWrapper.lambda().eq(ContractFileEntity::getContractType,"1");
|
|
|
|
|
|
|
|
queryWrapper.lambda().eq(ContractFileEntity::getStatus,"1");
|
|
|
|
|
|
|
|
queryWrapper.lambda().orderByAsc(ContractFileEntity::getBidOpeningDate).last("limit 1");
|
|
|
|
|
|
|
|
ContractFileEntity contractFileEntity = contractFileService.getOne(queryWrapper);
|
|
|
|
|
|
|
|
tradeuploadCrForm.setSalesId(contractFileEntity.getContractName());
|
|
|
|
|
|
|
|
tradeuploadCrForm.setVehicleId(String.valueOf(map.get("PlateNum")));
|
|
|
|
|
|
|
|
QueryWrapper<VehicleEntity> vehicleQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
|
|
|
vehicleQueryWrapper.lambda().eq(VehicleEntity::getTicketno,map.get("PlateNum"));
|
|
|
|
|
|
|
|
VehicleEntity vehicleEntity = vehicleService.getOne(vehicleQueryWrapper);
|
|
|
|
|
|
|
|
if (vehicleEntity != null){
|
|
|
|
|
|
|
|
tradeuploadCrForm.setVehiclePictures(vehicleEntity.getVehiclephotos());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (map.get("PrintTime") == null){
|
|
|
|
|
|
|
|
tradeuploadCrForm.setPoundDate(new Date().getTime());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
tradeuploadCrForm.setPoundDate((Long) map.get("PrintTime"));
|
|
|
|
|
|
|
|
if (map.get("DeliveryNumber") == null){
|
|
|
|
|
|
|
|
tradeuploadCrForm.setPoundlistNo(String.valueOf(new Date()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
tradeuploadCrForm.setPoundlistNo(String.valueOf(map.get("DeliveryNumber")));
|
|
|
|
|
|
|
|
tradeuploadCrForm.setTareWeight(String.valueOf(map.get("TareWeight")));
|
|
|
|
|
|
|
|
tradeuploadCrForm.setGrossWeight(String.valueOf(map.get("CrossWeight")));
|
|
|
|
|
|
|
|
if (map.get("NetWeight") == null){
|
|
|
|
|
|
|
|
tradeuploadCrForm.setBuckleWeight("0");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
tradeuploadCrForm.setBuckleWeight(String.valueOf(map.get("NetWeight")));
|
|
|
|
|
|
|
|
if (map.get("NetWeight") == null){
|
|
|
|
|
|
|
|
tradeuploadCrForm.setNetWeight("0");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
tradeuploadCrForm.setNetWeight(String.valueOf(map.get("NetWeight")));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UserInfo userInfo = userProvider.get();
|
|
|
|
|
|
|
|
tradeuploadCrForm.setBusinessId(userInfo.getUserName());
|
|
|
|
|
|
|
|
return ActionResult.success(tradeuploadCrForm);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -88,7 +391,7 @@ public class TradeuploadController {
|
|
|
|
for(TradeuploadEntity entity:list){
|
|
|
|
for(TradeuploadEntity entity:list){
|
|
|
|
entity.setPoundPictures(generaterSwapUtil.getFileNameInJson(entity.getPoundPictures()));
|
|
|
|
entity.setPoundPictures(generaterSwapUtil.getFileNameInJson(entity.getPoundPictures()));
|
|
|
|
Map<String,Object> materialIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> materialIdMap = new HashMap<>();
|
|
|
|
entity.setMaterialId(generaterSwapUtil.getPopupSelectValue("381037852907038533","id","description",entity.getMaterialId(),materialIdMap));
|
|
|
|
entity.setMaterialId(generaterSwapUtil.getPopupSelectValue("381037852907038533","id","item_name",entity.getMaterialId(),materialIdMap));
|
|
|
|
Map<String,Object> customerIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> customerIdMap = new HashMap<>();
|
|
|
|
entity.setCustomerId(generaterSwapUtil.getPopupSelectValue("395936123471343749","id","supplier_nm",entity.getCustomerId(),customerIdMap));
|
|
|
|
entity.setCustomerId(generaterSwapUtil.getPopupSelectValue("395936123471343749","id","supplier_nm",entity.getCustomerId(),customerIdMap));
|
|
|
|
Map<String,Object> salesIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> salesIdMap = new HashMap<>();
|
|
|
@ -97,7 +400,7 @@ public class TradeuploadController {
|
|
|
|
entity.setVehicleId(generaterSwapUtil.getPopupSelectValue("381432451370615173","id","ticketno",entity.getVehicleId(),vehicleIdMap));
|
|
|
|
entity.setVehicleId(generaterSwapUtil.getPopupSelectValue("381432451370615173","id","ticketno",entity.getVehicleId(),vehicleIdMap));
|
|
|
|
entity.setVehiclePictures(generaterSwapUtil.getFileNameInJson(entity.getVehiclePictures()));
|
|
|
|
entity.setVehiclePictures(generaterSwapUtil.getFileNameInJson(entity.getVehiclePictures()));
|
|
|
|
Map<String,Object> creatorUserNameMap = new HashMap<>();
|
|
|
|
Map<String,Object> creatorUserNameMap = new HashMap<>();
|
|
|
|
entity.setCreatorUserName(generaterSwapUtil.getPopupSelectValue("ebcc44be142e43b795c0d769abd6d25a","F_RealName","F_RealName",entity.getCreatorUserName(),creatorUserNameMap));
|
|
|
|
entity.setCreatorUserName(generaterSwapUtil.getPopupSelectValue("ebcc44be142e43b795c0d769abd6d25a","F_Id","F_RealName",entity.getCreatorUserName(),creatorUserNameMap));
|
|
|
|
Map<String,Object> naturalIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> naturalIdMap = new HashMap<>();
|
|
|
|
entity.setNaturalId(generaterSwapUtil.getPopupSelectValue("395933800510599301","id","name",entity.getNaturalId(),naturalIdMap));
|
|
|
|
entity.setNaturalId(generaterSwapUtil.getPopupSelectValue("395933800510599301","id","name",entity.getNaturalId(),naturalIdMap));
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -127,10 +430,15 @@ public class TradeuploadController {
|
|
|
|
UserInfo userInfo=userProvider.get();
|
|
|
|
UserInfo userInfo=userProvider.get();
|
|
|
|
tradeuploadCrForm.setCreatorTime(DateUtil.getNow());
|
|
|
|
tradeuploadCrForm.setCreatorTime(DateUtil.getNow());
|
|
|
|
TradeuploadEntity entity = JsonUtil.getJsonToBean(tradeuploadCrForm, TradeuploadEntity.class);
|
|
|
|
TradeuploadEntity entity = JsonUtil.getJsonToBean(tradeuploadCrForm, TradeuploadEntity.class);
|
|
|
|
entity.setId(mainId);
|
|
|
|
QueryWrapper<TradeuploadEntity> queryWrapper = new QueryWrapper<>();
|
|
|
|
tradeuploadService.save(entity);
|
|
|
|
queryWrapper.lambda().eq(TradeuploadEntity::getPoundlistNo,entity.getPoundlistNo());
|
|
|
|
|
|
|
|
queryWrapper.lambda().eq(TradeuploadEntity::getCustomerId,entity.getCustomerId());
|
|
|
|
|
|
|
|
List<TradeuploadEntity> list = tradeuploadService.list(queryWrapper);
|
|
|
|
|
|
|
|
if (list != null && list.size()>0){
|
|
|
|
|
|
|
|
return ActionResult.fail("磅单重复");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
entity.setId(mainId);
|
|
|
|
|
|
|
|
tradeuploadService.save(entity);
|
|
|
|
return ActionResult.success("创建成功");
|
|
|
|
return ActionResult.success("创建成功");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -171,7 +479,7 @@ public class TradeuploadController {
|
|
|
|
for(TradeuploadEntity entity:list){
|
|
|
|
for(TradeuploadEntity entity:list){
|
|
|
|
entity.setPoundPictures(generaterSwapUtil.getFileNameInJson(entity.getPoundPictures()));
|
|
|
|
entity.setPoundPictures(generaterSwapUtil.getFileNameInJson(entity.getPoundPictures()));
|
|
|
|
Map<String,Object> materialIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> materialIdMap = new HashMap<>();
|
|
|
|
entity.setMaterialId(generaterSwapUtil.getPopupSelectValue("381037852907038533","id","description",entity.getMaterialId(),materialIdMap));
|
|
|
|
entity.setMaterialId(generaterSwapUtil.getPopupSelectValue("381037852907038533","id","item_name",entity.getMaterialId(),materialIdMap));
|
|
|
|
Map<String,Object> customerIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> customerIdMap = new HashMap<>();
|
|
|
|
entity.setCustomerId(generaterSwapUtil.getPopupSelectValue("395936123471343749","id","supplier_nm",entity.getCustomerId(),customerIdMap));
|
|
|
|
entity.setCustomerId(generaterSwapUtil.getPopupSelectValue("395936123471343749","id","supplier_nm",entity.getCustomerId(),customerIdMap));
|
|
|
|
Map<String,Object> salesIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> salesIdMap = new HashMap<>();
|
|
|
@ -180,7 +488,7 @@ public class TradeuploadController {
|
|
|
|
entity.setVehicleId(generaterSwapUtil.getPopupSelectValue("381432451370615173","id","ticketno",entity.getVehicleId(),vehicleIdMap));
|
|
|
|
entity.setVehicleId(generaterSwapUtil.getPopupSelectValue("381432451370615173","id","ticketno",entity.getVehicleId(),vehicleIdMap));
|
|
|
|
entity.setVehiclePictures(generaterSwapUtil.getFileNameInJson(entity.getVehiclePictures()));
|
|
|
|
entity.setVehiclePictures(generaterSwapUtil.getFileNameInJson(entity.getVehiclePictures()));
|
|
|
|
Map<String,Object> creatorUserNameMap = new HashMap<>();
|
|
|
|
Map<String,Object> creatorUserNameMap = new HashMap<>();
|
|
|
|
entity.setCreatorUserName(generaterSwapUtil.getPopupSelectValue("ebcc44be142e43b795c0d769abd6d25a","F_RealName","F_RealName",entity.getCreatorUserName(),creatorUserNameMap));
|
|
|
|
entity.setCreatorUserName(generaterSwapUtil.getPopupSelectValue("ebcc44be142e43b795c0d769abd6d25a","F_Id","F_RealName",entity.getCreatorUserName(),creatorUserNameMap));
|
|
|
|
Map<String,Object> naturalIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> naturalIdMap = new HashMap<>();
|
|
|
|
entity.setNaturalId(generaterSwapUtil.getPopupSelectValue("395933800510599301","id","name",entity.getNaturalId(),naturalIdMap));
|
|
|
|
entity.setNaturalId(generaterSwapUtil.getPopupSelectValue("395933800510599301","id","name",entity.getNaturalId(),naturalIdMap));
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -355,7 +663,7 @@ public class TradeuploadController {
|
|
|
|
//添加到详情表单对象中
|
|
|
|
//添加到详情表单对象中
|
|
|
|
vo.setPoundPictures(generaterSwapUtil.getFileNameInJson(vo.getPoundPictures()));
|
|
|
|
vo.setPoundPictures(generaterSwapUtil.getFileNameInJson(vo.getPoundPictures()));
|
|
|
|
Map<String,Object> materialIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> materialIdMap = new HashMap<>();
|
|
|
|
vo.setMaterialId(generaterSwapUtil.getPopupSelectValue("381037852907038533","id","description",vo.getMaterialId(),materialIdMap));
|
|
|
|
vo.setMaterialId(generaterSwapUtil.getPopupSelectValue("381037852907038533","id","item_name",vo.getMaterialId(),materialIdMap));
|
|
|
|
Map<String,Object> customerIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> customerIdMap = new HashMap<>();
|
|
|
|
vo.setCustomerId(generaterSwapUtil.getPopupSelectValue("395936123471343749","id","supplier_nm",vo.getCustomerId(),customerIdMap));
|
|
|
|
vo.setCustomerId(generaterSwapUtil.getPopupSelectValue("395936123471343749","id","supplier_nm",vo.getCustomerId(),customerIdMap));
|
|
|
|
Map<String,Object> salesIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> salesIdMap = new HashMap<>();
|
|
|
@ -364,7 +672,7 @@ public class TradeuploadController {
|
|
|
|
vo.setVehicleId(generaterSwapUtil.getPopupSelectValue("381432451370615173","id","ticketno",vo.getVehicleId(),vehicleIdMap));
|
|
|
|
vo.setVehicleId(generaterSwapUtil.getPopupSelectValue("381432451370615173","id","ticketno",vo.getVehicleId(),vehicleIdMap));
|
|
|
|
vo.setVehiclePictures(generaterSwapUtil.getFileNameInJson(vo.getVehiclePictures()));
|
|
|
|
vo.setVehiclePictures(generaterSwapUtil.getFileNameInJson(vo.getVehiclePictures()));
|
|
|
|
Map<String,Object> creatorUserNameMap = new HashMap<>();
|
|
|
|
Map<String,Object> creatorUserNameMap = new HashMap<>();
|
|
|
|
vo.setCreatorUserName(generaterSwapUtil.getPopupSelectValue("ebcc44be142e43b795c0d769abd6d25a","F_RealName","F_RealName",vo.getCreatorUserName(),creatorUserNameMap));
|
|
|
|
vo.setBusinessId(generaterSwapUtil.getPopupSelectValue("ebcc44be142e43b795c0d769abd6d25a","F_Id","F_RealName",vo.getBusinessId(),creatorUserNameMap));
|
|
|
|
Map<String,Object> naturalIdMap = new HashMap<>();
|
|
|
|
Map<String,Object> naturalIdMap = new HashMap<>();
|
|
|
|
vo.setNaturalId(generaterSwapUtil.getPopupSelectValue("395933800510599301","id","name",vo.getNaturalId(),naturalIdMap));
|
|
|
|
vo.setNaturalId(generaterSwapUtil.getPopupSelectValue("395933800510599301","id","name",vo.getNaturalId(),naturalIdMap));
|
|
|
|
|
|
|
|
|
|
|
@ -388,6 +696,13 @@ public class TradeuploadController {
|
|
|
|
if(entity!=null){
|
|
|
|
if(entity!=null){
|
|
|
|
TradeuploadEntity subentity=JsonUtil.getJsonToBean(tradeuploadUpForm, TradeuploadEntity.class);
|
|
|
|
TradeuploadEntity subentity=JsonUtil.getJsonToBean(tradeuploadUpForm, TradeuploadEntity.class);
|
|
|
|
subentity.setCreatorTime(entity.getCreatorTime());
|
|
|
|
subentity.setCreatorTime(entity.getCreatorTime());
|
|
|
|
|
|
|
|
QueryWrapper<TradeuploadEntity> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
|
|
|
queryWrapper.lambda().eq(TradeuploadEntity::getPoundlistNo,entity.getPoundlistNo());
|
|
|
|
|
|
|
|
queryWrapper.lambda().eq(TradeuploadEntity::getCustomerId,entity.getCustomerId());
|
|
|
|
|
|
|
|
List<TradeuploadEntity> list = tradeuploadService.list(queryWrapper);
|
|
|
|
|
|
|
|
if (list != null && list.size()>0 && !ObjectUtil.equal("id", list.get(0).getId())){
|
|
|
|
|
|
|
|
return ActionResult.fail("磅单重复");
|
|
|
|
|
|
|
|
}
|
|
|
|
tradeuploadService.update(id, subentity);
|
|
|
|
tradeuploadService.update(id, subentity);
|
|
|
|
return ActionResult.success("更新成功");
|
|
|
|
return ActionResult.success("更新成功");
|
|
|
|
}else{
|
|
|
|
}else{
|
|
|
|