销售发货单

jg-waiwang-pro
vayne 8 months ago
parent 30d912f756
commit 639d2439e3

@ -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.mapper.DeliveryOrderMapper">
</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.mapper.DeliveryProductRelationMapper">
</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.mapper.DeliveryVoucherRelationMapper">
</mapper>

@ -2,6 +2,72 @@
<!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.mapper.VoucherMapper"> <mapper namespace="jnpf.mapper.VoucherMapper">
<resultMap id="voucherList" type="jnpf.entity.VoucherEntity">
<id column="id" property="id"/>
<result column="business_type" property="businessType"/>
<result column="document_type" property="documentType"/>
<result column="voucher_code" property="voucherCode"/>
<result column="voucher_type" property="voucherType"/>
<result column="voucher_source" property="voucherSource"/>
<result column="voucher_status" property="voucherStatus"/>
<result column="poundlist_time" property="poundlistTime"/>
<result column="associated_document_no" property="associatedDocumentNo"/>
<result column="preparation_time" property="preparationTime"/>
<result column="voucher_pictures" property="voucherPictures"/>
<result column="pound_code" property="poundCode"/>
<result column="vehicle_id" property="vehicleId"/>
<result column="vehicle_name" property="vehicleName"/>
<result column="supplier_id" property="supplierId"/>
<result column="supplier_name" property="supplierName"/>
<result column="customer_id" property="customerId"/>
<result column="customer_name" property="customerName"/>
<result column="mode_transport" property="modeTransport"/>
<result column="transportation_method" property="transportationMethod"/>
<result column="carrier" property="carrier"/>
<result column="place_dispatch" property="placeDispatch"/>
<result column="destination" property="destination"/>
<result column="freight" property="freight"/>
<result column="vehicle_pictures" property="vehiclePictures"/>
<result column="driver_pictures" property="driverPictures"/>
<result column="weigh_pictures" property="weighPictures"/>
<result column="associate_third_suppliers" property="associateThirdSuppliers"/>
<result column="vehicle_pictures1" property="vehiclePictures1"/>
<result column="vehicle_pictures2" property="vehiclePictures2"/>
<result column="driver_pictures1" property="driverPictures1"/>
<result column="driver_pictures2" property="driverPictures2"/>
<result column="weigh_pictures1" property="weighPictures1"/>
<result column="weigh_pictures2" property="weighPictures2"/>
<result column="weigh_pictures3" property="weighPictures3"/>
<result column="driver_name" property="driverName"/>
<result column="product_id" property="productId"/>
<result column="spec" property="spec"/>
<result column="unit" property="unit"/>
<result column="gross_weight" property="grossWeight"/>
<result column="tare_weight" property="tareWeight"/>
<result column="buckle_weight" property="buckleWeight"/>
<result column="net_weight" property="netWeight"/>
<result column="remark" property="remark"/>
</resultMap>
<select id="querySaleDeliveryVoucher" resultMap="voucherList">
SELECT
a.*,
b.driver_name,
c.product_id,
c.spec,
c.unit,
c.gross_weight,
c.tare_weight,
c.buckle_weight,
c.net_weight,
c.remark
FROM
jg_voucher a
LEFT JOIN jg_voucher_vehicle b ON b.voucher_id = a.id AND b.f_delete_mark IS NULL
LEFT JOIN jg_voucher_product c ON c.voucher_id = a.id AND c.f_delete_mark IS NULL
WHERE
a.business_type = '2'
AND a.document_type = '2'
</select>
</mapper> </mapper>

@ -0,0 +1,16 @@
package jnpf.mapper;
import jnpf.entity.DeliveryOrderEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* deliveryOrder
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
public interface DeliveryOrderMapper extends BaseMapper<DeliveryOrderEntity> {
}

@ -0,0 +1,16 @@
package jnpf.mapper;
import jnpf.entity.DeliveryProductRelationEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* deliveryOrder
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
public interface DeliveryProductRelationMapper extends BaseMapper<DeliveryProductRelationEntity> {
}

@ -0,0 +1,16 @@
package jnpf.mapper;
import jnpf.entity.DeliveryVoucherRelationEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* deliveryOrder
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
public interface DeliveryVoucherRelationMapper extends BaseMapper<DeliveryVoucherRelationEntity> {
}

@ -4,6 +4,8 @@ package jnpf.mapper;
import jnpf.entity.VoucherEntity; import jnpf.entity.VoucherEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/** /**
* voucher * voucher
* V3.5 * V3.5
@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface VoucherMapper extends BaseMapper<VoucherEntity> { public interface VoucherMapper extends BaseMapper<VoucherEntity> {
List<VoucherEntity> querySaleDeliveryVoucher();
} }

@ -0,0 +1,43 @@
package jnpf.service;
import jnpf.model.deliveryorder.*;
import jnpf.entity.*;
import java.util.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
/**
* deliveryOrder
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
public interface DeliveryOrderService extends IService<DeliveryOrderEntity> {
List<DeliveryOrderEntity> getList(DeliveryOrderPagination deliveryOrderPagination);
List<DeliveryOrderEntity> getTypeList(DeliveryOrderPagination deliveryOrderPagination,String dataType);
DeliveryOrderEntity getInfo(String id);
void delete(DeliveryOrderEntity entity);
void create(DeliveryOrderEntity entity);
boolean update(String id, DeliveryOrderEntity entity);
//子表方法
List<DeliveryVoucherRelationEntity> getDeliveryVoucherRelationList(String id,DeliveryOrderPagination deliveryOrderPagination);
List<DeliveryVoucherRelationEntity> getDeliveryVoucherRelationList(String id);
List<DeliveryProductRelationEntity> getDeliveryProductRelationList(String id,DeliveryOrderPagination deliveryOrderPagination);
List<DeliveryProductRelationEntity> getDeliveryProductRelationList(String id);
//副表数据方法
String checkForm(DeliveryOrderForm form,int i);
void saveOrUpdate(DeliveryOrderForm deliveryOrderForm,String id, boolean isSave) throws Exception;
}

@ -0,0 +1,18 @@
package jnpf.service;
import jnpf.model.deliveryorder.*;
import jnpf.entity.*;
import java.util.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
/**
* deliveryOrder
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
public interface DeliveryProductRelationService extends IService<DeliveryProductRelationEntity> {
QueryWrapper<DeliveryProductRelationEntity> getChild(DeliveryOrderPagination pagination,QueryWrapper<DeliveryProductRelationEntity> deliveryProductRelationQueryWrapper);
}

@ -0,0 +1,18 @@
package jnpf.service;
import jnpf.model.deliveryorder.*;
import jnpf.entity.*;
import java.util.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
/**
* deliveryOrder
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
public interface DeliveryVoucherRelationService extends IService<DeliveryVoucherRelationEntity> {
QueryWrapper<DeliveryVoucherRelationEntity> getChild(DeliveryOrderPagination pagination,QueryWrapper<DeliveryVoucherRelationEntity> deliveryVoucherRelationQueryWrapper);
}

@ -40,4 +40,7 @@ public interface VoucherService extends IService<VoucherEntity> {
void saveOrUpdate(VoucherForm voucherForm,String id, boolean isSave) throws Exception; void saveOrUpdate(VoucherForm voucherForm,String id, boolean isSave) throws Exception;
//查询销售发货凭证
List<VoucherEntity> querySaleDeliveryVoucherInfo();
} }

@ -0,0 +1,480 @@
package jnpf.service.impl;
import jnpf.entity.*;
import jnpf.mapper.DeliveryOrderMapper;
import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.deliveryorder.*;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel;
import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.regex.Pattern;
import jnpf.model.QueryModel;
import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel;
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.*;
import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity;
/**
*
* deliveryOrder
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
@Service
public class DeliveryOrderServiceImpl extends ServiceImpl<DeliveryOrderMapper, DeliveryOrderEntity> implements DeliveryOrderService{
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@Autowired
private UserProvider userProvider;
@Autowired
private DeliveryVoucherRelationService deliveryVoucherRelationService;
@Autowired
private DeliveryProductRelationService deliveryProductRelationService;
@Override
public List<DeliveryOrderEntity> getList(DeliveryOrderPagination deliveryOrderPagination){
return getTypeList(deliveryOrderPagination,deliveryOrderPagination.getDataType());
}
/** 列表查询 */
@Override
public List<DeliveryOrderEntity> getTypeList(DeliveryOrderPagination deliveryOrderPagination,String dataType){
String userId=userProvider.get().getUserId();
List<String> AllIdList =new ArrayList();
List<List<String>> intersectionList =new ArrayList<>();
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
String columnData = !isPc ? DeliveryOrderConstant.getAppColumnData() : DeliveryOrderConstant.getColumnData();
ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class);
String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList());
int total=0;
int deliveryOrderNum =0;
QueryWrapper<DeliveryOrderEntity> deliveryOrderQueryWrapper=new QueryWrapper<>();
int deliveryVoucherRelationNum =0;
QueryWrapper<DeliveryVoucherRelationEntity> deliveryVoucherRelationQueryWrapper=new QueryWrapper<>();
int deliveryProductRelationNum =0;
QueryWrapper<DeliveryProductRelationEntity> deliveryProductRelationQueryWrapper=new QueryWrapper<>();
long deliveryVoucherRelationcount = deliveryVoucherRelationService.count();
long deliveryProductRelationcount = deliveryProductRelationService.count();
List<String> allSuperIDlist = new ArrayList<>();
String superOp ="";
if (ObjectUtil.isNotEmpty(deliveryOrderPagination.getSuperQueryJson())){
List<String> allSuperList = new ArrayList<>();
List<List<String>> intersectionSuperList = new ArrayList<>();
String queryJson = deliveryOrderPagination.getSuperQueryJson();
SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class);
int superNum = 0;
QueryWrapper<DeliveryOrderEntity> deliveryOrderSuperWrapper = new QueryWrapper<>();
deliveryOrderSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(deliveryOrderSuperWrapper,DeliveryOrderEntity.class,queryJson,"0"));
int deliveryOrderNum1 = deliveryOrderSuperWrapper.getExpression().getNormal().size();
if (deliveryOrderNum1>0){
List<String> deliveryOrderList =this.list(deliveryOrderSuperWrapper).stream().map(DeliveryOrderEntity::getId).collect(Collectors.toList());
allSuperList.addAll(deliveryOrderList);
intersectionSuperList.add(deliveryOrderList);
superNum++;
}
String deliveryVoucherRelationTable = "jg_delivery_voucher_relation";
boolean deliveryVoucherRelationHasSql = queryJson.contains(deliveryVoucherRelationTable);
List<String> deliveryVoucherRelationList = generaterSwapUtil.selectIdsByChildCondition(DeliveryOrderConstant.getTableList(), deliveryVoucherRelationTable , queryJson, null);
if (deliveryVoucherRelationHasSql){
allSuperList.addAll(deliveryVoucherRelationList);
intersectionSuperList.add(deliveryVoucherRelationList);
superNum++;
}
String deliveryProductRelationTable = "jg_delivery_product_relation";
boolean deliveryProductRelationHasSql = queryJson.contains(deliveryProductRelationTable);
List<String> deliveryProductRelationList = generaterSwapUtil.selectIdsByChildCondition(DeliveryOrderConstant.getTableList(), deliveryProductRelationTable , queryJson, null);
if (deliveryProductRelationHasSql){
allSuperList.addAll(deliveryProductRelationList);
intersectionSuperList.add(deliveryProductRelationList);
superNum++;
}
superOp = superNum > 0 ? superJsonModel.getMatchLogic() : "";
//and or
if(superOp.equalsIgnoreCase("and")){
allSuperIDlist = generaterSwapUtil.getIntersection(intersectionSuperList);
}else{
allSuperIDlist = allSuperList;
}
}
List<String> allRuleIDlist = new ArrayList<>();
String ruleOp ="";
if (ObjectUtil.isNotEmpty(ruleJson)){
List<String> allRuleList = new ArrayList<>();
List<List<String>> intersectionRuleList = new ArrayList<>();
SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class);
int ruleNum = 0;
QueryWrapper<DeliveryOrderEntity> deliveryOrderSuperWrapper = new QueryWrapper<>();
deliveryOrderSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(deliveryOrderSuperWrapper,DeliveryOrderEntity.class,ruleJson,"0"));
int deliveryOrderNum1 = deliveryOrderSuperWrapper.getExpression().getNormal().size();
if (deliveryOrderNum1>0){
List<String> deliveryOrderList =this.list(deliveryOrderSuperWrapper).stream().map(DeliveryOrderEntity::getId).collect(Collectors.toList());
allRuleList.addAll(deliveryOrderList);
intersectionRuleList.add(deliveryOrderList);
ruleNum++;
}
String deliveryVoucherRelationTable = "jg_delivery_voucher_relation";
boolean deliveryVoucherRelationHasSql = ruleJson.contains(deliveryVoucherRelationTable);
List<String> deliveryVoucherRelationList = generaterSwapUtil.selectIdsByChildCondition(DeliveryOrderConstant.getTableList(), deliveryVoucherRelationTable , ruleJson, null);
if (deliveryVoucherRelationHasSql){
allRuleList.addAll(deliveryVoucherRelationList);
intersectionRuleList.add(deliveryVoucherRelationList);
ruleNum++;
}
String deliveryProductRelationTable = "jg_delivery_product_relation";
boolean deliveryProductRelationHasSql = ruleJson.contains(deliveryProductRelationTable);
List<String> deliveryProductRelationList = generaterSwapUtil.selectIdsByChildCondition(DeliveryOrderConstant.getTableList(), deliveryProductRelationTable , ruleJson, null);
if (deliveryProductRelationHasSql){
allRuleList.addAll(deliveryProductRelationList);
intersectionRuleList.add(deliveryProductRelationList);
ruleNum++;
}
ruleOp = ruleNum > 0 ? ruleJsonModel.getMatchLogic() : "";
//and or
if(ruleOp.equalsIgnoreCase("and")){
allRuleIDlist = generaterSwapUtil.getIntersection(intersectionRuleList);
}else{
allRuleIDlist = allRuleList;
}
}
boolean pcPermission = true;
boolean appPermission = false;
if(isPc && pcPermission){
if (!userProvider.get().getIsAdministrator()){
Object deliveryOrderObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(deliveryOrderQueryWrapper,DeliveryOrderEntity.class,deliveryOrderPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(deliveryOrderObj)){
return new ArrayList<>();
} else {
deliveryOrderQueryWrapper = (QueryWrapper<DeliveryOrderEntity>)deliveryOrderObj;
if( deliveryOrderQueryWrapper.getExpression().getNormal().size()>0){
deliveryOrderNum++;
}
}
Object deliveryVoucherRelationObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(deliveryVoucherRelationQueryWrapper,DeliveryVoucherRelationEntity.class,deliveryOrderPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(deliveryVoucherRelationObj)){
return new ArrayList<>();
} else {
deliveryVoucherRelationQueryWrapper = (QueryWrapper<DeliveryVoucherRelationEntity>)deliveryVoucherRelationObj;
if( deliveryVoucherRelationQueryWrapper.getExpression().getNormal().size()>0){
deliveryVoucherRelationNum++;
}
}
Object deliveryProductRelationObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(deliveryProductRelationQueryWrapper,DeliveryProductRelationEntity.class,deliveryOrderPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(deliveryProductRelationObj)){
return new ArrayList<>();
} else {
deliveryProductRelationQueryWrapper = (QueryWrapper<DeliveryProductRelationEntity>)deliveryProductRelationObj;
if( deliveryProductRelationQueryWrapper.getExpression().getNormal().size()>0){
deliveryProductRelationNum++;
}
}
}
}
if(!isPc && appPermission){
if (!userProvider.get().getIsAdministrator()){
Object deliveryOrderObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(deliveryOrderQueryWrapper,DeliveryOrderEntity.class,deliveryOrderPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(deliveryOrderObj)){
return new ArrayList<>();
} else {
deliveryOrderQueryWrapper = (QueryWrapper<DeliveryOrderEntity>)deliveryOrderObj;
if( deliveryOrderQueryWrapper.getExpression().getNormal().size()>0){
deliveryOrderNum++;
}
}
Object deliveryVoucherRelationObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(deliveryVoucherRelationQueryWrapper,DeliveryVoucherRelationEntity.class,deliveryOrderPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(deliveryVoucherRelationObj)){
return new ArrayList<>();
} else {
deliveryVoucherRelationQueryWrapper = (QueryWrapper<DeliveryVoucherRelationEntity>)deliveryVoucherRelationObj;
if( deliveryVoucherRelationQueryWrapper.getExpression().getNormal().size()>0){
deliveryVoucherRelationNum++;
}
}
Object deliveryProductRelationObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(deliveryProductRelationQueryWrapper,DeliveryProductRelationEntity.class,deliveryOrderPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(deliveryProductRelationObj)){
return new ArrayList<>();
} else {
deliveryProductRelationQueryWrapper = (QueryWrapper<DeliveryProductRelationEntity>)deliveryProductRelationObj;
if( deliveryProductRelationQueryWrapper.getExpression().getNormal().size()>0){
deliveryProductRelationNum++;
}
}
}
}
if(isPc){
if(ObjectUtil.isNotEmpty(deliveryOrderPagination.getDeliveryCode())){
deliveryOrderNum++;
String value = deliveryOrderPagination.getDeliveryCode() instanceof List ?
JsonUtil.getObjectToString(deliveryOrderPagination.getDeliveryCode()) :
String.valueOf(deliveryOrderPagination.getDeliveryCode());
deliveryOrderQueryWrapper.lambda().like(DeliveryOrderEntity::getDeliveryCode,value);
}
if(ObjectUtil.isNotEmpty(deliveryOrderPagination.getDeliveryType())){
deliveryOrderNum++;
deliveryOrderQueryWrapper.lambda().eq(DeliveryOrderEntity::getDeliveryType,deliveryOrderPagination.getDeliveryType());
}
if(ObjectUtil.isNotEmpty(deliveryOrderPagination.getPreparationTime())){
deliveryOrderNum++;
List PreparationTimeList = JsonUtil.getJsonToList(deliveryOrderPagination.getPreparationTime(),String.class);
Long fir = Long.valueOf(String.valueOf(PreparationTimeList.get(0)));
Long sec = Long.valueOf(String.valueOf(PreparationTimeList.get(1)));
deliveryOrderQueryWrapper.lambda().ge(DeliveryOrderEntity::getPreparationTime, new Date(fir))
.le(DeliveryOrderEntity::getPreparationTime, DateUtil.stringToDate(DateUtil.daFormatYmd(sec) + " 23:59:59"));
}
}
if(deliveryVoucherRelationNum>0){
List<String> deliveryVoucherRelationIdList = deliveryVoucherRelationService.list(deliveryVoucherRelationQueryWrapper).stream().filter(t->StringUtil.isNotEmpty(t.getOrderId())).map(t->t.getOrderId()).collect(Collectors.toList());
long count = deliveryVoucherRelationService.count();
if (count>0){
intersectionList.add(deliveryVoucherRelationIdList);
}
AllIdList.addAll(deliveryVoucherRelationIdList);
}
total+=deliveryVoucherRelationNum;
if(deliveryProductRelationNum>0){
List<String> deliveryProductRelationIdList = deliveryProductRelationService.list(deliveryProductRelationQueryWrapper).stream().filter(t->StringUtil.isNotEmpty(t.getOrderId())).map(t->t.getOrderId()).collect(Collectors.toList());
long count = deliveryProductRelationService.count();
if (count>0){
intersectionList.add(deliveryProductRelationIdList);
}
AllIdList.addAll(deliveryProductRelationIdList);
}
total+=deliveryProductRelationNum;
List<String> intersection = generaterSwapUtil.getIntersection(intersectionList);
if (total>0){
if (intersection.size()==0){
intersection.add("jnpfNullList");
}
deliveryOrderQueryWrapper.lambda().in(DeliveryOrderEntity::getId, intersection);
}
//是否有高级查询
if (StringUtil.isNotEmpty(superOp)){
if (allSuperIDlist.size()==0){
allSuperIDlist.add("jnpfNullList");
}
List<String> finalAllSuperIDlist = allSuperIDlist;
deliveryOrderQueryWrapper.lambda().and(t->t.in(DeliveryOrderEntity::getId, finalAllSuperIDlist));
}
//是否有数据过滤查询
if (StringUtil.isNotEmpty(ruleOp)){
if (allRuleIDlist.size()==0){
allRuleIDlist.add("jnpfNullList");
}
List<String> finalAllRuleIDlist = allRuleIDlist;
deliveryOrderQueryWrapper.lambda().and(t->t.in(DeliveryOrderEntity::getId, finalAllRuleIDlist));
}
//假删除标志
deliveryOrderQueryWrapper.lambda().isNull(DeliveryOrderEntity::getDeleteMark);
//排序
if(StringUtil.isEmpty(deliveryOrderPagination.getSidx())){
deliveryOrderQueryWrapper.lambda().orderByDesc(DeliveryOrderEntity::getId);
}else{
try {
String sidx = deliveryOrderPagination.getSidx();
String[] strs= sidx.split("_name");
DeliveryOrderEntity deliveryOrderEntity = new DeliveryOrderEntity();
Field declaredField = deliveryOrderEntity.getClass().getDeclaredField(strs[0]);
declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value();
deliveryOrderQueryWrapper="asc".equals(deliveryOrderPagination.getSort().toLowerCase())?deliveryOrderQueryWrapper.orderByAsc(value):deliveryOrderQueryWrapper.orderByDesc(value);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
if("0".equals(dataType)){
if((total>0 && AllIdList.size()>0) || total==0){
Page<DeliveryOrderEntity> page=new Page<>(deliveryOrderPagination.getCurrentPage(), deliveryOrderPagination.getPageSize());
IPage<DeliveryOrderEntity> userIPage=this.page(page, deliveryOrderQueryWrapper);
return deliveryOrderPagination.setData(userIPage.getRecords(),userIPage.getTotal());
}else{
List<DeliveryOrderEntity> list = new ArrayList();
return deliveryOrderPagination.setData(list, list.size());
}
}else{
return this.list(deliveryOrderQueryWrapper);
}
}
@Override
public DeliveryOrderEntity getInfo(String id){
QueryWrapper<DeliveryOrderEntity> queryWrapper=new QueryWrapper<>();
queryWrapper.lambda().eq(DeliveryOrderEntity::getId,id);
return this.getOne(queryWrapper);
}
@Override
public void create(DeliveryOrderEntity entity){
this.save(entity);
}
@Override
public boolean update(String id, DeliveryOrderEntity entity){
return this.updateById(entity);
}
@Override
public void delete(DeliveryOrderEntity entity){
if(entity!=null){
this.removeById(entity.getId());
}
}
/** DeliveryVoucherRelation子表方法 */
@Override
public List<DeliveryVoucherRelationEntity> getDeliveryVoucherRelationList(String id,DeliveryOrderPagination deliveryOrderPagination){
Map<String, Object> newtabMap=DeliveryOrderConstant.TABLEFIELDKEY.entrySet()
.stream().collect( Collectors.toMap(e->e.getValue(),e->e.getKey()));
String tableName="deliveryVoucherRelation";
tableName=newtabMap.get(tableName)==null?tableName:newtabMap.get(tableName).toString();
QueryWrapper<DeliveryVoucherRelationEntity> queryWrapper = new QueryWrapper<>();
queryWrapper = deliveryVoucherRelationService.getChild(deliveryOrderPagination,queryWrapper);
queryWrapper.lambda().eq(DeliveryVoucherRelationEntity::getOrderId, id);
generaterSwapUtil.wrapperHandle(DeliveryOrderConstant.getColumnData(), DeliveryOrderConstant.getAppColumnData(), queryWrapper,DeliveryVoucherRelationEntity.class,"sub",tableName);
return deliveryVoucherRelationService.list(queryWrapper);
}
/** DeliveryVoucherRelation子表方法 */
@Override
public List<DeliveryVoucherRelationEntity> getDeliveryVoucherRelationList(String id){
QueryWrapper<DeliveryVoucherRelationEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(DeliveryVoucherRelationEntity::getOrderId, id);
return deliveryVoucherRelationService.list(queryWrapper);
}
/** DeliveryProductRelation子表方法 */
@Override
public List<DeliveryProductRelationEntity> getDeliveryProductRelationList(String id,DeliveryOrderPagination deliveryOrderPagination){
Map<String, Object> newtabMap=DeliveryOrderConstant.TABLEFIELDKEY.entrySet()
.stream().collect( Collectors.toMap(e->e.getValue(),e->e.getKey()));
String tableName="deliveryProductRelation";
tableName=newtabMap.get(tableName)==null?tableName:newtabMap.get(tableName).toString();
QueryWrapper<DeliveryProductRelationEntity> queryWrapper = new QueryWrapper<>();
queryWrapper = deliveryProductRelationService.getChild(deliveryOrderPagination,queryWrapper);
queryWrapper.lambda().eq(DeliveryProductRelationEntity::getOrderId, id);
generaterSwapUtil.wrapperHandle(DeliveryOrderConstant.getColumnData(), DeliveryOrderConstant.getAppColumnData(), queryWrapper,DeliveryProductRelationEntity.class,"sub",tableName);
return deliveryProductRelationService.list(queryWrapper);
}
/** DeliveryProductRelation子表方法 */
@Override
public List<DeliveryProductRelationEntity> getDeliveryProductRelationList(String id){
QueryWrapper<DeliveryProductRelationEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(DeliveryProductRelationEntity::getOrderId, id);
return deliveryProductRelationService.list(queryWrapper);
}
/** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
@Override
public String checkForm(DeliveryOrderForm form,int i) {
boolean isUp =StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
String id="";
String countRecover = "";
if (isUp){
id = form.getId();
}
//主表字段验证
if(StringUtil.isEmpty(form.getDeliveryAddress())){
return "收货地址不能为空";
}
//子表字段验证
if (form.getDeliveryVoucherRelationList()!=null){
}
if (form.getDeliveryProductRelationList()!=null){
}
return countRecover;
}
/**
* ()
* @param id
* @param deliveryOrderForm
* @return
*/
@Override
@Transactional
public void saveOrUpdate(DeliveryOrderForm deliveryOrderForm,String id, boolean isSave) throws Exception{
UserInfo userInfo=userProvider.get();
UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId());
deliveryOrderForm = JsonUtil.getJsonToBean(
generaterSwapUtil.swapDatetime(DeliveryOrderConstant.getFormData(),deliveryOrderForm),DeliveryOrderForm.class);
DeliveryOrderEntity entity = JsonUtil.getJsonToBean(deliveryOrderForm, DeliveryOrderEntity.class);
if(isSave){
String mainId = id ;
entity.setDeliveryCode(generaterSwapUtil.getBillNumber("ssfh", false));
entity.setPreparationTime(DateUtil.getNowDate());
entity.setId(mainId);
entity.setFlowId(deliveryOrderForm.getFlowId());
entity.setVersion(0);
}else{
entity.setDeliveryCode(generaterSwapUtil.getBillNumber("ssfh", false));
entity.setPreparationTime(DateUtil.getNowDate());
entity.setFlowId(deliveryOrderForm.getFlowId());
}
this.saveOrUpdate(entity);
//DeliveryVoucherRelation子表数据新增修改
if(!isSave){
QueryWrapper<DeliveryVoucherRelationEntity> DeliveryVoucherRelationqueryWrapper = new QueryWrapper<>();
DeliveryVoucherRelationqueryWrapper.lambda().eq(DeliveryVoucherRelationEntity::getOrderId, entity.getId());
deliveryVoucherRelationService.remove(DeliveryVoucherRelationqueryWrapper);
}
if (deliveryOrderForm.getDeliveryVoucherRelationList()!=null){
List<DeliveryVoucherRelationEntity> tableField128 = JsonUtil.getJsonToList(deliveryOrderForm.getDeliveryVoucherRelationList(),DeliveryVoucherRelationEntity.class);
for(DeliveryVoucherRelationEntity entitys : tableField128){
entitys.setId(RandomUtil.uuId());
entitys.setOrderId(entity.getId());
if(isSave){
}else{
}
deliveryVoucherRelationService.saveOrUpdate(entitys);
}
}
//DeliveryProductRelation子表数据新增修改
if(!isSave){
QueryWrapper<DeliveryProductRelationEntity> DeliveryProductRelationqueryWrapper = new QueryWrapper<>();
DeliveryProductRelationqueryWrapper.lambda().eq(DeliveryProductRelationEntity::getOrderId, entity.getId());
deliveryProductRelationService.remove(DeliveryProductRelationqueryWrapper);
}
if (deliveryOrderForm.getDeliveryProductRelationList()!=null){
List<DeliveryProductRelationEntity> tableField144 = JsonUtil.getJsonToList(deliveryOrderForm.getDeliveryProductRelationList(),DeliveryProductRelationEntity.class);
for(DeliveryProductRelationEntity entitys : tableField144){
entitys.setId(RandomUtil.uuId());
entitys.setOrderId(entity.getId());
if(isSave){
}else{
}
deliveryProductRelationService.saveOrUpdate(entitys);
}
}
}
}

@ -0,0 +1,59 @@
package jnpf.service.impl;
import jnpf.entity.*;
import jnpf.mapper.DeliveryProductRelationMapper;
import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.deliveryorder.*;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel;
import jnpf.model.QueryModel;
import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel;
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.*;
import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity;
/**
*
* deliveryOrder
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
@Service
public class DeliveryProductRelationServiceImpl extends ServiceImpl<DeliveryProductRelationMapper, DeliveryProductRelationEntity> implements DeliveryProductRelationService{
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@Autowired
private UserProvider userProvider;
//子表过滤方法
@Override
public QueryWrapper<DeliveryProductRelationEntity> getChild(DeliveryOrderPagination pagination, QueryWrapper<DeliveryProductRelationEntity> deliveryProductRelationQueryWrapper){
boolean pcPermission = true;
boolean appPermission = false;
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
String ruleQueryJson = isPc?DeliveryOrderConstant.getColumnData():DeliveryOrderConstant.getAppColumnData();
ColumnDataModel dataModel = JsonUtil.getJsonToBean(ruleQueryJson,ColumnDataModel.class);
String ruleJson = isPc?JsonUtil.getObjectToString(dataModel.getRuleList()):JsonUtil.getObjectToString(dataModel.getRuleListApp());
if(isPc){
}
return deliveryProductRelationQueryWrapper;
}
}

@ -0,0 +1,59 @@
package jnpf.service.impl;
import jnpf.entity.*;
import jnpf.mapper.DeliveryVoucherRelationMapper;
import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.deliveryorder.*;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel;
import jnpf.model.QueryModel;
import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel;
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.*;
import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity;
/**
*
* deliveryOrder
* V3.5
* https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
@Service
public class DeliveryVoucherRelationServiceImpl extends ServiceImpl<DeliveryVoucherRelationMapper, DeliveryVoucherRelationEntity> implements DeliveryVoucherRelationService{
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@Autowired
private UserProvider userProvider;
//子表过滤方法
@Override
public QueryWrapper<DeliveryVoucherRelationEntity> getChild(DeliveryOrderPagination pagination, QueryWrapper<DeliveryVoucherRelationEntity> deliveryVoucherRelationQueryWrapper){
boolean pcPermission = true;
boolean appPermission = false;
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
String ruleQueryJson = isPc?DeliveryOrderConstant.getColumnData():DeliveryOrderConstant.getAppColumnData();
ColumnDataModel dataModel = JsonUtil.getJsonToBean(ruleQueryJson,ColumnDataModel.class);
String ruleJson = isPc?JsonUtil.getObjectToString(dataModel.getRuleList()):JsonUtil.getObjectToString(dataModel.getRuleListApp());
if(isPc){
}
return deliveryVoucherRelationQueryWrapper;
}
}

@ -30,6 +30,9 @@ import jnpf.util.*;
import java.util.*; import java.util.*;
import jnpf.base.UserInfo; import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity; import jnpf.permission.entity.UserEntity;
import javax.annotation.Resource;
/** /**
* *
* voucher * voucher
@ -50,6 +53,9 @@ public class VoucherServiceImpl extends ServiceImpl<VoucherMapper, VoucherEntity
private VoucherProductService voucherProductService; private VoucherProductService voucherProductService;
@Autowired @Autowired
private VoucherVehicleService voucherVehicleService; private VoucherVehicleService voucherVehicleService;
@Resource
private VoucherMapper voucherMapper;
@Override @Override
public List<VoucherEntity> getList(VoucherPagination voucherPagination){ public List<VoucherEntity> getList(VoucherPagination voucherPagination){
return getTypeList(voucherPagination,voucherPagination.getDataType()); return getTypeList(voucherPagination,voucherPagination.getDataType());
@ -542,4 +548,9 @@ public class VoucherServiceImpl extends ServiceImpl<VoucherMapper, VoucherEntity
} }
} }
} }
@Override
public List<VoucherEntity> querySaleDeliveryVoucherInfo() {
return voucherMapper.querySaleDeliveryVoucher();
}
} }

@ -0,0 +1,549 @@
package jnpf.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jnpf.base.ActionResult;
import jnpf.base.UserInfo;
import jnpf.exception.DataException;
import jnpf.permission.entity.UserEntity;
import jnpf.service.*;
import jnpf.entity.*;
import jnpf.util.*;
import jnpf.model.deliveryorder.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.*;
import jnpf.annotation.JnpfField;
import jnpf.base.vo.PageListVO;
import jnpf.base.vo.PaginationVO;
import jnpf.base.vo.DownloadVO;
import jnpf.config.ConfigValueUtil;
import jnpf.base.entity.ProvinceEntity;
import java.io.IOException;
import java.util.stream.Collectors;
import jnpf.engine.entity.FlowTaskEntity;
import jnpf.exception.WorkFlowException;
import org.springframework.web.multipart.MultipartFile;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.File;
import jnpf.onlinedev.model.ExcelImFieldModel;
import jnpf.onlinedev.model.OnlineImport.ImportDataModel;
import jnpf.onlinedev.model.OnlineImport.ImportFormCheckUniqueModel;
import jnpf.onlinedev.model.OnlineImport.ExcelImportModel;
import jnpf.onlinedev.model.OnlineImport.VisualImportModel;
import cn.xuyanwu.spring.file.storage.FileInfo;
import lombok.Cleanup;
import jnpf.model.visualJson.config.HeaderModel;
import jnpf.base.model.ColumnDataModel;
import jnpf.base.util.VisualUtils;
import org.springframework.transaction.annotation.Transactional;
/**
* deliveryOrder
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-02-23
*/
@Slf4j
@RestController
@Tag(name = "deliveryOrder" , description = "scm")
@RequestMapping("/api/scm/DeliveryOrder")
public class DeliveryOrderController {
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@Autowired
private UserProvider userProvider;
@Autowired
private DeliveryOrderService deliveryOrderService;
@Autowired
private DeliveryVoucherRelationService deliveryVoucherRelationService;
@Autowired
private DeliveryProductRelationService deliveryProductRelationService;
@Autowired
private ConfigValueUtil configValueUtil;
/**
*
*
* @param deliveryOrderPagination
* @return
*/
@Operation(summary = "获取列表")
@PostMapping("/getList")
public ActionResult list(@RequestBody DeliveryOrderPagination deliveryOrderPagination)throws IOException{
List<DeliveryOrderEntity> list= deliveryOrderService.getList(deliveryOrderPagination);
List<Map<String, Object>> realList=new ArrayList<>();
for (DeliveryOrderEntity entity : list) {
Map<String, Object> deliveryOrderMap=JsonUtil.entityToMap(entity);
deliveryOrderMap.put("id", deliveryOrderMap.get("id"));
//副表数据
//子表数据
List<DeliveryVoucherRelationEntity> deliveryVoucherRelationList = deliveryOrderService.getDeliveryVoucherRelationList(entity.getId(),deliveryOrderPagination);
deliveryOrderMap.put("tableField128",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(deliveryVoucherRelationList)));
List<DeliveryProductRelationEntity> deliveryProductRelationList = deliveryOrderService.getDeliveryProductRelationList(entity.getId(),deliveryOrderPagination);
deliveryOrderMap.put("tableField144",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(deliveryProductRelationList)));
realList.add(deliveryOrderMap);
}
//数据转换
realList = generaterSwapUtil.swapDataList(realList, DeliveryOrderConstant.getFormData(), DeliveryOrderConstant.getColumnData(), deliveryOrderPagination.getModuleId(),false);
//流程状态添加
for(Map<String, Object> vo:realList){
FlowTaskEntity flowTaskEntity = generaterSwapUtil.getInfoSubmit(String.valueOf(vo.get("id")), FlowTaskEntity::getStatus);
if (flowTaskEntity!=null){
vo.put("flowState",flowTaskEntity.getStatus());
}else{
vo.put("flowState",null);
}
//添加流程id
String flowId="";
if(vo.get("flowid")!=null){
flowId = String.valueOf(vo.get("flowid"));
}
if(vo.get("flowid".toUpperCase())!=null){
flowId = String.valueOf(vo.get("flowid".toUpperCase()));
}
if(StringUtil.isNotEmpty(flowId)){
vo.put("flowId" ,flowId);
}
}
//返回对象
PageListVO vo = new PageListVO();
vo.setList(realList);
PaginationVO page = JsonUtil.getJsonToBean(deliveryOrderPagination, PaginationVO.class);
vo.setPagination(page);
return ActionResult.success(vo);
}
/**
*
*
* @param deliveryOrderForm
* @return
*/
@PostMapping("/{id}")
@Operation(summary = "创建")
public ActionResult create(@PathVariable("id") String id, @RequestBody @Valid DeliveryOrderForm deliveryOrderForm) {
String b = deliveryOrderService.checkForm(deliveryOrderForm,0);
if (StringUtil.isNotEmpty(b)){
return ActionResult.fail(b );
}
try{
deliveryOrderService.saveOrUpdate(deliveryOrderForm, id ,true);
}catch(Exception e){
return ActionResult.fail("新增数据失败");
}
return ActionResult.success("创建成功");
}
/**
* Excel
*
* @return
*/
@Operation(summary = "导出Excel")
@PostMapping("/Actions/Export")
public ActionResult Export(@RequestBody DeliveryOrderPagination deliveryOrderPagination) throws IOException {
if (StringUtil.isEmpty(deliveryOrderPagination.getSelectKey())){
return ActionResult.fail("请选择导出字段");
}
List<DeliveryOrderEntity> list= deliveryOrderService.getList(deliveryOrderPagination);
List<Map<String, Object>> realList=new ArrayList<>();
for (DeliveryOrderEntity entity : list) {
Map<String, Object> deliveryOrderMap=JsonUtil.entityToMap(entity);
deliveryOrderMap.put("id", deliveryOrderMap.get("id"));
//副表数据
//子表数据
List<DeliveryVoucherRelationEntity> deliveryVoucherRelationList = deliveryOrderService.getDeliveryVoucherRelationList(entity.getId(),deliveryOrderPagination);
deliveryOrderMap.put("tableField128",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(deliveryVoucherRelationList)));
List<DeliveryProductRelationEntity> deliveryProductRelationList = deliveryOrderService.getDeliveryProductRelationList(entity.getId(),deliveryOrderPagination);
deliveryOrderMap.put("tableField144",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(deliveryProductRelationList)));
realList.add(deliveryOrderMap);
}
//数据转换
realList = generaterSwapUtil.swapDataList(realList, DeliveryOrderConstant.getFormData(), DeliveryOrderConstant.getColumnData(), deliveryOrderPagination.getModuleId(),false);
String[]keys=!StringUtil.isEmpty(deliveryOrderPagination.getSelectKey())?deliveryOrderPagination.getSelectKey():new String[0];
UserInfo userInfo=userProvider.get();
DownloadVO vo=this.creatModelExcel(configValueUtil.getTemporaryFilePath(),realList,keys,userInfo);
return ActionResult.success(vo);
}
/**
*
*/
public DownloadVO creatModelExcel(String path,List<Map<String, Object>>list,String[]keys,UserInfo userInfo){
DownloadVO vo=DownloadVO.builder().build();
List<ExcelExportEntity> entitys=new ArrayList<>();
if(keys.length>0){
ExcelExportEntity tableField128ExcelEntity = new ExcelExportEntity("","tableField128");
List<ExcelExportEntity> tableField128List = new ArrayList<>();
ExcelExportEntity tableField144ExcelEntity = new ExcelExportEntity("","tableField144");
List<ExcelExportEntity> tableField144List = new ArrayList<>();
for(String key:keys){
switch(key){
case "deliveryType" :
entitys.add(new ExcelExportEntity("业务类型" ,"deliveryType"));
break;
case "deliveryCode" :
entitys.add(new ExcelExportEntity("订单编号" ,"deliveryCode"));
break;
case "preparationTime" :
entitys.add(new ExcelExportEntity("制单时间" ,"preparationTime"));
break;
case "businessId" :
entitys.add(new ExcelExportEntity("关联销售" ,"businessId"));
break;
case "reservedFields1" :
entitys.add(new ExcelExportEntity("业务线" ,"reservedFields1"));
break;
case "subjectId" :
entitys.add(new ExcelExportEntity("客户名称" ,"subjectId"));
break;
case "deliveryAddress" :
entitys.add(new ExcelExportEntity("收货地址" ,"deliveryAddress"));
break;
case "enterpriseId" :
entitys.add(new ExcelExportEntity("机构名称" ,"enterpriseId"));
break;
case "warehouseId" :
entitys.add(new ExcelExportEntity("发货仓库" ,"warehouseId"));
break;
case "shippingAddress" :
entitys.add(new ExcelExportEntity("发货地址" ,"shippingAddress"));
break;
case "remark" :
entitys.add(new ExcelExportEntity("备注" ,"remark"));
break;
case "tableField128-voucherId":
tableField128List.add(new ExcelExportEntity("凭证编号" ,"voucherId"));
break;
case "tableField128-documentType":
tableField128List.add(new ExcelExportEntity("单据类型" ,"documentType"));
break;
case "tableField128-voucherType":
tableField128List.add(new ExcelExportEntity("凭证类型" ,"voucherType"));
break;
case "tableField128-poundCode":
tableField128List.add(new ExcelExportEntity("磅单编号" ,"poundCode"));
break;
case "tableField128-poundlistTime":
tableField128List.add(new ExcelExportEntity("磅单时间" ,"poundlistTime"));
break;
case "tableField128-vehicleName":
tableField128List.add(new ExcelExportEntity("车牌号" ,"vehicleName"));
break;
case "tableField128-productId":
tableField128List.add(new ExcelExportEntity("商品名称" ,"productId"));
break;
case "tableField128-spec":
tableField128List.add(new ExcelExportEntity("规格" ,"spec"));
break;
case "tableField128-unit":
tableField128List.add(new ExcelExportEntity("单位" ,"unit"));
break;
case "tableField128-grossWeight":
tableField128List.add(new ExcelExportEntity("毛重" ,"grossWeight"));
break;
case "tableField128-tareWeight":
tableField128List.add(new ExcelExportEntity("皮重" ,"tareWeight"));
break;
case "tableField128-buckleWeight":
tableField128List.add(new ExcelExportEntity("扣重" ,"buckleWeight"));
break;
case "tableField128-netWeight":
tableField128List.add(new ExcelExportEntity("净重" ,"netWeight"));
break;
case "tableField128-remark":
tableField128List.add(new ExcelExportEntity("备注" ,"remark"));
break;
case "tableField144-productId":
tableField144List.add(new ExcelExportEntity("商品名称" ,"productId"));
break;
case "tableField144-spec":
tableField144List.add(new ExcelExportEntity("规格" ,"spec"));
break;
case "tableField144-inventoryUnitId":
tableField144List.add(new ExcelExportEntity("库存单位" ,"inventoryUnitId"));
break;
case "tableField144-salesMainUnitId":
tableField144List.add(new ExcelExportEntity("销售单位" ,"salesMainUnitId"));
break;
case "tableField144-saleNum":
tableField144List.add(new ExcelExportEntity("销售数量" ,"saleNum"));
break;
case "tableField144-deliveryUnit":
tableField144List.add(new ExcelExportEntity("发货单位" ,"deliveryUnit"));
break;
case "tableField144-grossWeight":
tableField144List.add(new ExcelExportEntity("毛重" ,"grossWeight"));
break;
case "tableField144-tareWeight":
tableField144List.add(new ExcelExportEntity("皮重" ,"tareWeight"));
break;
case "tableField144-buckleWeight":
tableField144List.add(new ExcelExportEntity("扣重" ,"buckleWeight"));
break;
case "tableField144-netWeight":
tableField144List.add(new ExcelExportEntity("净重" ,"netWeight"));
break;
case "tableField144-cargoId":
tableField144List.add(new ExcelExportEntity("货区名称" ,"cargoId"));
break;
case "tableField144-deliveryNum":
tableField144List.add(new ExcelExportEntity("发货数量" ,"deliveryNum"));
break;
case "tableField144-batchNo":
tableField144List.add(new ExcelExportEntity("批次号" ,"batchNo"));
break;
case "tableField144-produceTime":
tableField144List.add(new ExcelExportEntity("生产日期" ,"produceTime"));
break;
case "tableField144-returnUnit":
tableField144List.add(new ExcelExportEntity("退货单价" ,"returnUnit"));
break;
case "tableField144-tax":
tableField144List.add(new ExcelExportEntity("税率" ,"tax"));
break;
case "tableField144-taxCount":
tableField144List.add(new ExcelExportEntity("含税小计" ,"taxCount"));
break;
case "tableField144-notTaxPrice":
tableField144List.add(new ExcelExportEntity("不含税单价" ,"notTaxPrice"));
break;
case "tableField144-notTaxCount":
tableField144List.add(new ExcelExportEntity("不含税小计" ,"notTaxCount"));
break;
case "tableField144-remark":
tableField144List.add(new ExcelExportEntity("备注" ,"remark"));
break;
default:
break;
}
}
if(tableField128List.size() > 0){
tableField128ExcelEntity.setList(tableField128List);
entitys.add(tableField128ExcelEntity);
}
if(tableField144List.size() > 0){
tableField144ExcelEntity.setList(tableField144List);
entitys.add(tableField144ExcelEntity);
}
}
ExportParams exportParams = new ExportParams(null, "表单信息");
exportParams.setType(ExcelType.XSSF);
try{
@Cleanup Workbook workbook = new HSSFWorkbook();
if (entitys.size()>0){
if (list.size()==0){
list.add(new HashMap<>());
}
//去除空数据
List<Map<String, Object>> dataList = new ArrayList<>();
for (Map<String, Object> map : list) {
int i = 0;
for (String key : keys) {
//子表
if (key.toLowerCase().startsWith("tablefield")) {
String tableField = key.substring(0, key.indexOf("-" ));
String field = key.substring(key.indexOf("-" ) + 1);
Object o = map.get(tableField);
if (o != null) {
List<Map<String, Object>> childList = (List<Map<String, Object>>) o;
for (Map<String, Object> childMap : childList) {
if (childMap.get(field) != null) {
i++;
}
}
}
} else {
Object o = map.get(key);
if (o != null) {
i++;
}
}
}
if (i > 0) {
dataList.add(map);
}
}
//复杂表头-表头和数据处理
ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(DeliveryOrderConstant.getColumnData(), ColumnDataModel.class);
List<HeaderModel> complexHeaderList = columnDataModel.getComplexHeaderList();
if (!Objects.equals(columnDataModel.getType(), 3) && !Objects.equals(columnDataModel.getType(), 5)) {
entitys = VisualUtils.complexHeaderHandel(entitys, complexHeaderList);
dataList = VisualUtils.complexHeaderDataHandel(dataList, complexHeaderList);
}
workbook = ExcelExportUtil.exportExcel(exportParams, entitys, dataList);
}
String fileName = "表单信息" + DateUtil.dateNow("yyyyMMdd") + "_" + RandomUtil.uuId() + ".xlsx";
MultipartFile multipartFile = ExcelUtil.workbookToCommonsMultipartFile(workbook, fileName);
String temporaryFilePath = configValueUtil.getTemporaryFilePath();
FileInfo fileInfo = FileUploadUtils.uploadFile(multipartFile, temporaryFilePath, fileName);
vo.setName(fileInfo.getFilename());
vo.setUrl(UploaderUtil.uploaderFile(fileInfo.getFilename() + "#" + "Temporary") + "&name=" + fileName);
} catch (Exception e) {
log.error("信息导出Excel错误:{}", e.getMessage());
e.printStackTrace();
}
return vo;
}
/**
*
* @param ids
* @return
*/
@DeleteMapping("/batchRemove")
@Transactional
@Operation(summary = "批量删除")
public ActionResult batchRemove(@RequestBody String ids){
List<String> idList = JsonUtil.getJsonToList(ids, String.class);
List<String> columnIdList = new ArrayList<>(20);
int i =0;
String errInfo = "";
for (String allId : idList){
FlowTaskEntity taskEntity = generaterSwapUtil.getInfoSubmit(allId, FlowTaskEntity::getId, FlowTaskEntity::getStatus);
if (taskEntity==null){
columnIdList.add(allId);
this.delete(allId);
}else if (taskEntity.getStatus().equals(0) || taskEntity.getStatus().equals(4)){
try {
generaterSwapUtil.deleteFlowTask(taskEntity);
columnIdList.add(allId);
this.delete(allId);
i++;
} catch (WorkFlowException e) {
errInfo = e.getMessage();
e.printStackTrace();
}
}
}
if (i == 0 && columnIdList.size()==0){
return ActionResult.fail("流程已发起,无法删除");
}
if (StringUtil.isNotEmpty(errInfo)){
return ActionResult.fail(errInfo);
}
return ActionResult.success("删除成功");
}
/**
*
* @param id
* @param deliveryOrderForm
* @return
*/
@PutMapping("/{id}")
@Operation(summary = "更新")
public ActionResult update(@PathVariable("id") String id,@RequestBody @Valid DeliveryOrderForm deliveryOrderForm,
@RequestParam(value = "isImport", required = false) boolean isImport){
deliveryOrderForm.setId(id);
if (!isImport) {
String b = deliveryOrderService.checkForm(deliveryOrderForm,1);
if (StringUtil.isNotEmpty(b)){
return ActionResult.fail(b );
}
}
DeliveryOrderEntity entity= deliveryOrderService.getInfo(id);
if(entity!=null){
try{
deliveryOrderService.saveOrUpdate(deliveryOrderForm,id,false);
}catch(Exception e){
return ActionResult.fail("修改数据失败");
}
return ActionResult.success("更新成功");
}else{
return ActionResult.fail("更新失败,数据不存在");
}
}
/**
*
* @param id
* @return
*/
@Operation(summary = "删除")
@DeleteMapping("/{id}")
@Transactional
public ActionResult delete(@PathVariable("id") String id){
DeliveryOrderEntity entity= deliveryOrderService.getInfo(id);
if(entity!=null){
FlowTaskEntity taskEntity = generaterSwapUtil.getInfoSubmit(id, FlowTaskEntity::getId, FlowTaskEntity::getStatus);
if (taskEntity != null) {
try {
generaterSwapUtil.deleteFlowTask(taskEntity);
} catch (WorkFlowException e) {
e.printStackTrace();
}
}
//假删除
entity.setDeleteMark(1);
deliveryOrderService.update(id,entity);
}
return ActionResult.success("删除成功");
}
/**
* ()
* 使-
* @param id
* @return
*/
@Operation(summary = "表单信息(详情页)")
@GetMapping("/detail/{id}")
public ActionResult detailInfo(@PathVariable("id") String id){
DeliveryOrderEntity entity= deliveryOrderService.getInfo(id);
if(entity==null){
return ActionResult.fail("表单数据不存在!");
}
Map<String, Object> deliveryOrderMap=JsonUtil.entityToMap(entity);
deliveryOrderMap.put("id", deliveryOrderMap.get("id"));
//副表数据
//子表数据
List<DeliveryVoucherRelationEntity> deliveryVoucherRelationList = deliveryOrderService.getDeliveryVoucherRelationList(entity.getId());
deliveryOrderMap.put("tableField128",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(deliveryVoucherRelationList)));
List<DeliveryProductRelationEntity> deliveryProductRelationList = deliveryOrderService.getDeliveryProductRelationList(entity.getId());
deliveryOrderMap.put("tableField144",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(deliveryProductRelationList)));
deliveryOrderMap = generaterSwapUtil.swapDataDetail(deliveryOrderMap,DeliveryOrderConstant.getFormData(),"530411417380062341",false);
return ActionResult.success(deliveryOrderMap);
}
/**
* ()
* 使-
* @param id
* @return
*/
@Operation(summary = "信息")
@GetMapping("/{id}")
public ActionResult info(@PathVariable("id") String id){
DeliveryOrderEntity entity= deliveryOrderService.getInfo(id);
if(entity==null){
return ActionResult.fail("表单数据不存在!");
}
Map<String, Object> deliveryOrderMap=JsonUtil.entityToMap(entity);
deliveryOrderMap.put("id", deliveryOrderMap.get("id"));
//副表数据
//子表数据
List<DeliveryVoucherRelationEntity> deliveryVoucherRelationList = deliveryOrderService.getDeliveryVoucherRelationList(entity.getId());
deliveryOrderMap.put("deliveryVoucherRelationList",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(deliveryVoucherRelationList)));
List<DeliveryProductRelationEntity> deliveryProductRelationList = deliveryOrderService.getDeliveryProductRelationList(entity.getId());
deliveryOrderMap.put("deliveryProductRelationList",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(deliveryProductRelationList)));
deliveryOrderMap = generaterSwapUtil.swapDataForm(deliveryOrderMap,DeliveryOrderConstant.getFormData(),DeliveryOrderConstant.TABLEFIELDKEY,DeliveryOrderConstant.TABLERENAMES);
return ActionResult.success(deliveryOrderMap);
}
}

@ -75,6 +75,8 @@ public class VoucherController {
private VoucherProductService voucherProductService; private VoucherProductService voucherProductService;
@Autowired @Autowired
private VoucherVehicleService voucherVehicleService; private VoucherVehicleService voucherVehicleService;
@Autowired
private ProductWarehouseService productWarehouseService;
@Autowired @Autowired
@ -546,4 +548,26 @@ public class VoucherController {
return ActionResult.success(voucherMap); return ActionResult.success(voucherMap);
} }
/**
*
*
* @param
* @return
*/
@Operation(summary = "获取列表")
@GetMapping("/getSaleDeliveryVoucherList")
public ActionResult list()throws IOException{
//查询销售发货凭证
List<VoucherEntity> list= voucherService.querySaleDeliveryVoucherInfo();
for (VoucherEntity entity : list) {
if (StringUtil.isNotEmpty(entity.getProductId())){
QueryWrapper<ProductWarehouseEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProductWarehouseEntity::getId,entity.getProductId());
List<ProductWarehouseEntity> productWarehouseEntity = productWarehouseService.list(queryWrapper);
entity.setProductWarehouseEntityList(productWarehouseEntity);
}
}
return ActionResult.success(list);
}
} }

@ -0,0 +1,83 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
/**
*
*
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-02-23
*/
@Data
@TableName("jg_delivery_order")
public class DeliveryOrderEntity {
@TableId(value ="ID" )
private String id;
@TableField(value = "DELIVERY_TYPE" , updateStrategy = FieldStrategy.IGNORED)
private String deliveryType;
@TableField("DELIVERY_STATUS")
private String deliveryStatus;
@TableField(value = "DELIVERY_CODE" , updateStrategy = FieldStrategy.IGNORED)
private String deliveryCode;
@TableField("ORDER_SOURCE")
private String orderSource;
@TableField("PREPARATION_TIME")
private Date preparationTime;
@TableField(value = "BUSINESS_ID" , updateStrategy = FieldStrategy.IGNORED)
private String businessId;
@TableField("EXECUTE_DOCUMENT_ID")
private String executeDocumentId;
@TableField("PLANNED_DELIVERY_TIME_START")
private Date plannedDeliveryTimeStart;
@TableField("PLANNED_DELIVERY_TIME_END")
private Date plannedDeliveryTimeEnd;
@TableField(value = "SUBJECT_ID" , updateStrategy = FieldStrategy.IGNORED)
private String subjectId;
@TableField(value = "DELIVERY_ADDRESS" , updateStrategy = FieldStrategy.IGNORED)
private String deliveryAddress;
@TableField(value = "ENTERPRISE_ID" , updateStrategy = FieldStrategy.IGNORED)
private String enterpriseId;
@TableField(value = "SHIPPING_ADDRESS" , updateStrategy = FieldStrategy.IGNORED)
private String shippingAddress;
@TableField(value = "WAREHOUSE_ID" , updateStrategy = FieldStrategy.IGNORED)
private String warehouseId;
@TableField(value = "REMARK" , updateStrategy = FieldStrategy.IGNORED)
private String remark;
@TableField(value = "RESERVED_FIELDS1" , updateStrategy = FieldStrategy.IGNORED)
private String reservedFields1;
@TableField("RESERVED_FIELDS2")
private String reservedFields2;
@TableField("RESERVED_FIELDS3")
private String reservedFields3;
@TableField("RESERVED_FIELDS4")
private String reservedFields4;
@TableField("REMARK2")
private String remark2;
@TableField("REMARK3")
private String remark3;
@TableField("F_CREATOR_TIME")
private Date creatorTime;
@TableField("F_CREATOR_USER_ID")
private String creatorUserId;
@TableField("F_LAST_MODIFY_TIME")
private Date lastModifyTime;
@TableField("F_LAST_MODIFY_USER_ID")
private String lastModifyUserId;
@TableField("F_DELETE_TIME")
private Date deleteTime;
@TableField("F_DELETE_USER_ID")
private String deleteUserId;
@TableField("F_DELETE_MARK")
private Integer deleteMark;
@TableField("F_TENANT_ID")
private String tenantId;
@TableField("F_FLOW_TASK_ID")
private String flowTaskId;
@TableField("F_FLOW_ID")
private String flowId;
@TableField("F_VERSION")
private Integer version;
}

@ -0,0 +1,83 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
/**
* /
*
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-02-23
*/
@Data
@TableName("jg_delivery_product_relation")
public class DeliveryProductRelationEntity {
@TableId(value ="ID" )
private String id;
@TableField("BUSINESS_TYPE")
private String businessType;
@TableField("ORDER_ID")
private String orderId;
@TableField(value = "PRODUCT_ID" , updateStrategy = FieldStrategy.IGNORED)
private String productId;
@TableField(value = "SPEC" , updateStrategy = FieldStrategy.IGNORED)
private String spec;
@TableField(value = "INVENTORY_UNIT_ID" , updateStrategy = FieldStrategy.IGNORED)
private String inventoryUnitId;
@TableField(value = "SALES_MAIN_UNIT_ID" , updateStrategy = FieldStrategy.IGNORED)
private String salesMainUnitId;
@TableField(value = "SALE_NUM" , updateStrategy = FieldStrategy.IGNORED)
private String saleNum;
@TableField(value = "DELIVERY_UNIT" , updateStrategy = FieldStrategy.IGNORED)
private String deliveryUnit;
@TableField(value = "GROSS_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal grossWeight;
@TableField(value = "TARE_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal tareWeight;
@TableField(value = "BUCKLE_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal buckleWeight;
@TableField(value = "NET_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal netWeight;
@TableField(value = "CARGO_ID" , updateStrategy = FieldStrategy.IGNORED)
private String cargoId;
@TableField(value = "DELIVERY_NUM" , updateStrategy = FieldStrategy.IGNORED)
private String deliveryNum;
@TableField(value = "BATCH_NO" , updateStrategy = FieldStrategy.IGNORED)
private String batchNo;
@TableField(value = "PRODUCE_TIME" , updateStrategy = FieldStrategy.IGNORED)
private Date produceTime;
@TableField(value = "RETURN_UNIT" , updateStrategy = FieldStrategy.IGNORED)
private String returnUnit;
@TableField(value = "TAX_COUNT" , updateStrategy = FieldStrategy.IGNORED)
private String taxCount;
@TableField(value = "TAX" , updateStrategy = FieldStrategy.IGNORED)
private String tax;
@TableField(value = "NOT_TAX_PRICE" , updateStrategy = FieldStrategy.IGNORED)
private String notTaxPrice;
@TableField(value = "NOT_TAX_COUNT" , updateStrategy = FieldStrategy.IGNORED)
private String notTaxCount;
@TableField(value = "REMARK" , updateStrategy = FieldStrategy.IGNORED)
private String remark;
@TableField("F_CREATOR_TIME")
private Date creatorTime;
@TableField("F_CREATOR_USER_ID")
private String creatorUserId;
@TableField("F_LAST_MODIFY_TIME")
private Date lastModifyTime;
@TableField("F_LAST_MODIFY_USER_ID")
private String lastModifyUserId;
@TableField("F_DELETE_TIME")
private Date deleteTime;
@TableField("F_DELETE_USER_ID")
private String deleteUserId;
@TableField("F_DELETE_MARK")
private Integer deleteMark;
@TableField("F_TENANT_ID")
private String tenantId;
}

@ -0,0 +1,73 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
/**
* /
*
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-02-23
*/
@Data
@TableName("jg_delivery_voucher_relation")
public class DeliveryVoucherRelationEntity {
@TableId(value ="ID" )
private String id;
@TableField("ORDER_ID")
private String orderId;
@TableField(value = "VOUCHER_ID" , updateStrategy = FieldStrategy.IGNORED)
private String voucherId;
@TableField("BUSINESS_TYPE")
private String businessType;
@TableField("VOUCHER_CODE")
private String voucherCode;
@TableField(value = "DOCUMENT_TYPE" , updateStrategy = FieldStrategy.IGNORED)
private String documentType;
@TableField(value = "VOUCHER_TYPE" , updateStrategy = FieldStrategy.IGNORED)
private String voucherType;
@TableField(value = "POUND_CODE" , updateStrategy = FieldStrategy.IGNORED)
private String poundCode;
@TableField(value = "POUNDLIST_TIME" , updateStrategy = FieldStrategy.IGNORED)
private Date poundlistTime;
@TableField(value = "VEHICLE_NAME" , updateStrategy = FieldStrategy.IGNORED)
private String vehicleName;
@TableField(value = "PRODUCT_ID" , updateStrategy = FieldStrategy.IGNORED)
private String productId;
@TableField(value = "SPEC" , updateStrategy = FieldStrategy.IGNORED)
private String spec;
@TableField(value = "UNIT" , updateStrategy = FieldStrategy.IGNORED)
private String unit;
@TableField(value = "GROSS_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal grossWeight;
@TableField(value = "TARE_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal tareWeight;
@TableField(value = "BUCKLE_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal buckleWeight;
@TableField(value = "NET_WEIGHT" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal netWeight;
@TableField(value = "REMARK" , updateStrategy = FieldStrategy.IGNORED)
private String remark;
@TableField("F_CREATOR_TIME")
private Date creatorTime;
@TableField("F_CREATOR_USER_ID")
private String creatorUserId;
@TableField("F_LAST_MODIFY_TIME")
private Date lastModifyTime;
@TableField("F_LAST_MODIFY_USER_ID")
private String lastModifyUserId;
@TableField("F_DELETE_TIME")
private Date deleteTime;
@TableField("F_DELETE_USER_ID")
private String deleteUserId;
@TableField("F_DELETE_MARK")
private Integer deleteMark;
@TableField("F_TENANT_ID")
private String tenantId;
}

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* *
* *
@ -123,4 +125,26 @@ public class VoucherEntity {
private String flowId; private String flowId;
@TableField("F_VERSION") @TableField("F_VERSION")
private Integer version; private Integer version;
@TableField(exist = false)
private String driverName;
@TableField(exist = false)
private String productId;
@TableField(exist = false)
private String spec;
@TableField(exist = false)
private String unit;
@TableField(exist = false)
private BigDecimal grossWeight;
@TableField(exist = false)
private BigDecimal tareWeight;
@TableField(exist = false)
private BigDecimal buckleWeight;
@TableField(exist = false)
private BigDecimal netWeight;
@TableField(exist = false)
private String remark;
@TableField(exist = false)
private List<ProductWarehouseEntity> productWarehouseEntityList;
} }

@ -0,0 +1,65 @@
package jnpf.model.deliveryorder;
import lombok.Data;
import java.util.List;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* deliveryOrder
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-02-23
*/
@Data
public class DeliveryOrderForm {
/** 主键 */
private String id;
/** 子表数据 **/
@JsonProperty("deliveryVoucherRelationList")
private List<DeliveryVoucherRelationModel> deliveryVoucherRelationList;
/** 子表数据 **/
@JsonProperty("deliveryProductRelationList")
private List<DeliveryProductRelationModel> deliveryProductRelationList;
/** 乐观锁 **/
@JsonProperty("version")
private Integer version;
/** 流程id **/
@JsonProperty("flowId")
private String flowId;
/** 业务类型 **/
@JsonProperty("deliveryType")
private String deliveryType;
/** 订单编号 **/
@JsonProperty("deliveryCode")
private String deliveryCode;
/** 制单时间 **/
@JsonProperty("preparationTime")
private String preparationTime;
/** 关联销售 **/
@JsonProperty("businessId")
private String businessId;
/** 业务线 **/
@JsonProperty("reservedFields1")
private String reservedFields1;
/** 客户名称 **/
@JsonProperty("subjectId")
private String subjectId;
/** 收货地址 **/
@JsonProperty("deliveryAddress")
private String deliveryAddress;
/** 机构名称 **/
@JsonProperty("enterpriseId")
private String enterpriseId;
/** 发货仓库 **/
@JsonProperty("warehouseId")
private String warehouseId;
/** 发货地址 **/
@JsonProperty("shippingAddress")
private String shippingAddress;
/** 备注 **/
@JsonProperty("remark")
private String remark;
}

@ -0,0 +1,39 @@
package jnpf.model.deliveryorder;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import jnpf.base.Pagination;
import java.util.List;
/**
*
* deliveryOrder
* @ V3.5
* @ https://www.jnpfsoft.com
* @ JNPF
* @ 2024-02-23
*/
@Data
public class DeliveryOrderPagination extends Pagination {
/** 查询key */
private String[] selectKey;
/** json */
private String json;
/** 数据类型 0-当前页1-全部数据 */
private String dataType;
/** 高级查询 */
private String superQueryJson;
/** 功能id */
private String moduleId;
/** 菜单id */
private String menuId;
/** 订单编号 */
@JsonProperty("deliveryCode")
private Object deliveryCode;
/** 业务类型 */
@JsonProperty("deliveryType")
private Object deliveryType;
/** 制单时间 */
@JsonProperty("preparationTime")
private Object preparationTime;
}

@ -0,0 +1,83 @@
package jnpf.model.deliveryorder;
import lombok.Data;
import java.util.List;
import java.util.Date;
import java.math.BigDecimal;
import com.alibaba.fastjson.annotation.JSONField;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
*
* deliveryOrder
* V3.5
* : https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
@Data
public class DeliveryProductRelationModel {
/** 商品名称 **/
@JSONField(name = "productId")
private String productId;
/** 规格 **/
@JSONField(name = "spec")
private String spec;
/** 库存单位 **/
@JSONField(name = "inventoryUnitId")
private String inventoryUnitId;
/** 销售单位 **/
@JSONField(name = "salesMainUnitId")
private String salesMainUnitId;
/** 销售数量 **/
@JSONField(name = "saleNum")
private String saleNum;
/** 发货单位 **/
@JSONField(name = "deliveryUnit")
private Object deliveryUnit;
/** 毛重 **/
@JSONField(name = "grossWeight")
private String grossWeight;
/** 皮重 **/
@JSONField(name = "tareWeight")
private String tareWeight;
/** 扣重 **/
@JSONField(name = "buckleWeight")
private String buckleWeight;
/** 净重 **/
@JSONField(name = "netWeight")
private String netWeight;
/** 货区名称 **/
@JSONField(name = "cargoId")
private String cargoId;
/** 发货数量 **/
@JSONField(name = "deliveryNum")
private String deliveryNum;
/** 批次号 **/
@JSONField(name = "batchNo")
private String batchNo;
/** 生产日期 **/
@JSONField(name = "produceTime")
private Long produceTime;
/** 退货单价 **/
@JSONField(name = "returnUnit")
private String returnUnit;
/** 税率 **/
@JSONField(name = "tax")
private String tax;
/** 含税小计 **/
@JSONField(name = "taxCount")
private String taxCount;
/** 不含税单价 **/
@JSONField(name = "notTaxPrice")
private String notTaxPrice;
/** 不含税小计 **/
@JSONField(name = "notTaxCount")
private String notTaxCount;
/** 备注 **/
@JSONField(name = "remark")
private String remark;
}

@ -0,0 +1,66 @@
package jnpf.model.deliveryorder;
import lombok.Data;
import java.util.List;
import java.util.Date;
import java.math.BigDecimal;
import com.alibaba.fastjson.annotation.JSONField;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
*
* deliveryOrder
* V3.5
* : https://www.jnpfsoft.com
* JNPF
* 2024-02-23
*/
@Data
public class DeliveryVoucherRelationModel {
/** 凭证编号 **/
@JSONField(name = "voucherId")
private String voucherId;
/** 单据类型 **/
@JSONField(name = "documentType")
private Object documentType;
/** 凭证类型 **/
@JSONField(name = "voucherType")
private Object voucherType;
/** 磅单编号 **/
@JSONField(name = "poundCode")
private String poundCode;
/** 磅单时间 **/
@JSONField(name = "poundlistTime")
private Long poundlistTime;
/** 车牌号 **/
@JSONField(name = "vehicleName")
private String vehicleName;
/** 商品名称 **/
@JSONField(name = "productId")
private String productId;
/** 规格 **/
@JSONField(name = "spec")
private String spec;
/** 单位 **/
@JSONField(name = "unit")
private String unit;
/** 毛重 **/
@JSONField(name = "grossWeight")
private String grossWeight;
/** 皮重 **/
@JSONField(name = "tareWeight")
private String tareWeight;
/** 扣重 **/
@JSONField(name = "buckleWeight")
private String buckleWeight;
/** 净重 **/
@JSONField(name = "netWeight")
private String netWeight;
/** 备注 **/
@JSONField(name = "remark")
private String remark;
}

@ -71,12 +71,6 @@
<el-button type="text" icon="icon-ym icon-ym-btn-clearn" @click="handleBatchRemoveDel()" <el-button type="text" icon="icon-ym icon-ym-btn-clearn" @click="handleBatchRemoveDel()"
v-has="'btn_batchRemove'">批量删除 v-has="'btn_batchRemove'">批量删除
</el-button> </el-button>
<el-button type="primary" icon="icon-ym icon-ym-btn-add" v-has="'btn_add'"
@click="boundCheck()">库存检查
</el-button>
<el-button type="primary" icon="icon-ym icon-ym-btn-add" v-has="'btn_add'"
@click="boundLock()">库存锁定
</el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip content="高级查询" placement="top" v-if="true"> <el-tooltip content="高级查询" placement="top" v-if="true">

File diff suppressed because one or more lines are too long

@ -0,0 +1,636 @@
<template>
<div class="JNPF-common-layout">
<div class="JNPF-common-layout-center">
<el-row class="JNPF-common-search-box" :gutter="16">
<el-form @submit.native.prevent>
<el-col :span="6">
<el-form-item label="订单编号">
<el-input v-model="query.deliveryCode" placeholder="请输入" clearable> </el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="业务类型">
<JnpfSelect v-model="query.deliveryType" placeholder="请选择" clearable
:options="deliveryTypeOptions"
:props="deliveryTypeProps" >
</JnpfSelect>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="制单时间">
<JnpfDateRangePicker v-model="query.preparationTime" format="yyyy-MM-dd"
startPlaceholder="开始日期" endPlaceholder="结束日期" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="search()"></el-button>
<el-button icon="el-icon-refresh-right" @click="reset()"></el-button>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head">
<div>
<el-button type="primary" icon="icon-ym icon-ym-btn-add" v-has="'btn_add'" @click="addOrUpdateHandle()">
</el-button>
<el-button type="text" icon="icon-ym icon-ym-btn-download" @click="exportData()" v-has="'btn_download'" >导出
</el-button>
<el-button type="text" icon="icon-ym icon-ym-btn-clearn" @click="handleBatchRemoveDel()" v-has="'btn_batchRemove'" >批量删除
</el-button>
</div>
<div class="JNPF-common-head-right">
<el-tooltip content="高级查询" placement="top" v-if="true">
<el-link icon="icon-ym icon-ym-filter JNPF-common-head-icon" :underline="false"
@click="openSuperQuery()" />
</el-tooltip>
<el-tooltip effect="dark" :content="$t('common.refresh')" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@click="initData()" />
</el-tooltip>
</div>
</div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' has-c @selection-change="handleSelectionChange"
:span-method="arraySpanMethod"
>
<el-table-column
prop="deliveryCode"
label="订单编号" align="left"
>
</el-table-column>
<el-table-column label="业务类型" prop="deliveryType" algin="left"
>
<template slot-scope="scope">
{{ scope.row.deliveryType}}
</template>
</el-table-column>
<el-table-column
prop="businessId"
label="关联销售" align="left"
>
</el-table-column>
<el-table-column
prop="reservedFields1"
label="业务线" align="left"
>
</el-table-column>
<el-table-column
prop="subjectId"
label="客户名称" align="left"
>
</el-table-column>
<el-table-column
prop="deliveryAddress"
label="收货地址" align="left"
>
</el-table-column>
<el-table-column
prop="enterpriseId"
label="机构名称" align="left"
>
</el-table-column>
<el-table-column
prop="warehouseId"
label="发货仓库" align="left"
>
</el-table-column>
<el-table-column
prop="shippingAddress"
label="发货地址" align="left"
>
</el-table-column>
<el-table-column
prop="preparationTime"
label="制单时间" align="left"
>
</el-table-column>
<el-table-column prop="flowState" label="状态" width="100" >
<template slot-scope="scope" v-if="!scope.row.top">
<el-tag v-if="scope.row.flowState==1"></el-tag>
<el-tag type="success" v-else-if="scope.row.flowState==2">审核通过</el-tag>
<el-tag type="danger" v-else-if="scope.row.flowState==3">审核驳回</el-tag>
<el-tag type="info" v-else-if="scope.row.flowState==4">流程撤回</el-tag>
<el-tag type="info" v-else-if="scope.row.flowState==5">审核终止</el-tag>
<el-tag type="warning" v-else></el-tag>
</template>
</el-table-column>
<el-table-column label="操作"
fixed="right" width="150" >
<template slot-scope="scope" >
<el-button type="text" :disabled="[1,2,4,5].indexOf(scope.row.flowState)>-1"
@click="updateHandle(scope.row)" v-has="'btn_edit'" >编辑
</el-button>
<el-button type="text" class="JNPF-table-delBtn" :disabled="[1,2,3,5].indexOf(scope.row.flowState)>-1" v-has="'btn_remove'" @click="handleDel(scope.row.id)">
</el-button>
<el-button size="mini" type="text" :disabled="!scope.row.flowState"
@click="updateHandle(scope.row,scope.row.flowState)"
>详情</el-button>
</template>
</el-table-column>
</JNPF-table>
<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
</div>
</div>
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<FlowBox v-if="flowVisible" ref="FlowBox" @close="colseFlow" />
<el-dialog title="请选择流程" :close-on-click-modal="false" append-to-body
:visible.sync="flowListVisible" class="JNPF-dialog template-dialog JNPF-dialog_center"
lock-scroll width="400px">
<el-scrollbar class="template-list">
<div class="template-item" v-for="item in flowList" :key="item.id"
@click="selectFlow(item)">{{item.fullName}}
</div>
</el-scrollbar>
</el-dialog>
<ImportBox v-if="uploadBoxVisible" ref="UploadBox" @refresh="initData" />
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
<ToFormDetail v-if="toFormDetailVisible" ref="toFormDetail" @close="toFormDetailVisible = false" />
<SuperQuery v-if="superQueryVisible" ref="SuperQuery" :columnOptions="superQueryJson"
@superQuery="superQuery" />
</div>
</template>
<script>
import request from '@/utils/request'
import {mapGetters} from "vuex";
import {getDictionaryDataSelector} from '@/api/systemData/dictionary'
import { getFormById } from '@/api/workFlow/FormDesign'
import { getFlowList } from '@/api/workFlow/FlowEngine'
import FlowBox from '@/views/workFlow/components/FlowBox'
import ExportBox from '@/components/ExportBox'
import ToFormDetail from '@/views/basic/dynamicModel/list/detail'
import {getDataInterfaceRes} from '@/api/systemData/dataInterface'
import { getConfigData } from '@/api/onlineDev/visualDev'
import { getDefaultCurrentValueUserIdAsync } from '@/api/permission/user'
import { getDefaultCurrentValueDepartmentIdAsync } from '@/api/permission/organize'
import columnList from './columnList'
import { thousandsFormat } from "@/components/Generator/utils/index"
import SuperQuery from '@/components/SuperQuery'
import superQueryJson from './superQueryJson'
export default {
components: {
FlowBox,
ExportBox,ToFormDetail , SuperQuery
},
data() {
return {
keyword:'',
expandsTree: true,
refreshTree: true,
toFormDetailVisible:false,
expandObj:{},
columnOptions: [],
mergeList: [],
exportList:[],
columnList,
superQueryVisible: false,
superQueryJson,
uploadBoxVisible: false,
detailVisible: false,
query: {
deliveryCode:undefined,
deliveryType:undefined,
preparationTime:undefined,
},
treeProps: {
children: 'children',
label: 'fullName',
value: 'id',
isLeaf: 'isLeaf'
},
list: [],
listLoading: true,
multipleSelection: [], total: 0,
queryData: {},
listQuery: {
superQueryJson: '',
currentPage: 1,
pageSize: 20,
sort: "desc",
sidx: "",
},
formVisible: false,
flowVisible: false,
flowListVisible: false,
flowList: [],
exportBoxVisible: false,
deliveryTypeOptions:[{"fullName":"销售发货","id":"2"}],
deliveryTypeProps:{"label":"fullName","value":"id" },
tableField128_voucherIdcolumnOptions:[ {"label":"凭证编号","value":"voucher_code"}, {"label":"单据类型","value":"document_type"}, {"label":"磅单编号","value":"pound_code"},],
tableField128_documentTypeOptions:[{"fullName":"收货凭证","id":"1"},{"fullName":"发货凭证","id":"2"}],
tableField128_documentTypeProps:{"label":"fullName","value":"id" },
tableField128_voucherTypeOptions:[{"fullName":"磅单","id":"1"},{"fullName":"收据","id":"2"},{"fullName":"其他","id":"3"}],
tableField128_voucherTypeProps:{"label":"fullName","value":"id" },
tableField128_productIdcolumnOptions:[ {"label":"商品编码","value":"code"}, {"label":"商品名称","value":"name"},],
tableField144_productIdcolumnOptions:[ {"label":"商品编码","value":"code"}, {"label":"商品名称","value":"name"},],
tableField144_deliveryUnitOptions:[{"fullName":"吨","id":"1"},{"fullName":"千克","id":"2"}],
tableField144_deliveryUnitProps:{"label":"fullName","value":"id" },
tableField144_cargoIdcolumnOptions:[ {"label":"货区类型","value":"cargo_type"}, {"label":"货区名称","value":"cargo_name"},],
interfaceRes: {
businessId:[] ,
reservedFields1:[] ,
subjectId:[] ,
enterpriseId:[] ,
warehouseId:[{"dataType":"varchar","defaultValue":"","field":"businessLineId","fieldName":"","id":"PneOdw1","jnpfKey":"popupSelect","relationField":"reservedFields1","required":"0"}] ,
shippingAddress:[{"dataType":"varchar","defaultValue":"","field":"businessOrganizeId","fieldName":"","id":"AyAmdw1","jnpfKey":"popupSelect","relationField":"warehouseId","required":"0"}] ,
tableField128_voucherId: [] ,
tableField128_productId: [] ,
tableField144_productId: [] ,
tableField144_cargoId:[{"fieldName":"","field":"businessOrganizeId","defaultValue":"","jnpfKey":"popupSelect","dataType":"varchar","id":"AyAmdw1","relationField":"warehouseId","required":"0"}] ,
},
}
},
computed: {
...mapGetters(['userInfo']),
menuId() {
return this.$route.meta.modelId || ''
}
},
created() {
getFormById("530411417380062341").then(res1 => {
let flowId = res1.data&&res1.data.id
getFlowList(flowId,'1').then(res2 => {
this.flowList = res2.data
this.getColumnList(),
this.initSearchDataAndListData()
this.queryData = JSON.parse(JSON.stringify(this.query))
}).catch((e) => {
this.$message({ type: 'error', message: e.message });
this.$router.push('/404');
})
})
},
methods: {
toDetail(defaultValue, modelId) {
if (!defaultValue) return
getConfigData(modelId).then(res => {
if (!res.data || !res.data.formData) return
let formData = JSON.parse(res.data.formData)
formData.popupType = 'general'
this.toFormDetailVisible = true
this.$nextTick(() => {
this.$refs.toFormDetail.init(formData, modelId, defaultValue)
})
})
},
toggleTreeExpand(expands) {
this.refreshTree = false
this.expandsTree = expands
this.$nextTick(() => {
this.refreshTree = true
this.$nextTick(() => {
this.$refs.treeBox.setCurrentKey(null)
})
})
},
filterNode(value, data) {
if (!value) return true;
return data[this.treeProps.label].indexOf(value) !== -1;
},
loadNode(node, resolve) {
const nodeData = node.data
const config ={
treeInterfaceId:"",
treeTemplateJson:[]
}
if (config.treeInterfaceId) {
//
if (config.treeTemplateJson && config.treeTemplateJson.length) {
for (let i = 0; i < config.treeTemplateJson.length; i++) {
const element = config.treeTemplateJson[i];
element.defaultValue = nodeData[element.relationField] || ''
}
}
//
let query = {
paramList: config.treeTemplateJson || [],
}
//
getDataInterfaceRes(config.treeInterfaceId, query).then(res => {
let data = res.data
if (Array.isArray(data)) {
resolve(data);
} else {
resolve([]);
}
})
}
},
getColumnList() {
//
this.columnOptions = this.transformColumnList(this.columnList)
},
transformColumnList(columnList) {
let list = []
for (let i = 0; i < columnList.length; i++) {
const e = columnList[i];
if (!e.prop.includes('-')) {
list.push(e)
} else {
let prop = e.prop.split('-')[0]
let label = e.label.split('-')[0]
let vModel = e.prop.split('-')[1]
let newItem = {
align: "center",
jnpfKey: "table",
prop,
label,
children: []
}
e.vModel = vModel
if (!this.expandObj.hasOwnProperty(`${prop}Expand`)) this.$set(this.expandObj, `${prop}Expand`, false)
if (!list.some(o => o.prop === prop)) list.push(newItem)
for (let i = 0; i < list.length; i++) {
if (list[i].prop === prop) {
list[i].children.push(e)
break
}
}
}
}
this.getMergeList(list)
this.getExportList(list)
return list
},
arraySpanMethod({ column }) {
for (let i = 0; i < this.mergeList.length; i++) {
if (column.property == this.mergeList[i].prop) {
return [this.mergeList[i].rowspan, this.mergeList[i].colspan]
}
}
},
getMergeList(list) {
let newList = JSON.parse(JSON.stringify(list))
newList.forEach(item => {
if (item.children && item.children.length) {
let child = {
prop: item.prop + '-child-first'
}
item.children.unshift(child)
}
})
newList.forEach(item => {
if (item.children && item.children.length ) {
item.children.forEach((child, index) => {
if (index == 0) {
this.mergeList.push({
prop: child.prop,
rowspan: 1,
colspan: item.children.length
})
} else {
this.mergeList.push({
prop: child.prop,
rowspan: 0,
colspan: 0
})
}
})
} else {
this.mergeList.push({
prop: item.prop,
rowspan: 1,
colspan: 1
})
}
})
},
getExportList(list) {
let exportList = []
for (let i = 0; i < list.length; i++) {
if (list[i].jnpfKey === 'table') {
for (let j = 0; j < list[i].children.length; j++) {
exportList.push(list[i].children[j])
}
} else {
exportList.push(list[i])
}
}
this.exportList = exportList
},
goDetail(id){
this.detailVisible = true
this.$nextTick(() => {
this.$refs.Detail.init(id)
})
},
sortChange({column, prop, order}) {
this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
this.listQuery.sidx = !order ? '' : prop
this.initData()
},
async initSearchDataAndListData() {
await this.initSearchData()
this.initData()
},
//
async initSearchData() {
},
initData() {
this.listLoading = true;
let _query = {
...this.listQuery,
...this.query,
keyword: this.keyword,
dataType: 0,
menuId:this.menuId,
moduleId:'530411417380062341',
type:1,
};
request({
url: `/api/scm/DeliveryOrder/getList`,
method: 'post',
data: _query
}).then(res => {
var _list =res.data.list;
this.list = _list.map(o => ({
...o,
...this.expandObj,
}))
this.total = res.data.pagination.total
this.listLoading = false
})
},
handleDel(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
type: 'warning'
}).then(() => {
request({
url: `/api/scm/DeliveryOrder/${id}`,
method: 'DELETE'
}).then(res => {
this.$message({
type: 'success',
message: res.msg,
onClose: () => {
this.initData()
}
});
})
}).catch(() => {
});
},
handelUpload(){
this.uploadBoxVisible = true
this.$nextTick(() => {
this.$refs.UploadBox.init("","scm/DeliveryOrder")
})
},
handleSelectionChange(val) {
const res = val.map(item => item.id)
this.multipleSelection = res
},
handleBatchRemoveDel() {
if (!this.multipleSelection.length) {
this.$message({
type: 'error',
message: '请选择一条数据',
duration: 1500,
})
return
}
const ids = this.multipleSelection
this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
type: 'warning'
}).then(() => {
request({
url: `/api/scm/DeliveryOrder/batchRemove`,
data: ids,
method: 'DELETE'
}).then(res => {
this.$message({
type: 'success',
message: res.msg,
onClose: () => {
this.initData()
}
});
})
}).catch(() => {
})
},
openSuperQuery() {
this.superQueryVisible = true
this.$nextTick(() => {
this.$refs.SuperQuery.init()
})
},
superQuery(queryJson) {
this.listQuery.superQueryJson = queryJson
this.listQuery.currentPage = 1
this.initData()
},
addOrUpdateHandle(row,flowState) {
if(!row){
this.addHandle();
}else {
this.updateHandle(row,flowState)
}
},
exportData() {
this.exportBoxVisible = true
this.$nextTick(() => {
this.$refs.ExportBox.init(this.exportList)
})
},
download(data) {
let query = {...data, ...this.listQuery, ...this.query,menuId:this.menuId}
request({
url: `/api/scm/DeliveryOrder/Actions/Export`,
method: 'post',
data: query
}).then(res => {
if (!res.data.url) return
this.jnpf.downloadFile(res.data.url)
this.$refs.ExportBox.visible = false
this.exportBoxVisible = false
})
},
search() {
this.listQuery.currentPage=1
this.listQuery.pageSize=20
this.listQuery.sort="desc"
this.listQuery.sidx=""
this.initData()
},
//
updateHandle(row,flowState) {
let data = {
id: row.id,
flowId: row.flowId || this.flowList[0].id,
opType: flowState ? 0 : '-1',
status: flowState
}
this.flowVisible = true
this.$nextTick(() => {
this.$refs.FlowBox.init(data)
})
},
toApprovalDetail(row) {
let data = {
id: row.id,
flowId: row.flowId,
opType: 0,
status: row.currentState
}
this.formVisible = true
this.$nextTick(() => {
this.$refs.FlowBox.init(data)
})
},
addHandle() {
if (!this.flowList.length) {
this.$message({ type: 'error', message: '流程不存在' });
} else if (this.flowList.length === 1) {
this.selectFlow(this.flowList[0])
} else {
this.flowListVisible = true
}
},
//
selectFlow(item) {
let data = {
id: '',
formType: 1,
flowId: item.id,
opType: '-1'
}
this.flowListVisible = false
this.flowVisible = true
this.$nextTick(() => {
this.$refs.FlowBox.init(data)
})
},
refresh(isrRefresh) {
this.formVisible = false
if (isrRefresh) this.reset()
},
reset() {
this.query = JSON.parse(JSON.stringify(this.queryData))
this.search()
},
colseFlow(isrRefresh) {
this.flowVisible = false
if (isrRefresh) this.reset()
},
}
}
</script>

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save