Merge remote-tracking branch 'origin/main'

product
chuang 2 years ago
commit f4fa35e19e

@ -113,6 +113,7 @@ public class UtilsController {
return ActionResult.fail(MsgCode.FA017.get()); return ActionResult.fail(MsgCode.FA017.get());
} }
UploaderVO vo = uploaderVO(file, type); UploaderVO vo = uploaderVO(file, type);
return ActionResult.success(vo); return ActionResult.success(vo);
} }

@ -144,6 +144,11 @@ public class CollectionController {
return ActionResult.success(vo); return ActionResult.success(vo);
} }
@GetMapping("autoCreate")
public ActionResult autoCreate() throws DataException {
String document = generaterSwapUtil.getBillNumber("collection",false);
return ActionResult.success(document);
}
/** /**
* *

@ -6,15 +6,19 @@ 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.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.UserInfo; import jnpf.base.UserInfo;
import jnpf.base.util.OptimizeUtil;
import jnpf.base.vo.DownloadVO; import jnpf.base.vo.DownloadVO;
import jnpf.base.vo.PageListVO; import jnpf.base.vo.PageListVO;
import jnpf.base.vo.PaginationVO; import jnpf.base.vo.PaginationVO;
import jnpf.config.ConfigValueUtil; import jnpf.config.ConfigValueUtil;
import jnpf.constant.MsgCode;
import jnpf.contractfile.entity.ContractFileEntity; import jnpf.contractfile.entity.ContractFileEntity;
import jnpf.contractfile.entity.Contract_item0Entity; import jnpf.contractfile.entity.Contract_item0Entity;
import jnpf.contractfile.entity.Contract_item1Entity; import jnpf.contractfile.entity.Contract_item1Entity;
@ -23,20 +27,26 @@ import jnpf.contractfile.service.ContractFileService;
import jnpf.contractfile.service.Contract_item0Service; import jnpf.contractfile.service.Contract_item0Service;
import jnpf.contractfile.service.Contract_item1Service; import jnpf.contractfile.service.Contract_item1Service;
import jnpf.exception.DataException; import jnpf.exception.DataException;
import jnpf.model.UploaderVO;
import jnpf.util.*; import jnpf.util.*;
import jnpf.util.enums.FileTypeEnum; import jnpf.util.enums.FileTypeEnum;
import jnpf.util.file.UploadUtil; import jnpf.util.file.UploadUtil;
import jnpf.utils.YozoUtils;
import lombok.Cleanup; import lombok.Cleanup;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -71,7 +81,8 @@ public class ContractFileController {
private Contract_item0Service contract_item0Service; private Contract_item0Service contract_item0Service;
@Autowired @Autowired
private Contract_item1Service contract_item1Service; private Contract_item1Service contract_item1Service;
@Autowired
private YozoUtils yozoUtils;
@ -474,12 +485,97 @@ public class ContractFileController {
/**
*
*
* @param contractFileEntity
* @return
*/
@PostMapping("/getListByCustomer")
public ActionResult getListByCustomer(@RequestBody ContractFileEntity contractFileEntity)throws IOException{
LambdaQueryWrapper<ContractFileEntity> queryWrapper = new LambdaQueryWrapper<ContractFileEntity>();
queryWrapper.eq(ContractFileEntity::getContractType, "1");
queryWrapper.eq(ContractFileEntity::getStatus, "1");
if(StringUtils.isNotEmpty(contractFileEntity.getCode())){
queryWrapper.eq(ContractFileEntity::getCode, contractFileEntity.getCode());
}
if(StringUtils.isNotEmpty(contractFileEntity.getName())){
queryWrapper.eq(ContractFileEntity::getName, contractFileEntity.getName());
}
queryWrapper.orderByAsc(ContractFileEntity::getBidOpeningDate);
List<ContractFileEntity> list = contractFileService.list(queryWrapper);
return ActionResult.success(list);
}
/**
* /
*
* @return
*/
@NoDataSourceBind()
@ApiOperation("上传文件/图片")
@PostMapping(value = "/Uploader/{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());
}
UploaderVO vo = uploaderVO(file, type);
return ActionResult.success(vo);
}
/**
*
*
* @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;
}
} }

@ -135,4 +135,7 @@ public class ContractFileEntity {
@TableField("APPROVAL") @TableField("APPROVAL")
private String approval; private String approval;
//客户ID
@TableField(exist = false)
private String customerId;
} }

@ -101,7 +101,15 @@ public class CustomerVOServiceImpl extends ServiceImpl<CustomerVMapper, Customer
customerNum++; customerNum++;
customerQueryWrapper.lambda().like(CustomerEntity::getContactName,customerPagination.getContactName()); customerQueryWrapper.lambda().like(CustomerEntity::getContactName,customerPagination.getContactName());
} }
if(StringUtil.isNotEmpty(customerPagination.getKeyword())){
customerNum++;
customerQueryWrapper.lambda().and(wq -> {
// 拼接sql
wq.like(CustomerEntity::getSupplierNm,customerPagination.getKeyword())
.or()
.like(CustomerEntity::getSupplierCd,customerPagination.getKeyword());
});
}
if(AllIdList.size()>0){ if(AllIdList.size()>0){
customerQueryWrapper.lambda().in(CustomerEntity::getId, AllIdList); customerQueryWrapper.lambda().in(CustomerEntity::getId, AllIdList);
} }

@ -79,7 +79,7 @@ public class PaymentEntity {
private String businessdate; private String businessdate;
@TableField("DUEDATE") @TableField("DUEDATE")
private String duedate; private Date duedate;
@TableField("STATUS") @TableField("STATUS")
private String status; private String status;

@ -4,6 +4,8 @@ package jnpf.payment.model.payment;
import jnpf.payment.model.payment.Payment_item0Model; import jnpf.payment.model.payment.Payment_item0Model;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
@ -71,7 +73,7 @@ public class PaymentUpForm{
/** 应付日期 **/ /** 应付日期 **/
@JsonProperty("duedate") @JsonProperty("duedate")
private Long duedate; private Date duedate;
/** 币别 **/ /** 币别 **/

@ -51,7 +51,7 @@ public class PaymentdocCrForms {
/** 应付日期 **/ /** 应付日期 **/
@JsonProperty("dueDate") @JsonProperty("dueDate")
private String dueDate; private Date dueDate;
/** 币别 **/ /** 币别 **/
@JsonProperty("currency") @JsonProperty("currency")

@ -4,6 +4,8 @@ package jnpf.paymentdoc.model.paymentdoc;
import jnpf.paymentdoc.model.paymentdoc.Paymentdoc_item0Model; import jnpf.paymentdoc.model.paymentdoc.Paymentdoc_item0Model;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
@ -51,7 +53,7 @@ public class PaymentdocUpForm{
/** 应付日期 **/ /** 应付日期 **/
@JsonProperty("dueDate") @JsonProperty("dueDate")
private Long dueDate; private Date dueDate;
/** 币别 **/ /** 币别 **/

@ -0,0 +1,275 @@
package jnpf.purchasement.controller;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jnpf.base.ActionResult;
import jnpf.base.vo.PageListVO;
import jnpf.base.vo.PaginationVO;
import jnpf.base.UserInfo;
import jnpf.base.vo.DownloadVO;
import jnpf.config.ConfigValueUtil;
import jnpf.exception.DataException;
import org.springframework.transaction.annotation.Transactional;
import jnpf.base.entity.ProvinceEntity;
import jnpf.purchasement.model.purchasement.*;
import jnpf.purchasement.model.purchasement.PurchasementPagination;
import jnpf.purchasement.entity.*;
import jnpf.purchasement.entity.Purchasement_item0Entity;
import jnpf.util.*;
import jnpf.base.util.*;
import jnpf.base.vo.ListVO;
import jnpf.util.context.SpringContext;
import cn.hutool.core.util.ObjectUtil;
import lombok.extern.slf4j.Slf4j;
import lombok.Cleanup;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import jnpf.purchasement.entity.PurchasementEntity;
import jnpf.purchasement.service.PurchasementService;
import jnpf.purchasement.entity.Purchasement_item0Entity;
import jnpf.purchasement.service.Purchasement_item0Service;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import jnpf.util.GeneraterSwapUtil;
import java.util.*;
import jnpf.util.file.UploadUtil;
import jnpf.util.enums.FileTypeEnum;
/**
*
* purchasement
* @ V3.2.0
* @ LINKAGE-BOOT
* @ LINKAGE-BOOT
* @ 2023-02-20
*/
@Slf4j
@RestController
@Api(tags = "purchasement" , value = "purchasement")
@RequestMapping("/api/purchasement/Purchasement")
public class PurchasementController {
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@Autowired
private UserProvider userProvider;
@Autowired
private PurchasementService purchasementService;
@Autowired
private Purchasement_item0Service purchasement_item0Service;
/**
*
*
* @param purchasementPagination
* @return
*/
@PostMapping("/getList")
public ActionResult list(@RequestBody PurchasementPagination purchasementPagination)throws IOException{
List<PurchasementEntity> list= purchasementService.getList(purchasementPagination);
//处理id字段转名称若无需转或者为空可删除
for(PurchasementEntity entity:list){
entity.setCreatorUserId(generaterSwapUtil.userSelectValue(entity.getCreatorUserId()));
entity.setLastModifyUserId(generaterSwapUtil.userSelectValue(entity.getLastModifyUserId()));
//entity.setLastModifyTime(generaterSwapUtil.userSelectValue(entity.getLastModifyTime()));
entity.setOrgnizeId(generaterSwapUtil.comSelectValue(entity.getOrgnizeId(), "last"));
entity.setDepartmentId(generaterSwapUtil.posSelectValue(entity.getDepartmentId()));
}
List<PurchasementListVO> listVO=JsonUtil.getJsonToList(list,PurchasementListVO.class);
for(PurchasementListVO purchasementVO:listVO){
}
PageListVO vo=new PageListVO();
vo.setList(listVO);
PaginationVO page=JsonUtil.getJsonToBean(purchasementPagination,PaginationVO.class);
vo.setPagination(page);
return ActionResult.success(vo);
}
/**
*
*
* @param purchasementCrForm
* @return
*/
@PostMapping
@Transactional
public ActionResult create(@RequestBody @Valid PurchasementCrForm purchasementCrForm) throws DataException {
String mainId =RandomUtil.uuId();
UserInfo userInfo=userProvider.get();
purchasementCrForm.setCreatorUserId(userInfo.getUserId());
purchasementCrForm.setCreatorTime(DateUtil.getNow());
purchasementCrForm.setOrgnizeId(StringUtil.isEmpty(userInfo.getDepartmentId()) ? userInfo.getOrganizeId() : userInfo.getDepartmentId());
if(userInfo.getPositionIds()!=null&&userInfo.getPositionIds().length>0){
purchasementCrForm.setDepartmentId(userInfo.getPositionIds()[0]);
}
PurchasementEntity entity = JsonUtil.getJsonToBean(purchasementCrForm, PurchasementEntity.class);
entity.setId(mainId);
purchasementService.save(entity);
List<Purchasement_item0Entity> Purchasement_item0List = JsonUtil.getJsonToList(purchasementCrForm.getPurchasement_item0List(),Purchasement_item0Entity.class);
for(Purchasement_item0Entity entitys : Purchasement_item0List){
entitys.setId(RandomUtil.uuId());
entitys.setPurchasementId(entity.getId());
purchasement_item0Service.save(entitys);
}
return ActionResult.success("创建成功");
}
/**
*
*
* @param id
* @return
*/
@GetMapping("/{id}")
public ActionResult<PurchasementInfoVO> info(@PathVariable("id") String id){
PurchasementEntity entity= purchasementService.getInfo(id);
PurchasementInfoVO vo=JsonUtil.getJsonToBean(entity, PurchasementInfoVO.class);
vo.setCreatorUserId(generaterSwapUtil.userSelectValue(vo.getCreatorUserId()));
if(vo.getCreatorTime()!=null){
vo.setCreatorTime(vo.getCreatorTime());
}
vo.setLastModifyUserId(generaterSwapUtil.userSelectValue(vo.getLastModifyUserId()));
vo.setLastModifyTime(generaterSwapUtil.userSelectValue(vo.getLastModifyTime()));
vo.setOrgnizeId(generaterSwapUtil.comSelectValue(vo.getOrgnizeId(), "last"));
vo.setDepartmentId(generaterSwapUtil.posSelectValue(vo.getDepartmentId()));
//子表
List<Purchasement_item0Entity> Purchasement_item0List = purchasementService.GetPurchasement_item0List(id);
for(Purchasement_item0Entity purchasement_item0Entity : Purchasement_item0List){
}
vo.setPurchasement_item0List(JsonUtil.getJsonToList(Purchasement_item0List,Purchasement_item0Model.class ));
//副表
return ActionResult.success(vo);
}
/**
* ()
*
* @param id
* @return
*/
@GetMapping("/detail/{id}")
public ActionResult<PurchasementInfoVO> detailInfo(@PathVariable("id") String id){
PurchasementEntity entity= purchasementService.getInfo(id);
PurchasementInfoVO vo=JsonUtil.getJsonToBean(entity, PurchasementInfoVO.class);
//子表数据转换
List<Purchasement_item0Entity> jg_purchasement_item0List = purchasementService.GetPurchasement_item0List(id);
List<Purchasement_item0Model> jg_purchasement_item0ModelList = JsonUtil.getJsonToList(jg_purchasement_item0List,Purchasement_item0Model.class);
for(Purchasement_item0Model jg_purchasement_item0Model : jg_purchasement_item0ModelList){
Map<String,Object> purchaseorderIdMap = new HashMap<>();
jg_purchasement_item0Model.setPurchaseorderId(generaterSwapUtil.getPopupSelectValue("383149471917185157","id","fullName",jg_purchasement_item0Model.getPurchaseorderId(),purchaseorderIdMap));
}
vo.setPurchasement_item0List(jg_purchasement_item0ModelList);
//附表数据转换
//添加到详情表单对象中
vo.setCreatorUserId(generaterSwapUtil.userSelectValue(vo.getCreatorUserId()));
vo.setLastModifyUserId(generaterSwapUtil.userSelectValue(vo.getLastModifyUserId()));
vo.setLastModifyTime(generaterSwapUtil.userSelectValue(vo.getLastModifyTime()));
vo.setOrgnizeId(generaterSwapUtil.comSelectValue(vo.getOrgnizeId(), "last"));
vo.setDepartmentId(generaterSwapUtil.posSelectValue(vo.getDepartmentId()));
return ActionResult.success(vo);
}
/**
*
*
* @param id
* @return
*/
@PutMapping("/{id}")
@Transactional
public ActionResult update(@PathVariable("id") String id,@RequestBody @Valid PurchasementUpForm purchasementUpForm) throws DataException {
UserInfo userInfo=userProvider.get();
PurchasementEntity entity= purchasementService.getInfo(id);
if(entity!=null){
purchasementUpForm.setLastModifyUserId(userInfo.getUserId());
purchasementUpForm.setLastModifyTime(userInfo.getUserId());
purchasementUpForm.setOrgnizeId(entity.getOrgnizeId());
purchasementUpForm.setDepartmentId(entity.getDepartmentId());
PurchasementEntity subentity=JsonUtil.getJsonToBean(purchasementUpForm, PurchasementEntity.class);
subentity.setCreatorUserId(entity.getCreatorUserId());
subentity.setCreatorTime(entity.getCreatorTime());
purchasementService.update(id, subentity);
QueryWrapper<Purchasement_item0Entity> Purchasement_item0queryWrapper = new QueryWrapper<>();
Purchasement_item0queryWrapper.lambda().eq(Purchasement_item0Entity::getPurchasementId, entity.getId());
purchasement_item0Service.remove(Purchasement_item0queryWrapper);
List<Purchasement_item0Entity> Purchasement_item0List = JsonUtil.getJsonToList(purchasementUpForm.getPurchasement_item0List(),Purchasement_item0Entity.class);
for(Purchasement_item0Entity entitys : Purchasement_item0List){
entitys.setId(RandomUtil.uuId());
entitys.setPurchasementId(entity.getId());
purchasement_item0Service.save(entitys);
}
return ActionResult.success("更新成功");
}else{
return ActionResult.fail("更新失败,数据不存在");
}
}
/**
*
*
* @param id
* @return
*/
@DeleteMapping("/{id}")
@Transactional
public ActionResult delete(@PathVariable("id") String id){
PurchasementEntity entity= purchasementService.getInfo(id);
if(entity!=null){
purchasementService.delete(entity);
QueryWrapper<Purchasement_item0Entity> queryWrapperPurchasement_item0=new QueryWrapper<>();
queryWrapperPurchasement_item0.lambda().eq(Purchasement_item0Entity::getPurchasementId,entity.getId());
purchasement_item0Service.remove(queryWrapperPurchasement_item0);
}
return ActionResult.success("删除成功");
}
}

@ -0,0 +1,104 @@
package jnpf.purchasement.entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
*
*
* @ V3.2.0
* @ LINKAGE-BOOT
* @ LINKAGE-BOOT
* @ 2023-02-20
*/
@Data
@TableName("jg_purchasement")
public class PurchasementEntity {
@TableId("ID")
private String id;
@TableField("CREATOR_USER_ID")
private String creatorUserId;
@TableField("CREATOR_USER_NAME")
private String creatorUserName;
@TableField("CREATOR_TIME")
private Date creatorTime;
@TableField("LAST_MODIFY_USER_ID")
private String lastModifyUserId;
@TableField("LAST_MODIFY_USER_NAME")
private String lastModifyUserName;
@TableField("LAST_MODIFY_TIME")
private Date lastModifyTime;
@TableField("DELETE_USER_ID")
private String deleteUserId;
@TableField("DELETE_USER_NAME")
private String deleteUserName;
@TableField("DELETE_TIME")
private Date deleteTime;
@TableField("DELETE_MARK")
private String deleteMark;
@TableField("ORGNIZE_ID")
private String orgnizeId;
@TableField("DEPARTMENT_ID")
private String departmentId;
@TableField("DOCUMENTNO")
private String documentno;
@TableField("SUPPLIERNAME")
private String suppliername;
@TableField("STATUS")
private String status;
@TableField("REASON")
private String reason;
@TableField("REMARK")
private String remark;
@TableField("ORDERAMOUNT")
private BigDecimal orderamount;
@TableField("ORDERNUM")
private Integer ordernum;
@TableField("ORDERNOTAMOUNT")
private BigDecimal ordernotamount;
@TableField("INVOICENUM")
private Integer invoicenum;
@TableField("INVOICEAMOUNT")
private BigDecimal invoiceamount;
@TableField("INVOICENOTAMOUNT")
private BigDecimal invoicenotamount;
@TableField("CURRENCY")
private String currency;
}

@ -0,0 +1,70 @@
package jnpf.purchasement.entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
*
*
* @ V3.2.0
* @ LINKAGE-BOOT
* @ LINKAGE-BOOT
* @ 2023-02-20
*/
@Data
@TableName("jg_purchasement_item0")
public class Purchasement_item0Entity {
@TableId("ID")
private String id;
@TableField("CREATOR_USER_ID")
private String creatorUserId;
@TableField("CREATOR_USER_NAME")
private String creatorUserName;
@TableField("CREATOR_TIME")
private Date creatorTime;
@TableField("LAST_MODIFY_USER_ID")
private String lastModifyUserId;
@TableField("LAST_MODIFY_USER_NAME")
private String lastModifyUserName;
@TableField("LAST_MODIFY_TIME")
private Date lastModifyTime;
@TableField("DELETE_USER_ID")
private String deleteUserId;
@TableField("DELETE_USER_NAME")
private String deleteUserName;
@TableField("DELETE_TIME")
private Date deleteTime;
@TableField("DELETE_MARK")
private String deleteMark;
@TableField("ORGNIZE_ID")
private String orgnizeId;
@TableField("DEPARTMENT_ID")
private String departmentId;
@TableField("PURCHASEMENT_ID")
private String purchasementId;
@TableField("PURCHASEORDER_ID")
private String purchaseorderId;
}

@ -0,0 +1,17 @@
package jnpf.purchasement.mapper;
import jnpf.purchasement.entity.PurchasementEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
*
* purchasement
* V3.2.0
* LINKAGE-BOOT
* LINKAGE-BOOT
* 2023-02-20
*/
public interface PurchasementMapper extends BaseMapper<PurchasementEntity> {
}

@ -0,0 +1,17 @@
package jnpf.purchasement.mapper;
import jnpf.purchasement.entity.Purchasement_item0Entity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
*
* jg_purchasement_item0
* V3.2.0
* LINKAGE-BOOT
* LINKAGE-BOOT
* 2023-02-20
*/
public interface Purchasement_item0Mapper extends BaseMapper<Purchasement_item0Entity> {
}

@ -0,0 +1,100 @@
package jnpf.purchasement.model.purchasement;
import jnpf.purchasement.model.purchasement.Purchasement_item0Model;
import lombok.Data;
import java.util.List;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
*
*
* @ V3.2.0
* @ LINKAGE-BOOT
* @ LINKAGE-BOOT
* @ 2023-02-20
*/
@Data
public class PurchasementCrForm {
/** 单据编号 **/
@JsonProperty("documentno")
private String documentno;
/** 供应商名称 **/
@JsonProperty("suppliername")
private String suppliername;
/** 备注 **/
@JsonProperty("remark")
private String remark;
/** 驳回原因 **/
@JsonProperty("reason")
private String reason;
/** 结算状态 **/
@JsonProperty("status")
private String status;
/** 订单金额 **/
@JsonProperty("orderamount")
private Integer orderamount;
/** 采购订单数量 **/
@JsonProperty("ordernum")
private Integer ordernum;
/** 订单不含税金额 **/
@JsonProperty("ordernotamount")
private Integer ordernotamount;
/** 发票数量 **/
@JsonProperty("invoicenum")
private Integer invoicenum;
/** 发票金额 **/
@JsonProperty("invoiceamount")
private Integer invoiceamount;
/** 发票不含税金额 **/
@JsonProperty("invoicenotamount")
private Integer invoicenotamount;
/** 创建人id **/
@JsonProperty("creatorUserId")
private String creatorUserId;
/** 创建人名称 **/
@JsonProperty("creatorUserName")
private String creatorUserName;
/** 创建时间 **/
@JsonProperty("creatorTime")
private String creatorTime;
/** 修改人id **/
@JsonProperty("lastModifyUserId")
private String lastModifyUserId;
/** 修改时间 **/
@JsonProperty("lastModifyTime")
private String lastModifyTime;
/** 组织id **/
@JsonProperty("orgnizeId")
private String orgnizeId;
/** 部门id **/
@JsonProperty("departmentId")
private String departmentId;
/** 子表数据 **/
@JsonProperty("purchasement_item0List")
private List<Purchasement_item0Model> purchasement_item0List;
}

@ -0,0 +1,103 @@
package jnpf.purchasement.model.purchasement;
import jnpf.purchasement.model.purchasement.Purchasement_item0Model;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
*
*
* @ V3.2.0
* @ LINKAGE-BOOT
* @ LINKAGE-BOOT
* @ 2023-02-20
*/
@Data
public class PurchasementInfoVO{
/** 主键 **/
@JsonProperty("id")
private String id;
/** 单据编号 **/
@JsonProperty("documentno")
private String documentno;
/** 供应商名称 **/
@JsonProperty("suppliername")
private String suppliername;
/** 备注 **/
@JsonProperty("remark")
private String remark;
/** 驳回原因 **/
@JsonProperty("reason")
private String reason;
/** 结算状态 **/
@JsonProperty("status")
private String status;
/** 订单金额 **/
@JsonProperty("orderamount")
private Integer orderamount;
/** 采购订单数量 **/
@JsonProperty("ordernum")
private Integer ordernum;
/** 订单不含税金额 **/
@JsonProperty("ordernotamount")
private Integer ordernotamount;
/** 发票数量 **/
@JsonProperty("invoicenum")
private Integer invoicenum;
/** 发票金额 **/
@JsonProperty("invoiceamount")
private Integer invoiceamount;
/** 发票不含税金额 **/
@JsonProperty("invoicenotamount")
private Integer invoicenotamount;
/** 创建人id **/
@JsonProperty("creatorUserId")
private String creatorUserId;
/** 创建人名称 **/
@JsonProperty("creatorUserName")
private String creatorUserName;
/** 创建时间 **/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@JsonProperty("creatorTime")
private Date creatorTime;
/** 修改人id **/
@JsonProperty("lastModifyUserId")
private String lastModifyUserId;
/** 修改时间 **/
@JsonProperty("lastModifyTime")
private String lastModifyTime;
/** 组织id **/
@JsonProperty("orgnizeId")
private String orgnizeId;
/** 部门id **/
@JsonProperty("departmentId")
private String departmentId;
/** 子表数据 **/
@JsonProperty("purchasement_item0List")
private List<Purchasement_item0Model> purchasement_item0List;
}

@ -0,0 +1,30 @@
package jnpf.purchasement.model.purchasement;
import lombok.Data;
import java.util.Date;
import jnpf.base.Pagination;
import java.util.List;
/**
*
*
* @ V3.2.0
* @ LINKAGE-BOOT
* @ LINKAGE-BOOT
* @ 2023-02-20
*/
@Data
public class PurchasementListQuery extends Pagination {
/** 单据编号 */
private String documentno;
/** 供应商名称 */
private String suppliername;
/** 创建人名称 */
private String creatorUserName;
/**
* id
*/
private String menuId;
}

@ -0,0 +1,112 @@
package jnpf.purchasement.model.purchasement;
import lombok.Data;
import java.sql.Time;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.math.BigDecimal;
/**
*
*
* @ V3.2.0
* @ LINKAGE-BOOT
* @ LINKAGE-BOOT
* @ 2023-02-20
*/
@Data
public class PurchasementListVO{
/** 主键 */
private String id;
/** 单据编号 **/
@JsonProperty("documentno")
private String documentno;
/** 供应商名称 **/
@JsonProperty("suppliername")
private String suppliername;
/** 备注 **/
@JsonProperty("remark")
private String remark;
/** 驳回原因 **/
@JsonProperty("reason")
private String reason;
/** 结算状态 **/
@JsonProperty("status")
private String status;
/** 订单金额 **/
@JsonProperty("orderamount")
private Integer orderamount;
/** 采购订单数量 **/
@JsonProperty("ordernum")
private Integer ordernum;
/** 订单不含税金额 **/
@JsonProperty("ordernotamount")
private Integer ordernotamount;
/** 发票数量 **/
@JsonProperty("invoicenum")
private Integer invoicenum;
/** 发票金额 **/
@JsonProperty("invoiceamount")
private Integer invoiceamount;
/** 发票不含税金额 **/
@JsonProperty("invoicenotamount")
private Integer invoicenotamount;
/** 创建人id **/
@JsonProperty("creatorUserId")
private String creatorUserId;
/** 创建人名称 **/
@JsonProperty("creatorUserName")
private String creatorUserName;
/** 创建时间 **/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@JsonProperty("creatorTime")
private Date creatorTime;
/** 修改人id **/
@JsonProperty("lastModifyUserId")
private String lastModifyUserId;
/** 修改时间 **/
@JsonProperty("lastModifyTime")
private String lastModifyTime;
/** 组织id **/
@JsonProperty("orgnizeId")
private String orgnizeId;
/** 部门id **/
@JsonProperty("departmentId")
private String departmentId;
}

@ -0,0 +1,31 @@
package jnpf.purchasement.model.purchasement;
import lombok.Data;
import jnpf.base.Pagination;
import java.util.List;
/**
*
*
* @ V3.2.0
* @ LINKAGE-BOOT
* @ LINKAGE-BOOT
* @ 2023-02-20
*/
@Data
public class PurchasementPagination extends Pagination {
/** 单据编号 */
private String documentno;
/** 供应商名称 */
private String suppliername;
/** 创建人名称 */
private String creatorUserName;
/**
* id
*/
private String menuId;
}

@ -0,0 +1,32 @@
package jnpf.purchasement.model.purchasement;
import lombok.Data;
import jnpf.base.Pagination;
import java.util.*;
/**
*
*
* @ V3.2.0
* @ LINKAGE-BOOT
* @ LINKAGE-BOOT
* @ 2023-02-20
*/
@Data
public class PurchasementPaginationExportModel extends Pagination {
private String selectKey;
private String json;
private String dataType;
/** 单据编号 */
private String documentno;
/** 供应商名称 */
private String suppliername;
/** 创建人名称 */
private String creatorUserName;
}

@ -0,0 +1,120 @@
package jnpf.purchasement.model.purchasement;
import jnpf.purchasement.model.purchasement.Purchasement_item0Model;
import lombok.Data;
import java.util.List;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
*
*
* @ V3.2.0
* @ LINKAGE-BOOT
* @ LINKAGE-BOOT
* @ 2023-02-20
*/
@Data
public class PurchasementUpForm{
/** 主键 */
private String id;
/** 单据编号 **/
@JsonProperty("documentno")
private String documentno;
/** 供应商名称 **/
@JsonProperty("suppliername")
private String suppliername;
/** 备注 **/
@JsonProperty("remark")
private String remark;
/** 驳回原因 **/
@JsonProperty("reason")
private String reason;
/** 结算状态 **/
@JsonProperty("status")
private String status;
/** 订单金额 **/
@JsonProperty("orderamount")
private Integer orderamount;
/** 采购订单数量 **/
@JsonProperty("ordernum")
private Integer ordernum;
/** 订单不含税金额 **/
@JsonProperty("ordernotamount")
private Integer ordernotamount;
/** 发票数量 **/
@JsonProperty("invoicenum")
private Integer invoicenum;
/** 发票金额 **/
@JsonProperty("invoiceamount")
private Integer invoiceamount;
/** 发票不含税金额 **/
@JsonProperty("invoicenotamount")
private Integer invoicenotamount;
/** 创建人id **/
@JsonProperty("creatorUserId")
private String creatorUserId;
/** 创建人名称 **/
@JsonProperty("creatorUserName")
private String creatorUserName;
/** 创建时间 **/
@JsonProperty("creatorTime")
private String creatorTime;
/** 修改人id **/
@JsonProperty("lastModifyUserId")
private String lastModifyUserId;
/** 修改时间 **/
@JsonProperty("lastModifyTime")
private String lastModifyTime;
/** 组织id **/
@JsonProperty("orgnizeId")
private String orgnizeId;
/** 部门id **/
@JsonProperty("departmentId")
private String departmentId;
/** 子表数据 **/
@JsonProperty("purchasement_item0List")
private List<Purchasement_item0Model> purchasement_item0List;
}

@ -0,0 +1,26 @@
package jnpf.purchasement.model.purchasement;
import lombok.Data;
import java.util.List;
import java.util.Date;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.alibaba.fastjson.annotation.JSONField;
/**
*
*
* V3.2.0
* : LINKAGE-BOOT
* LINKAGE-BOOT
* 2023-02-20
*/
@Data
public class Purchasement_item0Model {
/** 采购订单 **/
@JsonProperty("purchaseorderId")
private String purchaseorderId;
}

@ -0,0 +1,37 @@
package jnpf.purchasement.service;
import jnpf.purchasement.entity.Purchasement_item0Entity;
import jnpf.purchasement.service.Purchasement_item0Service;
import jnpf.purchasement.entity.PurchasementEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.purchasement.model.purchasement.PurchasementPagination;
import java.util.*;
/**
*
* purchasement
* V3.2.0
* LINKAGE-BOOT
* LINKAGE-BOOT
* 2023-02-20
*/
public interface PurchasementService extends IService<PurchasementEntity> {
List<PurchasementEntity> getList(PurchasementPagination purchasementPagination);
List<PurchasementEntity> getTypeList(PurchasementPagination purchasementPagination,String dataType);
PurchasementEntity getInfo(String id);
void delete(PurchasementEntity entity);
void create(PurchasementEntity entity);
boolean update( String id, PurchasementEntity entity);
// 子表方法
List<Purchasement_item0Entity> GetPurchasement_item0List(String id);
//列表子表数据方法
}

@ -0,0 +1,15 @@
package jnpf.purchasement.service;
import jnpf.purchasement.entity.Purchasement_item0Entity;
import com.baomidou.mybatisplus.extension.service.IService;
/**
*
* jg_purchasement_item0
* V3.2.0
* LINKAGE-BOOT
* LINKAGE-BOOT
* 2023-02-20
*/
public interface Purchasement_item0Service extends IService<Purchasement_item0Entity> {
}

@ -0,0 +1,287 @@
package jnpf.purchasement.service.impl;
import jnpf.purchasement.entity.*;
import jnpf.purchasement.mapper.PurchasementMapper;
import jnpf.purchasement.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.util.RandomUtil;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.purchasement.model.purchasement.PurchasementPagination;
import jnpf.permission.service.AuthorizeService;
import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.stream.Collectors;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat;
import jnpf.util.*;
import java.util.*;
/**
*
* purchasement
* V3.2.0
* LINKAGE-BOOT
* LINKAGE-BOOT
* 2023-02-20
*/
@Service
public class PurchasementServiceImpl extends ServiceImpl<PurchasementMapper, PurchasementEntity> implements PurchasementService{
@Autowired
private UserProvider userProvider;
@Autowired
private AuthorizeService authorizeService;
@Autowired
private Purchasement_item0Service purchasement_item0Service;
@Override
public List<PurchasementEntity> getList(PurchasementPagination purchasementPagination){
String userId=userProvider.get().getUserId();
List<String> AllIdList =new ArrayList();
int total=0;
int purchasementNum =0;
QueryWrapper<PurchasementEntity> purchasementQueryWrapper=new QueryWrapper<>();
int purchasement_item0Num =0;
QueryWrapper<Purchasement_item0Entity> purchasement_item0QueryWrapper=new QueryWrapper<>();
boolean pcPermission = false;
boolean appPermission = false;
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
if(isPc && pcPermission){
if (!userProvider.get().getIsAdministrator()){
Object purchasementObj=authorizeService.getCondition(new AuthorizeConditionModel(purchasementQueryWrapper,purchasementPagination.getMenuId(),"purchasement"));
if (ObjectUtil.isEmpty(purchasementObj)){
return new ArrayList<>();
} else {
purchasementQueryWrapper = (QueryWrapper<PurchasementEntity>)purchasementObj;
purchasementNum++;
}
Object purchasement_item0Obj=authorizeService.getCondition(new AuthorizeConditionModel(purchasement_item0QueryWrapper,purchasementPagination.getMenuId(),"purchasement_item0"));
if (ObjectUtil.isEmpty(purchasement_item0Obj)){
return new ArrayList<>();
} else {
purchasement_item0QueryWrapper = (QueryWrapper<Purchasement_item0Entity>)purchasement_item0Obj;
purchasement_item0Num++;
}
}
}
if(!isPc && appPermission){
if (!userProvider.get().getIsAdministrator()){
Object purchasementObj=authorizeService.getCondition(new AuthorizeConditionModel(purchasementQueryWrapper,purchasementPagination.getMenuId(),"purchasement"));
if (ObjectUtil.isEmpty(purchasementObj)){
return new ArrayList<>();
} else {
purchasementQueryWrapper = (QueryWrapper<PurchasementEntity>)purchasementObj;
purchasementNum++;
}
Object purchasement_item0Obj=authorizeService.getCondition(new AuthorizeConditionModel(purchasement_item0QueryWrapper,purchasementPagination.getMenuId(),"purchasement_item0"));
if (ObjectUtil.isEmpty(purchasement_item0Obj)){
return new ArrayList<>();
} else {
purchasement_item0QueryWrapper = (QueryWrapper<Purchasement_item0Entity>)purchasement_item0Obj;
purchasement_item0Num++;
}
}
}
if(StringUtil.isNotEmpty(purchasementPagination.getDocumentno())){
purchasementNum++;
purchasementQueryWrapper.lambda().like(PurchasementEntity::getDocumentno,purchasementPagination.getDocumentno());
}
if(StringUtil.isNotEmpty(purchasementPagination.getSuppliername())){
purchasementNum++;
purchasementQueryWrapper.lambda().like(PurchasementEntity::getSuppliername,purchasementPagination.getSuppliername());
}
if(StringUtil.isNotEmpty(purchasementPagination.getCreatorUserName())){
purchasementNum++;
purchasementQueryWrapper.lambda().like(PurchasementEntity::getCreatorUserName,purchasementPagination.getCreatorUserName());
}
if(AllIdList.size()>0){
purchasementQueryWrapper.lambda().in(PurchasementEntity::getId, AllIdList);
}
//排序
if(StringUtil.isEmpty(purchasementPagination.getSidx())){
purchasementQueryWrapper.lambda().orderByDesc(PurchasementEntity::getCreatorTime);
}else{
try {
String sidx = purchasementPagination.getSidx();
PurchasementEntity purchasementEntity = new PurchasementEntity();
Field declaredField = purchasementEntity.getClass().getDeclaredField(sidx);
declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value();
purchasementQueryWrapper="asc".equals(purchasementPagination.getSort().toLowerCase())?purchasementQueryWrapper.orderByAsc(value):purchasementQueryWrapper.orderByDesc(value);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
if((total>0 && AllIdList.size()>0) || total==0){
Page<PurchasementEntity> page=new Page<>(purchasementPagination.getCurrentPage(), purchasementPagination.getPageSize());
IPage<PurchasementEntity> userIPage=this.page(page, purchasementQueryWrapper);
return purchasementPagination.setData(userIPage.getRecords(),userIPage.getTotal());
}else{
List<PurchasementEntity> list = new ArrayList();
return purchasementPagination.setData(list, list.size());
}
}
@Override
public List<PurchasementEntity> getTypeList(PurchasementPagination purchasementPagination,String dataType){
String userId=userProvider.get().getUserId();
List<String> AllIdList =new ArrayList();
int total=0;
int purchasementNum =0;
QueryWrapper<PurchasementEntity> purchasementQueryWrapper=new QueryWrapper<>();
int purchasement_item0Num =0;
QueryWrapper<Purchasement_item0Entity> purchasement_item0QueryWrapper=new QueryWrapper<>();
boolean pcPermission = false;
boolean appPermission = false;
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
if(isPc && pcPermission){
if (!userProvider.get().getIsAdministrator()){
Object purchasementObj=authorizeService.getCondition(new AuthorizeConditionModel(purchasementQueryWrapper,purchasementPagination.getMenuId(),"purchasement"));
if (ObjectUtil.isEmpty(purchasementObj)){
return new ArrayList<>();
} else {
purchasementQueryWrapper = (QueryWrapper<PurchasementEntity>)purchasementObj;
purchasementNum++;
}
Object purchasement_item0Obj=authorizeService.getCondition(new AuthorizeConditionModel(purchasement_item0QueryWrapper,purchasementPagination.getMenuId(),"purchasement_item0"));
if (ObjectUtil.isEmpty(purchasement_item0Obj)){
return new ArrayList<>();
} else {
purchasement_item0QueryWrapper = (QueryWrapper<Purchasement_item0Entity>)purchasement_item0Obj;
purchasement_item0Num++;
}
}
}
if(!isPc && appPermission){
if (!userProvider.get().getIsAdministrator()){
Object purchasementObj=authorizeService.getCondition(new AuthorizeConditionModel(purchasementQueryWrapper,purchasementPagination.getMenuId(),"purchasement"));
if (ObjectUtil.isEmpty(purchasementObj)){
return new ArrayList<>();
} else {
purchasementQueryWrapper = (QueryWrapper<PurchasementEntity>)purchasementObj;
purchasementNum++;
}
Object purchasement_item0Obj=authorizeService.getCondition(new AuthorizeConditionModel(purchasement_item0QueryWrapper,purchasementPagination.getMenuId(),"purchasement_item0"));
if (ObjectUtil.isEmpty(purchasement_item0Obj)){
return new ArrayList<>();
} else {
purchasement_item0QueryWrapper = (QueryWrapper<Purchasement_item0Entity>)purchasement_item0Obj;
purchasement_item0Num++;
}
}
}
if(StringUtil.isNotEmpty(purchasementPagination.getDocumentno())){
purchasementNum++;
purchasementQueryWrapper.lambda().like(PurchasementEntity::getDocumentno,purchasementPagination.getDocumentno());
}
if(StringUtil.isNotEmpty(purchasementPagination.getSuppliername())){
purchasementNum++;
purchasementQueryWrapper.lambda().like(PurchasementEntity::getSuppliername,purchasementPagination.getSuppliername());
}
if(StringUtil.isNotEmpty(purchasementPagination.getCreatorUserName())){
purchasementNum++;
purchasementQueryWrapper.lambda().like(PurchasementEntity::getCreatorUserName,purchasementPagination.getCreatorUserName());
}
if(AllIdList.size()>0){
purchasementQueryWrapper.lambda().in(PurchasementEntity::getId, AllIdList);
}
//排序
if(StringUtil.isEmpty(purchasementPagination.getSidx())){
purchasementQueryWrapper.lambda().orderByDesc(PurchasementEntity::getCreatorTime);
}else{
try {
String sidx = purchasementPagination.getSidx();
PurchasementEntity purchasementEntity = new PurchasementEntity();
Field declaredField = purchasementEntity.getClass().getDeclaredField(sidx);
declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value();
purchasementQueryWrapper="asc".equals(purchasementPagination.getSort().toLowerCase())?purchasementQueryWrapper.orderByAsc(value):purchasementQueryWrapper.orderByDesc(value);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
if("0".equals(dataType)){
if((total>0 && AllIdList.size()>0) || total==0){
Page<PurchasementEntity> page=new Page<>(purchasementPagination.getCurrentPage(), purchasementPagination.getPageSize());
IPage<PurchasementEntity> userIPage=this.page(page, purchasementQueryWrapper);
return purchasementPagination.setData(userIPage.getRecords(),userIPage.getTotal());
}else{
List<PurchasementEntity> list = new ArrayList();
return purchasementPagination.setData(list, list.size());
}
}else{
return this.list(purchasementQueryWrapper);
}
}
@Override
public PurchasementEntity getInfo(String id){
QueryWrapper<PurchasementEntity> queryWrapper=new QueryWrapper<>();
queryWrapper.lambda().eq(PurchasementEntity::getId,id);
return this.getOne(queryWrapper);
}
@Override
public void create(PurchasementEntity entity){
this.save(entity);
}
@Override
public boolean update(String id, PurchasementEntity entity){
entity.setId(id);
return this.updateById(entity);
}
@Override
public void delete(PurchasementEntity entity){
if(entity!=null){
this.removeById(entity.getId());
}
}
//子表方法
@Override
public List<Purchasement_item0Entity> GetPurchasement_item0List(String id){
QueryWrapper<Purchasement_item0Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Purchasement_item0Entity::getPurchasementId, id);
return purchasement_item0Service.list(queryWrapper);
}
//列表子表数据方法
}

@ -0,0 +1,41 @@
package jnpf.purchasement.service.impl;
import jnpf.purchasement.entity.*;
import jnpf.purchasement.mapper.Purchasement_item0Mapper;
import jnpf.purchasement.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.util.RandomUtil;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat;
import jnpf.util.*;
import java.util.*;
/**
*
* jg_purchasement_item0
* V3.2.0
* LINKAGE-BOOT
* LINKAGE-BOOT
* 2023-02-20
*/
@Service
public class Purchasement_item0ServiceImpl extends ServiceImpl<Purchasement_item0Mapper, Purchasement_item0Entity> implements Purchasement_item0Service{
}

@ -1,20 +1,42 @@
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.commons.lang3.StringUtils;
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 +63,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 +99,378 @@ 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, ParseException {
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);
JSONObject jsonObject = JSON.parseObject(result);
UploaderVO vo = uploaderVO(file, type);
JSONArray jsonArray = jsonObject.getJSONArray("words_result");
String TareWeight = "";
String CrossWeight = "";
String PlateNum = "";
String SendingCompany = "";
String DeliveryNumber = "";
String ReceivingCompany = "";
String PrintTime = "";
String NetWeight = "";
if (jsonArray.getJSONObject(0).getJSONArray("TareWeight")!=null && jsonArray.getJSONObject(0).getJSONArray("TareWeight").size()>0) {
TareWeight = jsonArray.getJSONObject(0).getJSONArray("TareWeight").getJSONObject(0).getString("word");
}
if (jsonArray.getJSONObject(0).getJSONArray("CrossWeight")!=null && jsonArray.getJSONObject(0).getJSONArray("CrossWeight").size()>0) {
CrossWeight = jsonArray.getJSONObject(0).getJSONArray("CrossWeight").getJSONObject(0).getString("word");
}
if (jsonArray.getJSONObject(0).getJSONArray("PlateNum")!=null && jsonArray.getJSONObject(0).getJSONArray("PlateNum").size()>0) {
PlateNum = jsonArray.getJSONObject(0).getJSONArray("PlateNum").getJSONObject(0).getString("word");
}
if (jsonArray.getJSONObject(0).getJSONArray("SendingCompany")!=null && jsonArray.getJSONObject(0).getJSONArray("SendingCompany").size()>0) {
SendingCompany = jsonArray.getJSONObject(0).getJSONArray("SendingCompany").getJSONObject(0).getString("word");
}
if (jsonArray.getJSONObject(0).getJSONArray("DeliveryNumber")!=null && jsonArray.getJSONObject(0).getJSONArray("DeliveryNumber").size()>0) {
DeliveryNumber = jsonArray.getJSONObject(0).getJSONArray("DeliveryNumber").getJSONObject(0).getString("word");
}
if (jsonArray.getJSONObject(0).getJSONArray("ReceivingCompany")!=null && jsonArray.getJSONObject(0).getJSONArray("ReceivingCompany").size()>0) {
ReceivingCompany = jsonArray.getJSONObject(0).getJSONArray("ReceivingCompany").getJSONObject(0).getString("word");
}
if (jsonArray.getJSONObject(0).getJSONArray("PrintTime")!=null && jsonArray.getJSONObject(0).getJSONArray("PrintTime").size()>0) {
PrintTime = jsonArray.getJSONObject(0).getJSONArray("PrintTime").getJSONObject(0).getString("word");
}
if (jsonArray.getJSONObject(0).getJSONArray("NetWeight")!=null && jsonArray.getJSONObject(0).getJSONArray("NetWeight").size()>0) {
NetWeight = jsonArray.getJSONObject(0).getJSONArray("NetWeight").getJSONObject(0).getString("word");
}
if (StringUtils.isNotEmpty(ReceivingCompany)) {
tradeuploadCrForm.setCustomerId(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 (StringUtils.isNotEmpty(PlateNum)) {
tradeuploadCrForm.setVehicleId(PlateNum);
tradeuploadCrForm.setVehicleName(PlateNum);
QueryWrapper<VehicleEntity> vehicleQueryWrapper = new QueryWrapper<>();
vehicleQueryWrapper.lambda().eq(VehicleEntity::getTicketno, PlateNum);
VehicleEntity vehicleEntity = vehicleService.getOne(vehicleQueryWrapper);
if (vehicleEntity != null) {
tradeuploadCrForm.setVehicleId(vehicleEntity.getId());
tradeuploadCrForm.setVehicleName(vehicleEntity.getTicketno());
tradeuploadCrForm.setVehiclePictures(vehicleEntity.getVehiclephotos());
}
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if(StringUtils.isNotEmpty(PrintTime) && PrintTime.length() == 10){
tradeuploadCrForm.setPoundDate(sdf.parse(PrintTime));
}else{
tradeuploadCrForm.setPoundDate(new Date());
}
if (StringUtils.isEmpty(DeliveryNumber)) {
tradeuploadCrForm.setPoundlistNo(String.valueOf(new Date()));
}else {
tradeuploadCrForm.setPoundlistNo(DeliveryNumber);
}
if (StringUtils.isNotEmpty(TareWeight)) {
tradeuploadCrForm.setTareWeight(TareWeight);
}
if (StringUtils.isNotEmpty(CrossWeight)) {
tradeuploadCrForm.setGrossWeight(CrossWeight);
}
if (StringUtils.isEmpty(NetWeight)) {
tradeuploadCrForm.setBuckleWeight("0");
}else {
tradeuploadCrForm.setBuckleWeight(NetWeight);
}
if (StringUtils.isNotEmpty(NetWeight)) {
tradeuploadCrForm.setNetWeight(NetWeight);
}
UserInfo userInfo = userProvider.get();
tradeuploadCrForm.setBusinessId(userInfo.getId());
tradeuploadCrForm.setBusinessName(userInfo.getUserName());
tradeuploadCrForm.setVo(vo);
return ActionResult.success(tradeuploadCrForm);
// 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");
// }
// Map<String, String> params = new HashMap<>();
// if(array != null && array.size() > 0){
// JSONObject object1 = array.getJSONObject(0);
// 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());
// }
// String printTime = String.valueOf(map1.get("PrintTime"));
// //String sdf = "yyyy-MM-dd" ;
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// if(printTime != null && printTime.length() == 10){
// tradeuploadCrForm.setPoundDate(sdf.parse(printTime));
// }else{
// tradeuploadCrForm.setPoundDate(new Date());
// }
// 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());
// }
// 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());
}
//tradeuploadCrForm.setPoundDate(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 +486,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<>();
@ -96,8 +494,8 @@ public class TradeuploadController {
Map<String,Object> vehicleIdMap = new HashMap<>(); Map<String,Object> vehicleIdMap = new HashMap<>();
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> businessIdMap = new HashMap<>();
entity.setCreatorUserName(generaterSwapUtil.getPopupSelectValue("ebcc44be142e43b795c0d769abd6d25a","F_RealName","F_RealName",entity.getCreatorUserName(),creatorUserNameMap)); entity.setBusinessId(generaterSwapUtil.getPopupSelectValue("ebcc44be142e43b795c0d769abd6d25a","F_Id","F_RealName",entity.getBusinessId(),businessIdMap));
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 +525,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);
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){
return ActionResult.fail("磅单重复");
}
entity.setId(mainId); entity.setId(mainId);
tradeuploadService.save(entity); tradeuploadService.save(entity);
return ActionResult.success("创建成功"); return ActionResult.success("创建成功");
} }
@ -171,7 +574,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<>();
@ -179,8 +582,8 @@ public class TradeuploadController {
Map<String,Object> vehicleIdMap = new HashMap<>(); Map<String,Object> vehicleIdMap = new HashMap<>();
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> businessIdMap = new HashMap<>();
entity.setCreatorUserName(generaterSwapUtil.getPopupSelectValue("ebcc44be142e43b795c0d769abd6d25a","F_RealName","F_RealName",entity.getCreatorUserName(),creatorUserNameMap)); entity.setBusinessId(generaterSwapUtil.getPopupSelectValue("ebcc44be142e43b795c0d769abd6d25a","F_Id","F_RealName",entity.getBusinessId(),businessIdMap));
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));
} }
@ -253,8 +656,8 @@ public class TradeuploadController {
case "salesPrice" : case "salesPrice" :
entitys.add(new ExcelExportEntity("销售价格" ,"salesPrice")); entitys.add(new ExcelExportEntity("销售价格" ,"salesPrice"));
break; break;
case "creatorUserName" : case "businessId" :
entitys.add(new ExcelExportEntity("业务员" ,"creatorUserName")); entitys.add(new ExcelExportEntity("业务员" ,"businessId"));
break; break;
case "naturalId" : case "naturalId" :
entitys.add(new ExcelExportEntity("自然人" ,"naturalId")); entitys.add(new ExcelExportEntity("自然人" ,"naturalId"));
@ -355,7 +758,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<>();
@ -363,8 +766,8 @@ public class TradeuploadController {
Map<String,Object> vehicleIdMap = new HashMap<>(); Map<String,Object> vehicleIdMap = new HashMap<>();
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> businessIdMap = 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(),businessIdMap));
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 +791,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{

@ -186,4 +186,5 @@ public class TradeuploadEntity {
@TableField("IS_EXPENSE") @TableField("IS_EXPENSE")
private String isExpense; private String isExpense;
} }

@ -4,6 +4,8 @@ package jnpf.tradeupload.mapper;
import jnpf.tradeupload.entity.TradeuploadEntity; import jnpf.tradeupload.entity.TradeuploadEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/** /**
* *
* tradeupload * tradeupload
@ -13,5 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* 2023-02-16 * 2023-02-16
*/ */
public interface TradeuploadMapper extends BaseMapper<TradeuploadEntity> { public interface TradeuploadMapper extends BaseMapper<TradeuploadEntity> {
List<TradeuploadEntity> queryVehicle(TradeuploadEntity tradeuploadEntity);
} }

@ -2,7 +2,11 @@
package jnpf.tradeupload.model.tradeupload; package jnpf.tradeupload.model.tradeupload;
import com.baomidou.mybatisplus.annotation.TableField;
import jnpf.model.UploaderVO;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
@ -19,6 +23,10 @@ import com.fasterxml.jackson.annotation.JsonProperty;
@Data @Data
public class TradeuploadCrForm { public class TradeuploadCrForm {
/** 磅单上传 **/
@JsonProperty("id")
private String id;
/** 磅单上传 **/ /** 磅单上传 **/
@JsonProperty("poundPictures") @JsonProperty("poundPictures")
private String poundPictures; private String poundPictures;
@ -35,17 +43,25 @@ public class TradeuploadCrForm {
@JsonProperty("salesId") @JsonProperty("salesId")
private String salesId; private String salesId;
/** 销售合同 **/
@JsonProperty("salesName")
private String salesName;
/** 车牌号 **/ /** 车牌号 **/
@JsonProperty("vehicleId") @JsonProperty("vehicleId")
private String vehicleId; private String vehicleId;
/** 车牌号 **/
@JsonProperty("vehicleName")
private String vehicleName;
/** 车辆图片 **/ /** 车辆图片 **/
@JsonProperty("vehiclePictures") @JsonProperty("vehiclePictures")
private String vehiclePictures; private String vehiclePictures;
/** 磅单时间 **/ /** 磅单时间 **/
@JsonProperty("poundDate") @JsonProperty("poundDate")
private Long poundDate; private Date poundDate;
/** 磅单号 **/ /** 磅单号 **/
@JsonProperty("poundlistNo") @JsonProperty("poundlistNo")
@ -88,8 +104,12 @@ public class TradeuploadCrForm {
private String salesPrice; private String salesPrice;
/** 业务员 **/ /** 业务员 **/
@JsonProperty("creatorUserName") @JsonProperty("businessId")
private String creatorUserName; private String businessId;
/** 业务员 **/
@JsonProperty("businessName")
private String businessName;
/** 自然人 **/ /** 自然人 **/
@JsonProperty("naturalId") @JsonProperty("naturalId")
@ -103,6 +123,18 @@ public class TradeuploadCrForm {
@JsonProperty("creatorTime") @JsonProperty("creatorTime")
private String creatorTime; private String creatorTime;
/** 客户ID **/
@TableField(exist = false)
private String clientId;
/** 客户名称 **/
@JsonProperty("customerName")
private String customerName;
/** 备注 **/
@JsonProperty("vo")
private UploaderVO vo;
} }

@ -92,8 +92,8 @@ public class TradeuploadInfoVO{
private String salesPrice; private String salesPrice;
/** 业务员 **/ /** 业务员 **/
@JsonProperty("creatorUserName") @JsonProperty("businessId")
private String creatorUserName; private String businessId;
/** 自然人 **/ /** 自然人 **/
@JsonProperty("naturalId") @JsonProperty("naturalId")

@ -111,8 +111,8 @@ public class TradeuploadListVO{
/** 业务员 **/ /** 业务员 **/
@JsonProperty("creatorUserName") @JsonProperty("businessId")
private String creatorUserName; private String businessId;
/** 自然人 **/ /** 自然人 **/

@ -109,8 +109,8 @@ public class TradeuploadUpForm{
/** 业务员 **/ /** 业务员 **/
@JsonProperty("creatorUserName") @JsonProperty("businessId")
private String creatorUserName; private String businessId;
/** 自然人 **/ /** 自然人 **/

@ -28,6 +28,8 @@ public interface TradeuploadService extends IService<TradeuploadEntity> {
boolean update(String id, TradeuploadEntity entity); boolean update(String id, TradeuploadEntity entity);
List<TradeuploadEntity> queryVehicleInfo(TradeuploadEntity tradeuploadEntity);
// 子表方法 // 子表方法
//列表子表数据方法 //列表子表数据方法

@ -30,6 +30,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import jnpf.util.*; import jnpf.util.*;
import javax.annotation.Resource;
import java.util.*; import java.util.*;
/** /**
@ -50,6 +52,9 @@ public class TradeuploadServiceImpl extends ServiceImpl<TradeuploadMapper, Trade
@Autowired @Autowired
private AuthorizeService authorizeService; private AuthorizeService authorizeService;
@Resource
private TradeuploadMapper tradeuploadMapper;
@ -61,6 +66,8 @@ public class TradeuploadServiceImpl extends ServiceImpl<TradeuploadMapper, Trade
int total=0; int total=0;
int tradeuploadNum =0; int tradeuploadNum =0;
QueryWrapper<TradeuploadEntity> tradeuploadQueryWrapper=new QueryWrapper<>(); QueryWrapper<TradeuploadEntity> tradeuploadQueryWrapper=new QueryWrapper<>();
tradeuploadQueryWrapper.lambda().eq(TradeuploadEntity::getIsExamine,"0");
tradeuploadQueryWrapper.lambda().eq(TradeuploadEntity::getPoundType,"0");
boolean pcPermission = false; boolean pcPermission = false;
boolean appPermission = false; boolean appPermission = false;
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc"); boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
@ -230,6 +237,12 @@ public class TradeuploadServiceImpl extends ServiceImpl<TradeuploadMapper, Trade
entity.setId(id); entity.setId(id);
return this.updateById(entity); return this.updateById(entity);
} }
@Override
public List<TradeuploadEntity> queryVehicleInfo(TradeuploadEntity tradeuploadEntity) {
return tradeuploadMapper.queryVehicle(tradeuploadEntity) ;
}
@Override @Override
public void delete(TradeuploadEntity entity){ public void delete(TradeuploadEntity entity){
if(entity!=null){ if(entity!=null){

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="jnpf.purchasement.mapper.PurchasementMapper">
</mapper>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="jnpf.purchasement.mapper.Purchasement_item0Mapper">
</mapper>

@ -2,6 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="jnpf.tradeupload.mapper.TradeuploadMapper"> <mapper namespace="jnpf.tradeupload.mapper.TradeuploadMapper">
<select id="queryVehicle" resultType="jnpf.tradeupload.entity.TradeuploadEntity">
select
*
from
jg_poundlist
where
vehicle_id = #{vehicleId} and
gross_weight = #{grossWeight} and
tare_weight = #{tareWeight} and
net_weight = #{netWeight} and
creator_time = DATE_SUB(NOW(),interval 15 day)
</select>
</mapper> </mapper>

21429
SC-web/package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -22,13 +22,13 @@
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()"> <!-- <el-button type="text" icon="el-icon-download" @click="exportData()">-->
</el-button> <!-- </el-button>-->
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()"> <!-- <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">-->
</el-button> <!-- </el-button>-->
<el-button type="text" icon="el-icon-plus" @click="1"> <el-button type="text" icon="el-icon-plus" @click="1">
</el-button> </el-button>
<el-button type="text" icon="el-icon-plus" @click="1"> <el-button type="text" icon="el-icon-plus" @click="1">
</el-button> </el-button>
<el-button type="text" icon="el-icon-plus" @click="1"> <el-button type="text" icon="el-icon-plus" @click="1">
</el-button> </el-button>
@ -81,17 +81,17 @@
<el-table-column prop="creatorUserName" label="制单人" width="120" sortable align="center" <el-table-column prop="creatorUserName" label="制单人" width="120" sortable align="center"
/> />
<el-table-column label="操作" fixed="right" <el-table-column label="操作" fixed="right" align="center"
width="150"> width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" <el-button type="text"
@click="addOrUpdateHandle(scope.row.id)">编辑 @click="addOrUpdateHandle(scope.row.id)">编辑
</el-button> </el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> <!-- <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">-->
</el-button> <!-- </el-button>-->
<el-button type="text" <!-- <el-button type="text"-->
@click="goDetail(scope.row.id)">详情 <!-- @click="goDetail(scope.row.id)">详情-->
</el-button> <!-- </el-button>-->
<el-button type="text" <el-button type="text"
@click="goDetail">撤回申请 @click="goDetail">撤回申请
</el-button> </el-button>

@ -404,6 +404,15 @@
data[key] = ""; data[key] = "";
} }
} }
// request({
// url: '/api/collection/Collection/autoCreate',
// method: 'get'
// }).then(res => {
// debugger
// this.dataForm.documentNo = res.msg
// debugger
// this.loading = false
// });
}, },
init(id, isDetail) { init(id, isDetail) {
this.dataForm.id = id || 0; this.dataForm.id = id || 0;

@ -79,6 +79,12 @@
</el-button> </el-button>
<el-button type="text" @click="goDetail(scope.row.id)"> <el-button type="text" @click="goDetail(scope.row.id)">
</el-button> </el-button>
<el-button type="text" @click="">撤回申请</el-button>
<el-button type="text" @click="">审核</el-button>
<el-button type="text" @click="">弃审</el-button>
<el-button type="text" @click="">提交</el-button>
</template> </template>
</el-table-column> </el-table-column>
</JNPF-table> </JNPF-table>
@ -349,7 +355,20 @@
}) })
return return
} }
let id = this.multipleSelection.join() let ids = this.multipleSelection.join()
if (this.multipleSelection.length === 1) {
let info = {}
info = this.list.find(function(info) {
return info.id == ids
})
if (info.status != 2) {
this.$message({
type: 'error',
message: '审核中,请先通过审核',
duration: 1500
})
return
}
let param = {}; let param = {};
param = this.list.find(function(param) { param = this.list.find(function(param) {
debugger debugger
@ -368,6 +387,14 @@
} }
}); });
}) })
if (this.multipleSelection.length > 1) {
this.$message({
type: 'error',
message: '请选择单条数据',
duration: 1500
})
}
}
}, },
addOrUpdateHandle(id, isDetail) { addOrUpdateHandle(id, isDetail) {
this.formVisible = true this.formVisible = true

@ -430,24 +430,24 @@
contractTypeOptions: [{ contractTypeOptions: [{
"fullName": "采购合同", "fullName": "采购合同",
"id": "1" "id": "0"
}, { }, {
"fullName": "销售合同", "fullName": "销售合同",
"id": "2" "id": "1"
}, },
{ {
"fullName": "租赁合同", "fullName": "租赁合同",
"id": "3" "id": "2"
}, { }, {
"fullName": "仓储合同", "fullName": "仓储合同",
"id": "4" "id": "3"
}, { }, {
"fullName": "运输合同", "fullName": "运输合同",
"id": "5" "id": "4"
}, },
{ {
"fullName": "施工合同", "fullName": "施工合同",
"id": "6" "id": "5"
} }
], ],
rateOptions:[ rateOptions:[

@ -25,8 +25,8 @@
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<!-- <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">--> <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">
<!-- </el-button>--> </el-button>
<!-- <el-button type="text" icon="=el-icon-detail" @click="goDetail(scope.row.id)">--> <!-- <el-button type="text" icon="=el-icon-detail" @click="goDetail(scope.row.id)">-->
<!-- </el-button>--> <!-- </el-button>-->
<el-button type="text" icon="el-icon-download" @click="exportData()"> <el-button type="text" icon="el-icon-download" @click="exportData()">

@ -2,7 +2,7 @@
<el-dialog title="详情" <el-dialog title="详情"
:close-on-click-modal="false" append-to-body :close-on-click-modal="false" append-to-body
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll
width="600px"> width="1000px">
<el-row :gutter="15" class=""> <el-row :gutter="15" class="">
<el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" > <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" >
<template v-if="!loading"> <template v-if="!loading">

@ -20,11 +20,11 @@
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <!-- <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">-->
</el-button> <!-- </el-button>-->
<el-button type="text" icon="el-icon-download" @click="">编辑 <el-button type="text" icon="el-icon-download" @click="">编辑
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="">查看 <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="">审核 <el-button type="text" icon="el-icon-download" @click="">审核
</el-button> </el-button>
@ -33,8 +33,6 @@
<el-button type="text" icon="el-icon-download" @click="">提交 <el-button type="text" icon="el-icon-download" @click="">提交
</el-button> </el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
@ -51,6 +49,8 @@
/> />
<el-table-column prop="documentNo" label="单据编号" width="200" align="center" fixed="left" sortable <el-table-column prop="documentNo" label="单据编号" width="200" align="center" fixed="left" sortable
/> />
<el-table-column prop="purchaseorderId" label="采购订单号" width="200" align="center" fixed="left" sortable
/>
<el-table-column prop="amount" label="金额" width="150" align="center" sortable <el-table-column prop="amount" label="金额" width="150" align="center" sortable
/> />
<el-table-column prop="quantity" label="数量" width="120" align="center" sortable <el-table-column prop="quantity" label="数量" width="120" align="center" sortable
@ -70,7 +70,10 @@
{{ scope.row.invoiceType | dynamicText(invoiceTypeOptions) }} {{ scope.row.invoiceType | dynamicText(invoiceTypeOptions) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="contractId" label="合同名称" width="120" align="center" sortable
/>
<el-table-column prop="supplierId" label="供应商" width="200" align="center" sortable
/>
<el-table-column label="单据状态" width="120" sortable prop="status" align="center"> <el-table-column label="单据状态" width="120" sortable prop="status" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.status | dynamicText(statusOptions) }} {{ scope.row.status | dynamicText(statusOptions) }}
@ -79,17 +82,17 @@
<el-table-column prop="creatorUserName" label="制单人" width="120" align="center" sortable <el-table-column prop="creatorUserName" label="制单人" width="120" align="center" sortable
/> />
<el-table-column label="操作" fixed="right" <el-table-column label="操作" fixed="right" align="center"
width="200"> width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" <el-button type="text"
@click="addOrUpdateHandle(scope.row.id)">编辑 @click="addOrUpdateHandle(scope.row.id)">编辑
</el-button> </el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> <!-- <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">-->
</el-button> <!-- </el-button>-->
<el-button type="text" <!-- <el-button type="text"-->
@click="goDetail(scope.row.id)">详情 <!-- @click="goDetail(scope.row.id)">详情-->
</el-button> <!-- </el-button>-->
<el-button type="text" <el-button type="text"
@click="">撤回申请 @click="">撤回申请

@ -98,7 +98,7 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-tabs v-model="activeivpzpd" tab-position="top" class="mb-20"> <el-tabs v-model="activeivpzpd" tab-position="top" class="mb-20">
<el-tab-pane label="Tab 1"> <el-tab-pane label="申请明细">
<el-col :span="24" > <el-col :span="24" >
<el-form-item label-width="0"> <el-form-item label-width="0">
<div class="JNPF-common-title"> <div class="JNPF-common-title">

@ -126,7 +126,7 @@
<div class="JNPF-common-title"> <div class="JNPF-common-title">
<h2></h2> <h2></h2>
</div> </div>
<el-table :data="dataForm.payment_item0List" size='mini' show-summary> <el-table :data="dataForm.payment_item0List" size='mini' show-summary :summary-method="getSummaries" >
<el-table-column type="index" width="50" label="序号" align="center" /> <el-table-column type="index" width="50" label="序号" align="center" />
<el-table-column prop="amount" label="付款金额" align="center" > <el-table-column prop="amount" label="付款金额" align="center" >
<template slot-scope="scope"> <template slot-scope="scope">
@ -243,6 +243,7 @@
props: [], props: [],
data() { data() {
return { return {
excludeFields: [],
visible: false, visible: false,
loading: false, loading: false,
isDetail: false, isDetail: false,
@ -336,7 +337,15 @@
} }
}, },
computed: {}, computed: {},
watch: {}, watch: {
dataForm: {
deep: true,
handler: function() {
this.popupSelect()
}
}
},
created() {}, created() {},
mounted() {}, mounted() {},
methods: { methods: {
@ -349,7 +358,7 @@
return; return;
} }
const values = data.map(item => Number(item[column.property])); const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) { if (!values.every(value => isNaN(value)) && (index === 1 || index === 2 || index === 5 || index === 6|| index === 7|| index === 8 )) {
sums[index] = values.reduce((prev, curr) => { sums[index] = values.reduce((prev, curr) => {
const value = Number(curr); const value = Number(curr);
if (!isNaN(value)) { if (!isNaN(value)) {
@ -365,6 +374,15 @@
return sums; return sums;
}, },
popupSelect() {
let amount = 0
for (let i = 0; i < this.dataForm.payment_item0List.length; i++) {
amount = amount + parseFloat(this.dataForm.payment_item0List[i].amount);
}
parseFloat(this.dataForm.paymentamount = amount)
},
payment_item0Exist() { payment_item0Exist() {
let isOk = true; let isOk = true;
for (let i = 0; i < this.dataForm.payment_item0List.length; i++) { for (let i = 0; i < this.dataForm.payment_item0List.length; i++) {

@ -80,6 +80,10 @@
</el-button> </el-button>
<el-button type="text" @click="goDetail(scope.row.id)"> <el-button type="text" @click="goDetail(scope.row.id)">
</el-button> </el-button>
<el-button type="text" @click="">撤回申请</el-button>
<el-button type="text" @click="">审核</el-button>
<el-button type="text" @click="">弃审</el-button>
<el-button type="text" @click="">提交</el-button>
</template> </template>
</el-table-column> </el-table-column>
</JNPF-table> </JNPF-table>
@ -355,6 +359,19 @@
return return
} }
let id = this.multipleSelection.join() let id = this.multipleSelection.join()
if (this.multipleSelection.length === 1) {
let info = {}
info = this.list.find(function(info) {
return info.id == id
})
if (info.status != 2) {
this.$message({
type: 'error',
message: '审核中,请先通过审核',
duration: 1500
})
return
}
let param = {}; let param = {};
param = this.list.find(function(param) { param = this.list.find(function(param) {
debugger debugger
@ -373,6 +390,14 @@
} }
}); });
}) })
}
if (this.multipleSelection.length > 1) {
this.$message({
type: 'error',
message: '请选择单条数据',
duration: 1500
})
}
}, },
addOrUpdateHandle(id, isDetail) { addOrUpdateHandle(id, isDetail) {
this.formVisible = true this.formVisible = true

@ -118,35 +118,35 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <!-- <el-col :span="8">-->
<el-form-item label="付款金额" <!-- <el-form-item label="付款金额"-->
prop="paymentAmount"> <!-- prop="paymentAmount">-->
<el-input v-model="dataForm.paymentAmount" <!-- <el-input v-model="dataForm.paymentAmount"-->
placeholder="请输入" clearable :style='{"width":"100%"}'> <!-- placeholder="请输入" clearable :style='{"width":"100%"}'>-->
</el-input> <!-- </el-input>-->
</el-form-item> <!-- </el-form-item>-->
</el-col> <!-- </el-col>-->
<el-col :span="8"> <!-- <el-col :span="8">-->
<el-form-item label="未付款金额" <!-- <el-form-item label="未付款金额"-->
prop="unpaymentAmount"> <!-- prop="unpaymentAmount">-->
<el-input v-model="dataForm.unpaymentAmount" <!-- <el-input v-model="dataForm.unpaymentAmount"-->
placeholder="请输入" clearable :style='{"width":"100%"}'> <!-- placeholder="请输入" clearable :style='{"width":"100%"}'>-->
</el-input> <!-- </el-input>-->
</el-form-item> <!-- </el-form-item>-->
</el-col> <!-- </el-col>-->
<el-col :span="8"> <!-- <el-col :span="8">-->
<el-form-item label="单据状态 " <!-- <el-form-item label="单据状态 "-->
prop="status"> <!-- prop="status">-->
<el-select v-model="dataForm.status" <!-- <el-select v-model="dataForm.status"-->
placeholder="请选择" clearable :style='{"width":"100%"}'> <!-- placeholder="请选择" clearable :style='{"width":"100%"}'>-->
<el-option v-for="(item, index) in statusOptions" :key="index" :label="item.fullName" :value="item.id" <!-- <el-option v-for="(item, index) in statusOptions" :key="index" :label="item.fullName" :value="item.id"-->
:disabled="item.disabled"></el-option> <!-- :disabled="item.disabled"></el-option>-->
</el-select> <!-- </el-select>-->
</el-form-item> <!-- </el-form-item>-->
</el-col> <!-- </el-col>-->
<el-col :span="24"> <el-col :span="24">
<el-tabs v-model="activeshpeyb" tab-position="top" class="mb-20"> <el-tabs v-model="activeshpeyb" tab-position="top" class="mb-20">
<el-tab-pane label="申请明细"> <el-tab-pane label="申请明细">

@ -33,18 +33,17 @@
<el-button type="text" icon="el-icon-check" @click="addOrUpdateHandle(scope.row.id)"> <el-button type="text" icon="el-icon-check" @click="addOrUpdateHandle(scope.row.id)">
</el-button> </el-button>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <!-- <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">-->
</el-button> <!-- </el-button>-->
<el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button>
<el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()"> <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">
</el-button> </el-button>
<!-- <el-button type="text" icon="el-icon-download" @click="exportData()">-->
<!-- </el-button>-->
<el-button type="text" icon="el-icon-check" @click="3"> <el-button type="text" icon="el-icon-check" @click="3">
</el-button> </el-button>
<el-button type="text" icon="el-icon-close" @click="3"> <el-button type="text" icon="el-icon-close" @click="3">
</el-button> </el-button>
<el-button type="text" icon="el-icon-check" size="medium" @click="paymentapply()">
<el-button type="success" size="medium" @click="paymentapply()">
</el-button> </el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
@ -104,7 +103,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="creatorUserName" label="制单人" width="100" align="center"sortable <el-table-column prop="creatorUserName" label="制单人" width="100" align="center"sortable
/> />
<el-table-column label="操作" fixed="right" <el-table-column label="操作" fixed="right" align="center"
width="200"> width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="addOrUpdateHandle(scope.row.id)"> <el-button type="text" @click="addOrUpdateHandle(scope.row.id)">

@ -2,7 +2,7 @@
<el-dialog title="详情" <el-dialog title="详情"
:close-on-click-modal="false" append-to-body :close-on-click-modal="false" append-to-body
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll
width="600px"> width="1000px">
<el-row :gutter="15" class=""> <el-row :gutter="15" class="">
<el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" > <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" >
<template v-if="!loading"> <template v-if="!loading">
@ -71,9 +71,9 @@
<el-tab-pane label="磅单明细"> <el-tab-pane label="磅单明细">
<el-col :span="24" > <el-col :span="24" >
<el-form-item label-width="0"> <el-form-item label-width="0">
<div class="JNPF-common-title"> <!-- <div class="JNPF-common-title">-->
<h2>设计子表</h2> <!-- <h2>设计子表</h2>-->
</div> <!-- </div>-->
<el-table :data="dataForm.receiptout_item0List" size='mini' > <el-table :data="dataForm.receiptout_item0List" size='mini' >
<el-table-column type="index" width="50" label="序号" align="center" /> <el-table-column type="index" width="50" label="序号" align="center" />
<el-table-column prop="licenseNo" label="车牌号"> <el-table-column prop="licenseNo" label="车牌号">

@ -116,8 +116,8 @@
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12" >
<el-form-item label="业务员" <el-form-item label="业务员"
prop="creatorUserName" > prop="businessId" >
<p>{{dataForm.creatorUserName}}</p> <p>{{dataForm.businessId}}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" > <el-col :span="12" >
@ -178,7 +178,7 @@
advance : "0", advance : "0",
transportPrice : 0, transportPrice : 0,
salesPrice : '', salesPrice : '',
creatorUserName : "", businessId : "",
naturalId : "", naturalId : "",
remark : '', remark : '',
creatorTime : "", creatorTime : "",

@ -1,211 +1,159 @@
<template> <template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:close-on-click-modal="false" append-to-body :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1500px">
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll
width="1000px">
<el-row :gutter="15" class=""> <el-row :gutter="15" class="">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right"> <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right">
<template v-if="!loading"> <template v-if="!loading">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="磅单上传" <el-form-item label="磅单上传" prop="poundPictures">
prop="poundPictures" > <el-upload class="avatar-uploader" :action="action" :show-file-list="false"
<JNPF-UploadImg v-model="dataForm.poundPictures" :on-success="handleAvatarSuccess">
:fileSize="500" sizeUnit="MB" :limit="9" buttonText="点击上传" > <img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</JNPF-UploadImg> </el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="物料名称" <el-form-item label="物料名称" prop="materialId">
prop="materialId" > <popupSelect v-model="dataForm.materialId" placeholder="请选择物料编码" clearable field="materialId"
<popupSelect v-model="dataForm.materialId" interfaceId="381037852907038533" :columnOptions="materialIdcolumnOptions" propsValue="id"
placeholder="请选择物料编码" clearable field="materialId" interfaceId="381037852907038533" :columnOptions="materialIdcolumnOptions" propsValue="id" relationField="description" popupType="dialog" relationField="item_name" popupType="dialog" popupTitle="选择数据" popupWidth="800px" hasPage
popupTitle="选择数据" popupWidth="800px" :pageSize="20">
hasPage :pageSize="20" >
</popupSelect> </popupSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="客户名称" <el-form-item label="客户名称" prop="customerId">
prop="customerId" > <popupSelect v-model="dataForm.customerId" placeholder="请选择客户" clearable field="customerId"
<popupSelect v-model="dataForm.customerId" interfaceId="395936123471343749" :columnOptions="customerIdcolumnOptions" propsValue="id"
placeholder="请选择客户" clearable field="customerId" interfaceId="395936123471343749" :columnOptions="customerIdcolumnOptions" propsValue="id" relationField="supplier_nm" popupType="dialog" relationField="supplier_nm" popupType="dialog" popupTitle="选择数据" popupWidth="800px" hasPage
popupTitle="选择数据" popupWidth="800px" :pageSize="20" @change="customerSelect">
hasPage :pageSize="20" >
</popupSelect> </popupSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="销售合同" <el-form-item label="销售合同" prop="salesId">
prop="salesId" > <popupSelect v-model="dataForm.salesId" placeholder="请选择合同" clearable field="salesId"
<popupSelect v-model="dataForm.salesId" interfaceId="396203872441416837" :columnOptions="salesIdcolumnOptions" propsValue="id"
placeholder="请选择合同" clearable field="salesId" interfaceId="381037852907038533" :columnOptions="salesIdcolumnOptions" propsValue="id" relationField="contract_name" popupType="dialog" relationField="contract_name" popupType="dialog" popupTitle="选择数据" popupWidth="800px" :bissId="dataForm.customerId"
popupTitle="选择数据" popupWidth="800px"
hasPage :pageSize="20"> hasPage :pageSize="20">
</popupSelect> </popupSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="车牌号" <el-form-item label="车牌号" prop="vehicleId">
prop="vehicleId" > <popupSelect v-model="dataForm.vehicleId" placeholder="请选择车辆" clearable field="vehicleId"
<popupSelect v-model="dataForm.vehicleId" interfaceId="381432451370615173" :columnOptions="vehicleIdcolumnOptions" propsValue="id"
placeholder="请选择车辆" clearable field="vehicleId" interfaceId="381432451370615173" :columnOptions="vehicleIdcolumnOptions" propsValue="id" relationField="ticketno" popupType="dialog" relationField="ticketno" popupType="dialog" popupTitle="选择数据" popupWidth="800px" @change="changePicture"
popupTitle="选择数据" popupWidth="800px"
hasPage :pageSize="20"> hasPage :pageSize="20">
</popupSelect> </popupSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="车辆图片" <el-form-item label="车辆图片" prop="vehiclePictures">
prop="vehiclePictures" > <JNPF-UploadImg v-model="dataForm.vehiclePictures" :fileSize="500" sizeUnit="MB" :limit="9">
<JNPF-UploadImg v-model="dataForm.vehiclePictures"
:fileSize="500" sizeUnit="MB" :limit="9" >
</JNPF-UploadImg> </JNPF-UploadImg>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="磅单时间" <el-form-item label="磅单时间" prop="poundDate">
prop="poundDate" > <el-date-picker v-model="dataForm.poundDate" placeholder="请选择" clearable :style='{"width":"100%"}'
<el-date-picker v-model="dataForm.poundDate" type="date" format="yyyy-MM-dd" value-format="timestamp">
placeholder="请选择" clearable :style='{"width":"100%"}' type="date" format="yyyy-MM-dd" value-format="timestamp" >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="磅单号" <el-form-item label="磅单号" prop="poundlistNo">
prop="poundlistNo" > <el-input v-model="dataForm.poundlistNo" placeholder="请输入" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.poundlistNo"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="皮重" <el-form-item label="皮重" prop="tareWeight">
prop="tareWeight" > <el-input-number v-model="dataForm.tareWeight" :style='{"width":"100%"}'></el-input-number>
<el-input v-model="dataForm.tareWeight"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="毛重" <el-form-item label="毛重" prop="grossWeight">
prop="grossWeight" > <el-input-number v-model="dataForm.grossWeight" :style='{"width":"100%"}'></el-input-number>
<el-input v-model="dataForm.grossWeight"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="扣重" <el-form-item label="扣重" prop="buckleWeight">
prop="buckleWeight" > <el-input-number v-model="dataForm.buckleWeight" :style='{"width":"100%"}'></el-input-number>
<el-input v-model="dataForm.buckleWeight"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="净重" <el-form-item label="净重" prop="netWeight">
prop="netWeight" > <el-input-number v-model="dataForm.netWeight" :style='{"width":"100%"}'></el-input-number>
<el-input v-model="dataForm.netWeight"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="单位 " <el-form-item label="单位 " prop="unit">
prop="unit" > <el-select v-model="unit" placeholder="请选择" clearable :style='{"width":"100%"}' @change="unitChange">
<el-select v-model="dataForm.unit" <el-option v-for="(item, index) in unitOptions" :key="index" :label="item.fullName" :value="item.id"
placeholder="请选择" clearable :style='{"width":"100%"}'> :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in unitOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="运输类型" <el-form-item label="运输类型" prop="transportType">
prop="transportType" > <el-select v-model="transportType" placeholder="请选择" clearable :style='{"width":"100%"}' @change="transportTypeChange">
<el-select v-model="dataForm.transportType" <el-option v-for="(item, index) in transportTypeOptions" :key="index" :label="item.fullName"
placeholder="请选择" clearable :style='{"width":"100%"}'> :value="item.id" :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in transportTypeOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否垫资" <el-form-item label="是否垫资" prop="advance">
prop="advance" > <el-select v-model="advance" placeholder="请选择" clearable :style='{"width":"100%"}' @change="advanceChange">
<el-select v-model="dataForm.advance" <el-option v-for="(item, index) in advanceOptions" :key="index" :label="item.fullName" :value="item.id"
placeholder="请选择" clearable :style='{"width":"100%"}'> :disabled="item.disabled"></el-option>
<el-option v-for="(item, index) in advanceOptions" :key="index" :label="item.fullName" :value="item.id" :disabled="item.disabled" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="运费" <el-form-item label="运费" prop="transportPrice">
prop="transportPrice" > <el-input-number v-model="dataForm.transportPrice" :style='{"width":"100%"}'></el-input-number>
<el-input v-model="dataForm.transportPrice"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="销售价格" <el-form-item label="销售价格" prop="salesPrice">
prop="salesPrice" > <el-input-number v-model="dataForm.salesPrice" :style='{"width":"100%"}'></el-input-number>
<el-input v-model="dataForm.salesPrice"
placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="业务员" <el-form-item label="业务员" prop="businessId">
prop="creatorUserName" > <popupSelect v-model="dataForm.businessId" placeholder="请选择业务员" clearable field="businessId"
<popupSelect v-model="dataForm.creatorUserName" interfaceId="ebcc44be142e43b795c0d769abd6d25a" :columnOptions="businessIdcolumnOptions"
placeholder="请选择业务员" clearable field="creatorUserName" interfaceId="ebcc44be142e43b795c0d769abd6d25a" :columnOptions="creatorUserNamecolumnOptions" propsValue="F_RealName" relationField="F_RealName" popupType="dialog" propsValue="F_Id" relationField="F_RealName" popupType="dialog" popupTitle="选择数据" popupWidth="800px"
popupTitle="选择数据" popupWidth="800px" hasPage :pageSize="20" :bissId="dataForm.businessId">
hasPage :pageSize="20" >
</popupSelect> </popupSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="自然人" <el-form-item label="自然人" prop="naturalId">
prop="naturalId" > <popupSelect v-model="dataForm.naturalId" placeholder="请选择自然人" clearable field="naturalId"
<popupSelect v-model="dataForm.naturalId" interfaceId="395933800510599301" :columnOptions="naturalIdcolumnOptions" propsValue="id"
placeholder="请选择自然人" clearable field="naturalId" interfaceId="395933800510599301" :columnOptions="naturalIdcolumnOptions" propsValue="id" relationField="name" popupType="dialog" relationField="name" popupType="dialog" popupTitle="选择数据" popupWidth="800px" hasPage :pageSize="20">
popupTitle="选择数据" popupWidth="800px"
hasPage :pageSize="20" >
</popupSelect> </popupSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" <el-form-item label="备注" prop="remark">
prop="remark" > <el-input v-model="dataForm.remark" placeholder="请输入备注信息" clearable :style='{"width":"100%"}'>
<el-input v-model="dataForm.remark"
placeholder="请输入备注信息" clearable :style='{"width":"100%"}'>
</el-input>
</el-form-item>
</el-col>
<el-col :span="24" >
<el-form-item label="磅单日期"
prop="creatorTime" >
<el-input v-model="dataForm.creatorTime"
placeholder="系统自动生成" readonly >
</el-input> </el-input>
</el-form-item> </el-form-item>
@ -216,18 +164,30 @@
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button> <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
<el-button type="primary" @click="continueUpload()"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import {
getDictionaryDataSelector
} from '@/api/systemData/dictionary'
export default { export default {
components: {}, components: {},
props: [], props: [],
data() { data() {
return { return {
unit: "0",
transportType: "0",
advance: "0",
action: this.define.APIURl + '/api/tradeupload/Tradeupload/UploaderPondList/annexpic',
imageUrl: '',
code: '100',
fileList: [],
visible: false, visible: false,
loading: false, loading: false,
isDetail: false, isDetail: false,
@ -248,131 +208,274 @@
transportType: "0", transportType: "0",
advance: "0", advance: "0",
transportPrice: 0, transportPrice: 0,
salesPrice : '', salesPrice: 0,
creatorUserName : "", businessId: "",
naturalId: "", naturalId: "",
remark: '', remark: '',
creatorTime: "", creatorTime: "",
}, },
rules: rules: {
{ materialId: [{
poundPictures: [
{
required: true,
message: '请至少选择一个',
trigger: 'click'
},
],
materialId: [
{
required: true, required: true,
message: '请选择物料编码', message: '请选择物料编码',
trigger: 'change' trigger: 'change'
}, }, ],
], customerId: [{
customerId: [
{
required: true, required: true,
message: '请选择客户', message: '请选择客户',
trigger: 'change' trigger: 'change'
}, }, ],
], salesId: [{
salesId: [
{
required: true, required: true,
message: '请选择合同', message: '请选择合同',
trigger: 'change' trigger: 'change'
}, }, ],
], vehicleId: [{
vehicleId: [
{
required: true, required: true,
message: '请选择车辆', message: '请选择车辆',
trigger: 'change' trigger: 'change'
}, }, ],
], vehiclePictures: [{
vehiclePictures: [
{
required: true, required: true,
message: '请至少选择一个', message: '请至少选择一个',
trigger: 'click' trigger: 'click'
}, }, ],
], poundDate: [{
poundDate: [
{
required: true, required: true,
message: '请选择', message: '请选择',
trigger: 'change' trigger: 'change'
}, }, ],
], poundlistNo: [{
poundlistNo: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}, }, ],
], tareWeight: [{
tareWeight: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}, }, ],
], grossWeight: [{
grossWeight: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}, }, ],
], buckleWeight: [{
buckleWeight: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}, }, ],
], netWeight: [{
netWeight: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}, }, ],
], salesPrice: [{
salesPrice: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}, }, ],
], businessId: [{
creatorUserName: [
{
required: true, required: true,
message: '请选择业务员', message: '请选择业务员',
trigger: 'change' trigger: 'change'
}, ],
}, },
], materialIdcolumnOptions: [{
}, "label": "物料编码",
materialIdcolumnOptions:[ {"label":"物料编码","value":"item_code"}, {"label":"物料名称","value":"item_name"}, {"label":"默认库区","value":"areaname"}, {"label":"库存组织","value":"organization_id"},], "value": "item_code"
customerIdcolumnOptions:[ {"label":"客户编码","value":"supplier_cd"}, {"label":"客户名称","value":"supplier_nm"}, {"label":"地址","value":"address"}, {"label":"银行账号","value":"bank_account"},], }, {
salesIdcolumnOptions:[ {"label":"合同编码","value":"contract_code"}, {"label":"合同名称","value":"contract_name"}, {"label":"合同类型","value":"contract_type"}, {"label":"供应商/客户名称","value":"name"},], "label": "物料名称",
vehicleIdcolumnOptions:[ {"label":"车牌号","value":"ticketno"}, {"label":"司机","value":"drivername"}, {"label":"车辆照片","value":"vehiclephotos"}, {"label":"手机号","value":"contact"},], "value": "item_name"
unitOptions:[{"fullName":"吨","id":"0"},{"fullName":"千克","id":"1"}], }, {
transportTypeOptions:[{"fullName":"汽运","id":"0"},{"fullName":"船运","id":"1"},{"fullName":"火车","id":"2"}], "label": "单位",
advanceOptions:[{"fullName":"否","id":"0"},{"fullName":"是","id":"1"}], "value": "primary_unit_of_measure"
creatorUserNamecolumnOptions:[ {"label":"人员名称","value":"F_RealName"}, {"label":"人员职位","value":"F_FullName"},], }, {
naturalIdcolumnOptions:[ {"label":"自然人名称","value":"name"}, {"label":"自然人手机号","value":"contact"}, {"label":"自然人地址","value":"adress"},], "label": "默认入库区",
"value": "in_area"
}, {
"label": "默认出库区",
"value": "out_area"
}, ],
customerIdcolumnOptions: [{
"label": "客户编码",
"value": "supplier_cd"
}, {
"label": "客户名称",
"value": "supplier_nm"
}, {
"label": "地址",
"value": "address"
}, {
"label": "银行账号",
"value": "bank_account"
}, ],
salesIdcolumnOptions: [{
"label": "合同编码",
"value": "contract_code"
}, {
"label": "合同名称",
"value": "contract_name"
}, {
"label": "合同类型",
"value": "contract_type"
}, {
"label": "供应商/客户名称",
"value": "name"
}, ],
vehicleIdcolumnOptions: [{
"label": "车牌号",
"value": "ticketno"
}, {
"label": "司机",
"value": "drivername"
}, {
"label": "车辆照片",
"value": "vehiclephotos"
}, {
"label": "手机号",
"value": "contact"
}, ],
unitOptions: [{
"fullName": "吨",
"id": "0"
}, {
"fullName": "千克",
"id": "1"
}],
transportTypeOptions: [{
"fullName": "汽运",
"id": "0"
}, {
"fullName": "船运",
"id": "1"
}, {
"fullName": "火车",
"id": "2"
}],
advanceOptions: [{
"fullName": "否",
"id": "0"
}, {
"fullName": "是",
"id": "1"
}],
businessIdcolumnOptions: [{
"label": "人员名称",
"value": "F_RealName"
}, {
"label": "人员职位",
"value": "F_FullName"
}, ],
naturalIdcolumnOptions: [{
"label": "自然人名称",
"value": "name"
}, {
"label": "自然人手机号",
"value": "contact"
}, {
"label": "自然人地址",
"value": "adress"
}, ],
} }
}, },
computed: {}, computed: {},
watch: {}, watch: {},
created() { created() {},
},
mounted() {}, mounted() {},
methods: { methods: {
unitChange(e){
this.dataForm.unit = e;
},
transportTypeChange(e){
this.dataForm.transportType = e;
},
advanceChange(e){
this.dataForm.advance = e;
},
customerSelect(e, d) {
const query = {
code: d.id
}
request({
url: '/api/example/ContractFile/getListByCustomer',
method: 'post',
data: query
}).then((res) => {
if(res.data.length > 0){
// type
this.dataForm.salesId = res.data[0].id
this.dataForm.salesName = res.data[0].contractName
}
})
},
handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
this.dataForm.customerId = res.data.customerId;
this.dataForm.customerName = res.data.customerName;
this.dataForm.salesId = res.data.salesId;
this.dataForm.salesName = res.data.salesName;
this.dataForm.vehicleId = res.data.vehicleId;
this.dataForm.poundDate = res.data.poundDate;
this.dataForm.poundlistNo = res.data.poundlistNo;
this.dataForm.tareWeight = res.data.tareWeight;
this.dataForm.grossWeight = res.data.grossWeight;
this.dataForm.buckleWeight = res.data.buckleWeight;
this.dataForm.netWeight = res.data.netWeight;
this.dataForm.vehiclePictures = JSON.parse(res.data.vehiclePictures);
},
changePicture(a, b) {
this.dataForm.vehiclePictures = JSON.parse(b.vehiclephotos);
},
continueUpload() {
var tareWeight = this.dataForm.tareWeight;//
var grossWeight = this.dataForm.grossWeight;//
var buckleWeight = this.dataForm.buckleWeight;//
var netWeight = this.dataForm.netWeight;//
if(grossWeight < tareWeight + buckleWeight + netWeight){
this.$message({
message: '毛重不得小于皮重+扣重+净重',
type: 'warning',
duration: 1000
})
return
}
if(buckleWeight >= netWeight){
this.$message({
message: '扣重不得大于净重',
type: 'warning',
duration: 1000
})
return
}
if(buckleWeight >= grossWeight){
this.$message({
message: '扣重不得大于毛重',
type: 'warning',
duration: 1000
})
return
}
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request3()
}
})
},
// poundAI(){
// let formData = new FormData();
// let file = this.dataForm.poundPictures
// formData.append('file',file);
// request({
// url: '/api/tradeupload/Tradeupload/poundai',
// method: 'post',
// data: formData
// }).then(res => {
// this.dataInfo(res.data)
// this.loading = false
// });
// },
clearData(data) { clearData(data) {
for (let key in data) { for (let key in data) {
if (data[key] instanceof Array) { if (data[key] instanceof Array) {
@ -385,6 +488,9 @@
} }
}, },
init(id, isDetail) { init(id, isDetail) {
this.dataForm.businessId = this.$store.state.user.userInfo.userId;
this.dataForm.businessName = this.$store.state.user.userInfo.userName;
this.dataForm.poundDate = new Date();
this.dataForm.id = id || 0; this.dataForm.id = id || 0;
this.visible = true; this.visible = true;
this.isDetail = isDetail || false; this.isDetail = isDetail || false;
@ -407,11 +513,114 @@
}, },
// //
dataFormSubmit() { dataFormSubmit() {
var tareWeight = this.dataForm.tareWeight;//
var grossWeight = this.dataForm.grossWeight;//
var buckleWeight = this.dataForm.buckleWeight;//
var netWeight = this.dataForm.netWeight;//
this.dataForm.unit = this.dataForm.unit ? this.dataForm.unit : 0;
this.dataForm.transportType = this.dataForm.transportType ? this.dataForm.transportType : 0;
this.dataForm.advance = this.dataForm.advance ? this.dataForm.advance : 0;
if(grossWeight < tareWeight + buckleWeight + netWeight){
this.$message({
message: '毛重不得小于皮重+扣重+净重',
type: 'success',
duration: 1000
})
return
}
if(buckleWeight >= netWeight){
this.$message({
message: '扣重不得大于净重',
type: 'success',
duration: 1000
})
return
}
if(buckleWeight >= grossWeight){
this.$message({
message: '扣重不得大于毛重',
type: 'success',
duration: 1000
})
return
}
this.$refs['elForm'].validate((valid) => { this.$refs['elForm'].validate((valid) => {
if (valid) { if (valid) {
this.request() this.request2()
}
})
},
request2() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/tradeupload/Tradeupload',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/tradeupload/Tradeupload/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
} }
}) })
})
}
},
request3() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/tradeupload/Tradeupload',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
})
})
} else {
request({
url: '/api/tradeupload/Tradeupload/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
})
})
}
this.dataForm.vehicleId = null;
this.dataForm.vehiclePictures = null;
this.dataForm.poundDate = null;
this.dataForm.poundlistNo = null;
this.dataForm.tareWeight = null;
this.dataForm.grossWeight = null;
this.dataForm.buckleWeight = null;
this.dataForm.netWeight = null;
}, },
request() { request() {
var _data = this.dataList() var _data = this.dataList()
@ -463,5 +672,29 @@
}, },
}, },
} }
</script> </script>
<style>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 120px;
height: 120px;
line-height: 120px;
text-align: center;
}
.avatar {
width: 120px;
height: 120px;
display: block;
}
</style>

@ -0,0 +1,745 @@
<template>
<el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" append-to-body
:visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="1500px">
<el-row :gutter="15" class="">
<el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="100px" label-position="right">
<template v-if="!loading">
<el-col :span="24">
<el-form-item label="磅单上传" prop="poundPictures">
<el-upload class="avatar-uploader" :action="action" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物料名称" prop="materialId">
<popupSelect v-model="dataForm.materialId" placeholder="请选择物料编码" clearable field="materialId"
interfaceId="381037852907038533" :columnOptions="materialIdcolumnOptions" propsValue="id"
relationField="item_name" popupType="dialog" popupTitle="选择数据" popupWidth="800px" hasPage
:pageSize="20">
</popupSelect>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户名称" prop="customerId">
<popupSelect v-model="dataForm.customerId" placeholder="请选择客户" clearable field="customerId"
interfaceId="395936123471343749" :columnOptions="customerIdcolumnOptions" propsValue="id"
relationField="supplier_nm" popupType="dialog" popupTitle="选择数据" popupWidth="800px" hasPage
:pageSize="20" @change="customerSelect">
</popupSelect>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="销售合同" prop="salesId">
<popupSelect v-model="dataForm.salesId" placeholder="请选择合同" clearable field="salesId"
interfaceId="396203872441416837" :columnOptions="salesIdcolumnOptions" propsValue="id"
relationField="contract_name" popupType="dialog" popupTitle="选择数据" popupWidth="800px" :bissId="dataForm.customerId"
hasPage :pageSize="20">
</popupSelect>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="供应商" prop="supplierId">
<popupSelect v-model="dataForm.supplierId" placeholder="请选择客户" clearable field="supplierId"
interfaceId="395936123471343749" :columnOptions="supplierIdcolumnOptions" propsValue="id"
relationField="supplier_nm" popupType="dialog" popupTitle="选择数据" popupWidth="800px" hasPage
:pageSize="20" @change="customerSelect">
</popupSelect>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="采购合同" prop="salesId">
<popupSelect v-model="dataForm.salesId" placeholder="请选择合同" clearable field="salesId"
interfaceId="396203872441416837" :columnOptions="salesIdcolumnOptions" propsValue="id"
relationField="contract_name" popupType="dialog" popupTitle="选择数据" popupWidth="800px" :bissId="dataForm.supplierId"
hasPage :pageSize="20">
</popupSelect>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="采购价格" prop="purchasePrice">
<el-input-number v-model="dataForm.purchasePrice" :style='{"width":"100%"}'></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车牌号" prop="vehicleId">
<popupSelect v-model="dataForm.vehicleId" placeholder="请选择车辆" clearable field="vehicleId"
interfaceId="381432451370615173" :columnOptions="vehicleIdcolumnOptions" propsValue="id"
relationField="ticketno" popupType="dialog" popupTitle="选择数据" popupWidth="800px" @change="changePicture"
hasPage :pageSize="20">
</popupSelect>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="车辆图片" prop="vehiclePictures">
<JNPF-UploadImg v-model="dataForm.vehiclePictures" :fileSize="500" sizeUnit="MB" :limit="9">
</JNPF-UploadImg>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="磅单时间" prop="poundDate">
<el-date-picker v-model="dataForm.poundDate" placeholder="请选择" clearable :style='{"width":"100%"}'
type="date" format="yyyy-MM-dd" value-format="timestamp">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="磅单号" prop="poundlistNo">
<el-input v-model="dataForm.poundlistNo" placeholder="请输入" clearable :style='{"width":"100%"}'>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="皮重" prop="tareWeight">
<el-input-number v-model="dataForm.tareWeight" :style='{"width":"100%"}'></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="毛重" prop="grossWeight">
<el-input-number v-model="dataForm.grossWeight" :style='{"width":"100%"}'></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="扣重" prop="buckleWeight">
<el-input-number v-model="dataForm.buckleWeight" :style='{"width":"100%"}'></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="净重" prop="netWeight">
<el-input-number v-model="dataForm.netWeight" :style='{"width":"100%"}'></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位 " prop="unit">
<el-select v-model="unit" placeholder="请选择" clearable :style='{"width":"100%"}' @change="unitChange">
<el-option v-for="(item, index) in unitOptions" :key="index" :label="item.fullName" :value="item.id"
:disabled="item.disabled"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运输类型" prop="transportType">
<el-select v-model="transportType" placeholder="请选择" clearable :style='{"width":"100%"}' @change="transportTypeChange">
<el-option v-for="(item, index) in transportTypeOptions" :key="index" :label="item.fullName"
:value="item.id" :disabled="item.disabled"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否垫资" prop="advance">
<el-select v-model="advance" placeholder="请选择" clearable :style='{"width":"100%"}' @change="advanceChange">
<el-option v-for="(item, index) in advanceOptions" :key="index" :label="item.fullName" :value="item.id"
:disabled="item.disabled"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运费" prop="transportPrice">
<el-input-number v-model="dataForm.transportPrice" :style='{"width":"100%"}'></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="销售价格" prop="salesPrice">
<el-input-number v-model="dataForm.salesPrice" :style='{"width":"100%"}'></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="业务员" prop="businessId">
<popupSelect v-model="dataForm.businessId" placeholder="请选择业务员" clearable field="businessId"
interfaceId="ebcc44be142e43b795c0d769abd6d25a" :columnOptions="businessIdcolumnOptions"
propsValue="F_Id" relationField="F_RealName" popupType="dialog" popupTitle="选择数据" popupWidth="800px"
hasPage :pageSize="20" :bissId="dataForm.businessId">
</popupSelect>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="自然人" prop="naturalId">
<popupSelect v-model="dataForm.naturalId" placeholder="请选择自然人" clearable field="naturalId"
interfaceId="395933800510599301" :columnOptions="naturalIdcolumnOptions" propsValue="id"
relationField="name" popupType="dialog" popupTitle="选择数据" popupWidth="800px" hasPage :pageSize="20">
</popupSelect>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="请输入备注信息" clearable :style='{"width":"100%"}'>
</el-input>
</el-form-item>
</el-col>
</template>
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"> </el-button>
<el-button type="primary" @click="continueUpload()"> </el-button>
</span>
</el-dialog>
</template>
<script>
import request from '@/utils/request'
import {
getDataInterfaceRes
} from '@/api/systemData/dataInterface'
import {
getDictionaryDataSelector
} from '@/api/systemData/dictionary'
export default {
components: {},
props: [],
data() {
return {
unit: "0",
transportType: "0",
advance: "0",
action: this.define.APIURl + '/api/tradeupload/Tradeupload/UploaderPondList/annexpic',
imageUrl: '',
code: '100',
fileList: [],
visible: false,
loading: false,
isDetail: false,
dataForm: {
poundPictures: [],
materialId: "",
customerId: "",
supplierId: "",
salesId: "",
vehicleId: "",
vehiclePictures: [],
poundDate: '',
poundlistNo: '',
tareWeight: 0,
grossWeight: 0,
buckleWeight: 0,
netWeight: 0,
unit: "0",
transportType: "0",
advance: "0",
transportPrice: 0,
salesPrice: 0,
purchasePrice: 0,
businessId: "",
naturalId: "",
remark: '',
creatorTime: "",
},
rules: {
materialId: [{
required: true,
message: '请选择物料编码',
trigger: 'change'
}, ],
customerId: [{
required: true,
message: '请选择客户',
trigger: 'change'
}, ],
supplierId: [{
required: true,
message: '请选择供应商',
trigger: 'change'
}, ],
salesId: [{
required: true,
message: '请选择合同',
trigger: 'change'
}, ],
vehicleId: [{
required: true,
message: '请选择车辆',
trigger: 'change'
}, ],
vehiclePictures: [{
required: true,
message: '请至少选择一个',
trigger: 'click'
}, ],
poundDate: [{
required: true,
message: '请选择',
trigger: 'change'
}, ],
poundlistNo: [{
required: true,
message: '请输入',
trigger: 'blur'
}, ],
tareWeight: [{
required: true,
message: '请输入',
trigger: 'blur'
}, ],
grossWeight: [{
required: true,
message: '请输入',
trigger: 'blur'
}, ],
buckleWeight: [{
required: true,
message: '请输入',
trigger: 'blur'
}, ],
netWeight: [{
required: true,
message: '请输入',
trigger: 'blur'
}, ],
salesPrice: [{
required: true,
message: '请输入',
trigger: 'blur'
}, ],
purchasePrice: [{
required: true,
message: '请输入',
trigger: 'blur'
}, ],
businessId: [{
required: true,
message: '请选择业务员',
trigger: 'change'
}, ],
},
materialIdcolumnOptions: [{
"label": "物料编码",
"value": "item_code"
}, {
"label": "物料名称",
"value": "item_name"
}, {
"label": "单位",
"value": "primary_unit_of_measure"
}, {
"label": "默认入库区",
"value": "in_area"
}, {
"label": "默认出库区",
"value": "out_area"
}, ],
customerIdcolumnOptions: [{
"label": "客户编码",
"value": "supplier_cd"
}, {
"label": "客户名称",
"value": "supplier_nm"
}, {
"label": "地址",
"value": "address"
}, {
"label": "银行账号",
"value": "bank_account"
}, ],
supplierIdcolumnOptions: [{
"label": "供应商编码",
"value": "supplier_code"
}, {
"label": "供应商名称",
"value": "supplier_name"
}],
salesIdcolumnOptions: [{
"label": "合同编码",
"value": "contract_code"
}, {
"label": "合同名称",
"value": "contract_name"
}, {
"label": "合同类型",
"value": "contract_type"
}, {
"label": "供应商/客户名称",
"value": "name"
}, ],
vehicleIdcolumnOptions: [{
"label": "车牌号",
"value": "ticketno"
}, {
"label": "司机",
"value": "drivername"
}, {
"label": "车辆照片",
"value": "vehiclephotos"
}, {
"label": "手机号",
"value": "contact"
}, ],
unitOptions: [{
"fullName": "吨",
"id": "0"
}, {
"fullName": "千克",
"id": "1"
}],
transportTypeOptions: [{
"fullName": "汽运",
"id": "0"
}, {
"fullName": "船运",
"id": "1"
}, {
"fullName": "火车",
"id": "2"
}],
advanceOptions: [{
"fullName": "否",
"id": "0"
}, {
"fullName": "是",
"id": "1"
}],
businessIdcolumnOptions: [{
"label": "人员名称",
"value": "F_RealName"
}, {
"label": "人员职位",
"value": "F_FullName"
}, ],
naturalIdcolumnOptions: [{
"label": "自然人名称",
"value": "name"
}, {
"label": "自然人手机号",
"value": "contact"
}, {
"label": "自然人地址",
"value": "adress"
}, ],
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
unitChange(e){
this.dataForm.unit = e;
},
transportTypeChange(e){
this.dataForm.transportType = e;
},
advanceChange(e){
this.dataForm.advance = e;
},
customerSelect(e, d) {
const query = {
code: d.id
}
request({
url: '/api/example/ContractFile/getListByCustomer',
method: 'post',
data: query
}).then((res) => {
if(res.data.length > 0){
// type
this.dataForm.salesId = res.data[0].id
this.dataForm.salesName = res.data[0].contractName
}
})
},
handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
this.dataForm.customerId = res.data.customerId;
this.dataForm.customerName = res.data.customerName;
this.dataForm.salesId = res.data.salesId;
this.dataForm.salesName = res.data.salesName;
this.dataForm.vehicleId = res.data.vehicleId;
this.dataForm.poundDate = res.data.poundDate;
this.dataForm.poundlistNo = res.data.poundlistNo;
this.dataForm.tareWeight = res.data.tareWeight;
this.dataForm.grossWeight = res.data.grossWeight;
this.dataForm.buckleWeight = res.data.buckleWeight;
this.dataForm.netWeight = res.data.netWeight;
this.dataForm.vehiclePictures = JSON.parse(res.data.vehiclePictures);
},
changePicture(a, b) {
this.dataForm.vehiclePictures = JSON.parse(b.vehiclephotos);
},
continueUpload() {
var tareWeight = this.dataForm.tareWeight;//
var grossWeight = this.dataForm.grossWeight;//
var buckleWeight = this.dataForm.buckleWeight;//
var netWeight = this.dataForm.netWeight;//
if(grossWeight < tareWeight + buckleWeight + netWeight){
this.$message({
message: '毛重不得小于皮重+扣重+净重',
type: 'success',
duration: 1000
})
return
}
if(buckleWeight >= netWeight){
this.$message({
message: '扣重不得大于净重',
type: 'success',
duration: 1000
})
return
}
if(buckleWeight >= grossWeight){
this.$message({
message: '扣重不得大于毛重',
type: 'success',
duration: 1000
})
return
}
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request3()
}
})
},
// poundAI(){
// let formData = new FormData();
// let file = this.dataForm.poundPictures
// formData.append('file',file);
// request({
// url: '/api/tradeupload/Tradeupload/poundai',
// method: 'post',
// data: formData
// }).then(res => {
// this.dataInfo(res.data)
// this.loading = false
// });
// },
clearData(data) {
for (let key in data) {
if (data[key] instanceof Array) {
data[key] = [];
} else if (data[key] instanceof Object) {
this.clearData(data[key]);
} else {
data[key] = "";
}
}
},
init(id, isDetail) {
this.dataForm.poundDate = new Date();
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
this.$refs['elForm'].resetFields();
if (this.dataForm.id) {
this.loading = true
request({
url: '/api/tradeupload/Tradeupload/' + this.dataForm.id,
method: 'get'
}).then(res => {
this.dataInfo(res.data)
this.loading = false
});
} else {
this.clearData(this.dataForm)
}
});
this.$store.commit('generator/UPDATE_RELATION_DATA', {})
this.dataForm.businessId = this.$store.state.user.userInfo.userId;
this.dataForm.businessName = this.$store.state.user.userInfo.userName;
},
//
dataFormSubmit() {
var tareWeight = this.dataForm.tareWeight;//
var grossWeight = this.dataForm.grossWeight;//
var buckleWeight = this.dataForm.buckleWeight;//
var netWeight = this.dataForm.netWeight;//
this.dataForm.unit = this.dataForm.unit ? this.dataForm.unit : 0;
this.dataForm.transportType = this.dataForm.transportType ? this.dataForm.transportType : 0;
this.dataForm.advance = this.dataForm.advance ? this.dataForm.advance : 0;
if(grossWeight < tareWeight + buckleWeight + netWeight){
this.$message({
message: '毛重不得小于皮重+扣重+净重',
type: 'success',
duration: 1000
})
return
}
if(buckleWeight >= netWeight){
this.$message({
message: '扣重不得大于净重',
type: 'success',
duration: 1000
})
return
}
if(buckleWeight >= grossWeight){
this.$message({
message: '扣重不得大于毛重',
type: 'success',
duration: 1000
})
return
}
this.$refs['elForm'].validate((valid) => {
if (valid) {
this.request2()
}
})
},
request2() {
var _data = this.dataList()
debugger
if (!this.dataForm.id) {
request({
url: '/api/tradeupload/Tradeupload',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/tradeupload/Tradeupload/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
request3() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/tradeupload/Tradeupload',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
})
})
} else {
request({
url: '/api/tradeupload/Tradeupload/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
})
})
}
this.dataForm.vehicleId = null;
this.dataForm.vehiclePictures = null;
this.dataForm.poundDate = null;
this.dataForm.poundlistNo = null;
this.dataForm.tareWeight = null;
this.dataForm.grossWeight = null;
this.dataForm.buckleWeight = null;
this.dataForm.netWeight = null;
},
request() {
var _data = this.dataList()
if (!this.dataForm.id) {
request({
url: '/api/tradeupload/Tradeupload',
method: 'post',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
} else {
request({
url: '/api/tradeupload/Tradeupload/' + this.dataForm.id,
method: 'PUT',
data: _data
}).then((res) => {
this.$message({
message: res.msg,
type: 'success',
duration: 1000,
onClose: () => {
this.visible = false
this.$emit('refresh', true)
}
})
})
}
},
dataList() {
var _data = JSON.parse(JSON.stringify(this.dataForm));
_data.poundPictures = JSON.stringify(_data.poundPictures)
_data.vehiclePictures = JSON.stringify(_data.vehiclePictures)
return _data;
},
dataInfo(dataAll) {
let _dataAll = dataAll
_dataAll.poundPictures = JSON.parse(_dataAll.poundPictures)
_dataAll.vehiclePictures = JSON.parse(_dataAll.vehiclePictures)
this.dataForm = _dataAll
},
},
}
</script>
<style>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 120px;
height: 120px;
line-height: 120px;
text-align: center;
}
.avatar {
width: 120px;
height: 120px;
display: block;
}
</style>

@ -28,7 +28,7 @@
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()"> <el-button type="text" icon="el-icon-plus" @click="addOrUpdateHandle()">
</el-button> </el-button>
<el-button type="text" icon="el-icon-download" @click="exportData()"> <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
@ -84,13 +84,46 @@
/> />
<el-table-column prop="salesPrice" label="销售价格" width="150" align="center" sortable <el-table-column prop="salesPrice" label="销售价格" width="150" align="center" sortable
/> />
<el-table-column prop="creatorUserName" label="业务员" width="120" align="center" sortable <el-table-column prop="businessId" label="业务员" width="120" align="center" sortable
/> />
<el-table-column prop="remark" label="备注" width="200" align="center" sortable <el-table-column prop="remark" label="备注" width="200" align="center" sortable
/> />
<el-table-column prop="poundPictures" label="磅单图片" width="150" align="center">
<template slot-scope="scope">
<span v-for="(item,index) in JSON.parse(scope.row.poundPictures)" :key="index">
<el-popover placement="bottom" trigger="click" width="1000">
<img :src="`/dev${item.url}`" width="100%" />
<img
slot="reference"
:src="`/dev${item.url}`"
:alt="`/dev${item.url}`"
style="max-height: 70px;max-width: 70px; padding: 5px"
/>
</el-popover>
</span>
</template>
</el-table-column>
<el-table-column prop="vehiclePictures" label="车辆图片" width="150" align="center">
<template slot-scope="scope">
<span v-for="(item,index) in JSON.parse(scope.row.vehiclePictures)" :key="index">
<el-popover placement="bottom" trigger="click" width="1000">
<img :src="`/dev${item.url}`" width="100%" />
<img
slot="reference"
:src="`/dev${item.url}`"
:alt="`/dev${item.url}`"
style="max-height: 70px;max-width: 70px; padding: 5px"
/>
</el-popover>
</span>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" <el-table-column label="操作" fixed="right"
width="150"> width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text"
@click="addOrUpdateHandle2(scope.row.id)">审核
</el-button>
<el-button type="text" <el-button type="text"
@click="addOrUpdateHandle(scope.row.id)">编辑 @click="addOrUpdateHandle(scope.row.id)">编辑
</el-button> </el-button>
@ -107,6 +140,7 @@
</div> </div>
</div> </div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/> <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<JNPF-Form v-if="formVisible2" ref="JNPFForm2" @refresh="refresh2"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/> <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/> <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
</div> </div>
@ -116,12 +150,14 @@
import request from '@/utils/request' import request from '@/utils/request'
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
import JNPFForm from './Form' import JNPFForm from './Form'
import JNPFForm2 from './Form2'
import ExportBox from './ExportBox' import ExportBox from './ExportBox'
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import { getDataInterfaceRes } from '@/api/systemData/dataInterface'
import Detail from './Detail' import Detail from './Detail'
export default { export default {
components: { JNPFForm, ExportBox, Detail }, components: { JNPFForm, JNPFForm2, ExportBox, Detail },
data() { data() {
return { return {
detailVisible: false, detailVisible: false,
@ -144,6 +180,7 @@
sidx: '' sidx: ''
}, },
formVisible: false, formVisible: false,
formVisible2: false,
exportBoxVisible: false, exportBoxVisible: false,
columnList: [ columnList: [
{ prop: 'creatorTime', label: '磅单日期' }, { prop: 'creatorTime', label: '磅单日期' },
@ -274,6 +311,12 @@
this.$refs.JNPFForm.init(id, isDetail) this.$refs.JNPFForm.init(id, isDetail)
}) })
}, },
addOrUpdateHandle2(id, isDetail) {
this.formVisible2 = true
this.$nextTick(() => {
this.$refs.JNPFForm2.init(id, isDetail)
})
},
exportData() { exportData() {
this.exportBoxVisible = true this.exportBoxVisible = true
this.$nextTick(() => { this.$nextTick(() => {
@ -306,6 +349,10 @@
this.formVisible = false this.formVisible = false
if (isrRefresh) this.reset() if (isrRefresh) this.reset()
}, },
refresh2(isrRefresh) {
this.formVisible2 = false
if (isrRefresh) this.reset()
},
reset() { reset() {
for (let key in this.query) { for (let key in this.query) {
this.query[key] = undefined this.query[key] = undefined

Loading…
Cancel
Save