Browse Source

签收列表下载图片

training
汤建军 1 year ago
parent
commit
fe90d2212b
  1. 197
      blade-biz-common/src/main/java/org/springblade/common/utils/FileUtil.java
  2. 1
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignPrintVO.java
  3. 16
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSigndetailVO.java
  4. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java
  5. 30
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionSigndetailDTO.java
  6. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSigndetailMapper.xml
  7. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.java
  8. 12
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  9. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java
  10. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java
  11. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java
  12. 101
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

197
blade-biz-common/src/main/java/org/springblade/common/utils/FileUtil.java

@ -1,8 +1,19 @@
package org.springblade.common.utils;
import java.io.File;
import org.springblade.common.constant.CommonConstant;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.lang.reflect.Type;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.TimerTask;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import static io.undertow.servlet.core.BlockingWriterSenderImpl.BUFFER_SIZE;
/**
* 文件工具类
@ -18,13 +29,195 @@ public class FileUtil extends TimerTask {
this.LocalTempFiles = list;
}
public static File checkZipFile(String reservationCode) {
String savePath = "D:/Test" +"/"+ reservationCode;
return new File(savePath+".zip");
}
@Override
public void run() {
for (String localTempFile : LocalTempFiles) {
File file = new File(localTempFile);
if (file.isFile()){
if (file.isFile()) {
file.delete();
}
}
}
/**
* 处理签收图片
*
* @param urls
* @param type 托盘类型
* @param code 预约编码
* @param consignee 客户名称
*/
public static void handleSignPictureZip(List<String> urls, String type, String code, String consignee) {
//将图片下载至本地中
// String imgPath = CommonConstant.SYSTEMFILEPATH;
String savePath = "D:/Test" +"/"+ code;
String imgPath = savePath;
// 打开连接
//设置请求超时为20s
switch (type) {
case "photo_1":
//上门
imgPath += "\\doorr";
break;
case "photo_2":
imgPath += "\\stacking";
//堆码
break;
case "photo_3":
imgPath +="\\friability";
//易碎
break;
case "photo_4":
imgPath +="\\home-delivery";
//家配
break;
case "photo_5":
imgPath +="\\signing";
//签收
break;
}
for (String imgUrl : urls) {
String str = imgUrl.substring(imgUrl.lastIndexOf("/")+1, imgUrl.length());
try {
//下载远程地址图片
download(imgUrl, imgPath, str);
//将该客户的签收图片进行ZIP压缩
//读取该文件路径下的文件夹
File file = new File(savePath);
fileToZip(file);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
/**
* sourceFile一定要是文件夹
* 默认会在同目录下生成zip文件
*
* @param sourceFile
* @throws Exception
*/
public static void fileToZip(File sourceFile) throws Exception {
if (!sourceFile.exists()) {
throw new RuntimeException("不存在");
}
if (!sourceFile.isDirectory()) {
throw new RuntimeException("不是文件夹");
}
//zip文件生成位置
File zipFile = new File(sourceFile.getAbsolutePath() + ".zip");
FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(fos));
fileToZip(zos, sourceFile, "");
zos.close();
fos.close();
}
private static void fileToZip(ZipOutputStream zos, File sourceFile, String path) throws Exception {
System.out.println(sourceFile.getAbsolutePath());
//如果是文件夹只创建zip实体即可,如果是文件,创建zip实体后还要读取文件内容并写入
if (sourceFile.isDirectory()) {
path = path + sourceFile.getName() + "/";
ZipEntry zipEntry = new ZipEntry(path);
zos.putNextEntry(zipEntry);
for (File file : sourceFile.listFiles()) {
fileToZip(zos, file, path);
}
} else {
//创建ZIP实体,并添加进压缩包
ZipEntry zipEntry = new ZipEntry(path + sourceFile.getName());
zos.putNextEntry(zipEntry);
byte[] bufs = new byte[1024 * 10];
//读取待压缩的文件并写进压缩包里
FileInputStream fis = new FileInputStream(sourceFile);
BufferedInputStream bis = new BufferedInputStream(fis, 1024 * 10);
int read = 0;
while ((read = bis.read(bufs, 0, 1024 * 10)) != -1) {
zos.write(bufs, 0, read);
}
bis.close();
fis.close();
}
}
private static void download(String imgUrl, String imgPath, String str) throws IOException {
URL url = new URL(imgUrl);
URLConnection con = url.openConnection();
con.setConnectTimeout(20 * 1000);
//文件路径不存在 则创建
File sf = new File(imgPath);
if (!sf.exists()) {
sf.mkdirs();
}
//jdk 1.7 新特性自动关闭
InputStream in = con.getInputStream();
OutputStream out = new FileOutputStream(sf.getPath() + "\\" + str);
//创建缓冲区
byte[] buff = new byte[1024];
int n;
// 开始读取
while ((n = in.read(buff)) >= 0) {
out.write(buff, 0, n);
}
}
// /**
// * 文件下载到指定路径
// *
// * @param urlString 链接
// * @param savePath 保存路径
// * @param filename 文件名
// * @throws Exception
// */
// public static void download(String urlString, String savePath, String filename, String code) throws IOException, MalformedURLException {
// // 构造URL
//// String imgPath = CommonConstant.SYSTEMFILEPATH;
//
// //将图片下载至本地中
// String imgPath = "D:\\Test" + code;
// URL url = new URL(urlString);
// // 打开连接
// URLConnection con = url.openConnection();
// //设置请求超时为20s
// con.setConnectTimeout(20 * 1000);
// //文件路径不存在 则创建
// File sf = new File(savePath);
// if (!sf.exists()) {
// sf.mkdirs();
// }
// //jdk 1.7 新特性自动关闭
// try (InputStream in = con.getInputStream();
// OutputStream out = new FileOutputStream(sf.getPath() + "\\" + str)) {
// //创建缓冲区
// byte[] buff = new byte[1024];
// int n;
// // 开始读取
// while ((n = in.read(buff)) >= 0) {
// out.write(buff, 0, n);
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
}

1
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignPrintVO.java

@ -30,6 +30,7 @@ import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class DistributionSignPrintVO extends DistributionSignPrintEntity {
private static final long serialVersionUID = 1L;
}

16
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSigndetailVO.java

@ -126,6 +126,22 @@ public class DistributionSigndetailVO extends DistributionSigndetailEntity {
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private String sjsigningTime;
@ApiModelProperty(value = "审核人名称")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private String examineUserName;
@ApiModelProperty(value = "审核人Id")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private String examineUserId;
@ApiModelProperty(value = "审核人Id")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private String signeeName;
@ApiModelProperty(value = "审核人Id")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Long signeeId;
/**
* 包条信息
*/

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java

@ -368,6 +368,14 @@ public class DistributionSignforController extends BladeController {
}
@GetMapping("/handlePicture")
@ApiOperationSupport(order = 7)
@ApiOperation(value = "PC下载签收图片", notes = "传入ids")
public void handlePicture(@RequestParam String ids,HttpServletResponse res) {
distributionSignforService.handlePicture(ids,res);
}

30
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionSigndetailDTO.java

@ -110,5 +110,35 @@ public class DistributionSigndetailDTO extends DistributionSigndetailEntity {
@ApiModelProperty(value = "查询创建时间")
private String createTime_query;
/**
* 司机名称
*/
@ApiModelProperty(value = "driverName")
private String driverName;
/**
* 车牌号
*/
@ApiModelProperty(value = "车牌号")
private String vehicleName;
/**
* 司机名称
*/
@ApiModelProperty(value = "driverName")
private String taskTime;
/**
* 审核人
*/
@ApiModelProperty(value = "审核人")
private String examineUserName;
/**
* 签收人
*/
@ApiModelProperty(value = "签收人")
private String signeeName;
}

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSigndetailMapper.xml

@ -138,6 +138,10 @@
lds.sjsigning_time sjsigningTime,
lddl.driver_name driverName,
lddl.vehicle_name vehicleName,
lds.examine_user_name examineUserName,
lds.examine_user_id examineUserId,
lds.signee_name signeeName,
lds.signee_id signeeId,
lddl.kind,
CASE lddl.kind
WHEN '1' THEN (SELECT ldds.driver_phone FROM logpm_distribution_delivery_self AS ldds WHERE ldds.delivery_id = lddl.id AND ldds.is_master = 2)
@ -159,6 +163,9 @@
<if test="param.serviceNumber!=null and param.serviceNumber!=''">
and ldr.service_number like concat('%',#{param.serviceNumber},'%')
</if>
<if test="param.signeeName!=null and param.signeeName!=''">
and lds.signee_name like concat('%',#{param.signeeName},'%')
</if>
<if test="param.orderCode!=null and param.orderCode!=''">
and ldsa.order_code like concat('%',#{param.orderCode},'%')
</if>
@ -204,6 +211,15 @@
<if test="param.warehouseId!=null and param.warehouseId!=''">
and lddl.warehouse_id = #{param.warehouseId} and ldr.warehouse_id =#{param.warehouseId}
</if>
<if test="param.driverName!=null and param.driverName!=''">
and lddl.driver_name like concat('%',#{param.driverName},'%')
</if>
<if test="param.vehicleName!=null and param.vehicleName!=''">
and lddl.vehicle_name like concat('%',#{param.vehicleName},'%')
</if>
<if test="param.examineUserName!=null and param.examineUserName!=''">
and lds.examine_user_name like concat('%',#{param.examineUserName},'%')
</if>
<!-- <if test="param.leadTime!=null and param.leadTime!=''">-->
<!-- and date_format(ldsd.lead_time,'%y%m%d%') = date_format(#{param.leadTime},'%y%m%d%')-->
<!-- </if>-->

9
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.java

@ -31,6 +31,7 @@ import com.logpm.distribution.vo.app.DistributionAppSignforVO;
import com.logpm.distribution.vo.app.DistributionAppStockArticleVO;
import com.logpm.oldproject.dto.SignPushDataUnitDTO;
import org.apache.ibatis.annotations.Param;
import org.springblade.core.secure.BladeUser;
import java.util.List;
@ -285,4 +286,12 @@ public interface DistributionSignforMapper extends BaseMapper<DistributionSignfo
*/
int deductionLoadingInventoryNum(@Param("reservationId")Long reservationId,@Param("deliveryId") Long deliveryId,@Param("nub") Integer loadedNub);
/**
* 更新签收人
* @param deliveryId
* @param reservationId
* @param user
* @return
*/
Integer updateSignUser(@Param("deliveryId")Long deliveryId,@Param("reservationId") Long reservationId,@Param("user") BladeUser user);
}

12
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml

@ -69,6 +69,9 @@
<update id="deductionLoadingInventoryNum">
UPDATE logpm_distribution_signfor lds set lds.loadedin_number = ( lds.loadedin_number - #{nub} ) WHERE lds.is_deleted =0 and lds.reservation_id = #{reservationId} and loadedin_number !=0 and lds.delivery_id = #{deliveryId}
</update>
<update id="updateSignUser">
UPDATE logpm_distribution_signfor SET signee_name = #{user.nickName},signee_id = #{user.userId} WHERE signee_name is null and delivery_id = #{deliveryId} and reservation_id = #{reservationId}
</update>
<delete id="deleteByReservationAndDeliveryId">
DELETE FROM logpm_distribution_signfor
<where>
@ -284,6 +287,8 @@
&#45;&#45; logpm_distribution_signfor lds-->
SELECT
lds.id id,
lds.signee_name signeeName,
lds.signee_id signeeId,
ldr.mall_name mallName,
lds.positioning positioning,
lddl.warehouse_name warehouseName,
@ -411,6 +416,9 @@
<if test="param.loadingTimeSection != null and param.loadingTimeSection!=''">
and lddl.loading_time between #{param.loadingTimeSection[0]} and #{param.loadingTimeSection[1]}
</if>
<if test="param.signeeName != null and param.signeeName!=''">
and lds.signee_name like concat('%',#{param.signeeName},'%')
</if>
<if test="param.sjsigningTimeSection != null and param.sjsigningTimeSection!=''">
and lds.sjsigning_time between #{param.sjsigningTimeSection[0]} and #{param.sjsigningTimeSection[1]}
</if>
@ -483,7 +491,7 @@
JOIN logpm_distribution_delivery_list lddl ON lddl.id = lds.delivery_id
JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id
<where>
lds.is_deleted = 0 and lds.driver_signing ='1' and ldr.is_deleted = 0 and lddl.is_deleted = 0
lds.is_deleted = 0 and lds.driver_signing ='1' and ldr.is_deleted = 0 and lddl.is_deleted = 0 AND lds.signing_status = '1'
<if test="param.mallName != null and param.mallName!=''">
and ldr.mall_name like concat('%',#{param.mallName},'%')
</if>
@ -1037,7 +1045,7 @@
WHERE
ldla.reservation_id = #{reservationId} and ldla.delivery_list_id = #{deliveryListId}
</select>
<select id="selectSignImgsUrl" resultType="com.logpm.distribution.entity.DistributionSignPrintEntity">
<select id="selectSignImgsUrl" resultType="com.logpm.distribution.vo.DistributionSignPrintVO">
SELECT * FROM logpm_distribution_sign_print WHERE reservation_id = #{reservationId} and is_deleted = 0
</select>
<select id="exportDistributionSignforSigningOwn" resultType="com.logpm.distribution.vo.DistributionSignforVO">

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java

@ -35,6 +35,7 @@ import org.apache.poi.ss.formula.functions.T;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
@ -205,4 +206,11 @@ public interface IDistributionSignforService extends BaseService<DistributionSig
R updateSign(DistributionSignforDTO distributionSignfor);
IPage<DistributionAddvaluePackageVO> checkAddValuePackageList(IPage<DistributionAddvaluePackageVO> page, Map<String, Object> addValueDTO);
/**
* 导出签收图片
* @param ids
* @return
*/
void handlePicture(String ids, HttpServletResponse res);
}

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java

@ -346,8 +346,8 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
// distributionAddvalueDetailEntity.setFee(distributionAppAddvalueDTO.getFee());
// }
// break;
default:
return Resp.scanFail("添加失败", "服务器正忙");
// default:
// return Resp.scanFail("添加失败", "服务器正忙");
}
int total = packageEntityList.stream().mapToInt(DistributionAddvaluePackageDTO::getQuantity).sum();
@ -822,6 +822,8 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
return R.status(true);
}
// if (Func.isEmpty(detailEntity)) {
// log.error("###########查询增值服务详情错误:{}", detailEntity);
// log.error("###########AddvalueDetailId>>>>>>>>>>>>>>>>>>>>>>>>>>>:{}", detailEntity);

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java

@ -35,6 +35,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.common.IsOrNoConstant;
import org.springblade.common.constant.loading.LoadingStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageLoadingStatusConstant;
import org.springblade.common.constant.reservation.ReservationOrderStatusConstant;
import org.springblade.common.serviceConstant.ServiceConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
@ -77,6 +78,8 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
private IDistributionStockListService distributionStockListService;
private IDistributionLoadscaninvnService distributionLoadscaninvnService;
@Override
public IPage<DistributionDeliveryInfoVO> selectDistributionDeliveryInfoPage(IPage<DistributionDeliveryInfoVO> page, DistributionDeliveryInfoVO distributionDeliveryInfo) {
List<DistributionDeliveryInfoVO> distributionDeliveryInfoVOS = baseMapper.selectDistributionDeliveryInfoPage(page, distributionDeliveryInfo);
@ -404,6 +407,19 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
Map<Long, DistributionStockListEntity> stockListMap = distributionStockListEntities.stream().collect(Collectors.toMap(DistributionStockListEntity::getId, Function.identity(), (k1, k2) -> k2));
List<DisStockListDetailVO> disStockListDetailVOS = DistributionDisStockListWrapper.build().listVO(inventoryList);
disStockListDetailVOS.stream().forEach(sd->{
//查询一次装车 如果装车了那么
DistributionLoadscaninvnEntity serviceOne = distributionLoadscaninvnService.getOne(Wrappers.<DistributionLoadscaninvnEntity>query().lambda()
.eq(DistributionLoadscaninvnEntity::getReservationId, distributionAppDeliveryListDTO.getReservationId())
.eq(DistributionLoadscaninvnEntity::getInventoryPackageId, sd.getId())
.eq(DistributionLoadscaninvnEntity::getInventoryId, sd.getStockListId())
.ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
if (Func.isNotEmpty(serviceOne)){
sd.setLoadingStatusName(OrderPackageLoadingStatusConstant.yizhuangche.getName());
}else {
sd.setLoadingStatusName(OrderPackageLoadingStatusConstant.weizhuancghe.getName());
}
if (Func.isNotEmpty(stockListMap.get(sd.getStockListId()))){
DistributionStockListEntity distributionStockListEntity = stockListMap.get(sd.getStockListId());
sd.setMarketName(distributionStockListEntity.getMarketName());

101
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -45,6 +45,7 @@ import com.logpm.distribution.wrapper.DistributionStockArticleWrapper;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springblade.common.constant.DictBizConstant;
@ -61,6 +62,7 @@ import org.springblade.common.constant.reservation.*;
import org.springblade.common.constant.signing.SignforDriverSigningStatusConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.serviceConstant.ServiceConstant;
import org.springblade.common.utils.FileUtil;
import org.springblade.common.utils.GaoDeApiUtil;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
@ -75,12 +77,20 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.zip.ZipOutputStream;
/**
* 签收管理 服务实现类
@ -376,6 +386,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
// Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
//更新装车包件数和签收包件数
Integer j = distributionSignforMapper.updateSignforByReservationId(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub());
//更新签收人
Integer m = distributionSignforMapper.updateSignUser(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(),AuthUtil.getUser());
//扣减订单的在库数量
Integer k = distributionStockArticleMapper.deductionHandQuantity(loadscanEntity.getOrderId(), loadscanEntity.getLoadedNub());
warehouseUpdownTypeClient.downPackageOrDelTray(collect.get(0).getOrderPackageCode(), myCurrentWarehouse.getId());
@ -1012,7 +1024,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscaninvnEntity.setSigningUserId(user.getUserId());
distributionLoadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date()));
distributionLoadscaninvnService.save(distributionLoadscaninvnEntity);
//更新装车数量
Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), distributionLoadscaninvnEntity.getPackageNub());
//更新签收人
Integer i = distributionSignforMapper.updateSignUser(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), AuthUtil.getUser());
//扣减库存
DistributionStockListEntity stockListEntity = distributionStockListService.getById(inventory.get(0).getStockListId());
stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() - distributionLoadscaninvnEntity.getPackageNub());
@ -1489,6 +1505,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
distributionLoadscaninvnService.updateById(loadscaninvnEntity);
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distributionDeliveryListEntity.getId());
Integer j = distributionSignforMapper.updatesignforByinvn(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), loadscaninvnEntity.getPackageNub());
//更新签收人
Integer m = distributionSignforMapper.updateSignUser(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), AuthUtil.getUser());
distributionAsyncService.checkSignStatus(null,loadscaninvnEntity.getReservationId(),loadscaninvnEntity.getDeliveryId());
}
}else {
@ -1542,6 +1560,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distributionDeliveryListEntity.getId());
//更新签收表的签收数量和装车数量
Integer j = distributionSignforMapper.updateLoadAndsignforByinvn(newLoadscaninvnEntity.getDeliveryId(), newLoadscaninvnEntity.getReservationId(), newLoadscaninvnEntity.getPackageNub());
//更新签收人
Integer m = distributionSignforMapper.updateSignUser(newLoadscaninvnEntity.getDeliveryId(), newLoadscaninvnEntity.getReservationId(), AuthUtil.getUser());
//维护预约库存品数据
//扣减库存
DistributionStockListEntity stockListEntity = distributionStockListService.getById(detailEntity.getStockListId());
@ -1730,7 +1751,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
distributionLoadscanService.updateById(distributionLoadscanEntity);
distributionAsyncService.checkSignStatus(distributionLoadscanEntity.getPackageId(),distributionLoadscanEntity.getReservationId(),distributionLoadscanEntity.getDeliveryId());
//更新签收人
Integer m = distributionSignforMapper.updateSignUser(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), AuthUtil.getUser());
//维护签收数量
DistributionSignforEntity signforEntity = distributionSignforMapper.selectOne(Wrappers.<DistributionSignforEntity>query().lambda().eq(DistributionSignforEntity::getDeliveryId, distributionLoadscanEntity.getDeliveryId()).eq(DistributionSignforEntity::getReservationId, distributionLoadscanEntity.getReservationId()));
BigDecimal loadedNumber = new BigDecimal(signforEntity.getLoadedNumber());
@ -1789,6 +1811,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
//更新签收表的签收数量和装车数量
Integer j = distributionSignforMapper.updateSignforByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//更新签收人
Integer m = distributionSignforMapper.updateSignUser(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), AuthUtil.getUser());
//维护出库数量和签收数量
DistributionParcelNumberEntity parcelNumberServiceById = distributionParcelNumberService.getById(parcelNumberEntity.getId());
BigDecimal signinQuantity = new BigDecimal(parcelNumberServiceById.getSigninQuantity());
@ -1864,6 +1889,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
Integer j = distributionSignforMapper.updateSignforByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//扣减订单的在库数量
Integer k = distributionStockArticleMapper.deductionHandQuantity(loadscanEntity.getOrderId(), loadscanEntity.getLoadedNub());
//更新签收人
Integer m = distributionSignforMapper.updateSignUser(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), AuthUtil.getUser());
distributionAsyncService.checkStockArticleSignStatus(parcelListEntity);
log.info("一件签收包件下架解托>>>>>>>>>>>>>>>parcelListEntity.getOrderPackageCode():{}",parcelListEntity.getOrderPackageCode());
warehouseUpdownTypeClient.downPackageOrDelTray(parcelListEntity.getOrderPackageCode(), myCurrentWarehouse.getId());
@ -1888,6 +1916,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distributionDeliveryListEntity.getId());
//更新签收数量
Integer j = distributionSignforMapper.updateSignforNum(loadscanEntities.getDeliveryId(), loadscanEntities.getReservationId(), loadscanEntities.getPackageNub());
//更新签收人
Integer m = distributionSignforMapper.updateSignUser(loadscanEntities.getDeliveryId(), loadscanEntities.getReservationId(), AuthUtil.getUser());
distributionAsyncService.checkSignStatus(loadscanEntities.getPackageId(),loadscanEntities.getReservationId(),loadscanEntities.getDeliveryId());
log.info("一件签收包件解托>>>>>>>>>>>>>>>parcelListEntity.getOrderPackageCode():{}",parcelListEntity.getOrderPackageCode());
warehouseUpdownTypeClient.downPackageOrDelTray(parcelListEntity.getOrderPackageCode(), myCurrentWarehouse.getId());
@ -2853,6 +2883,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId());
//更新装车包件数和签收包件数
Integer j = distributionSignforMapper.updateSignforByReservationId(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub());
//更新签收人
Integer k = distributionSignforMapper.updateSignUser(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), AuthUtil.getUser());
//这里需要维护
BigDecimal deliveryQuantity = new BigDecimal(parcelNumberEntity.getDeliveryQuantity());
BigDecimal outboundQuantity = new BigDecimal(parcelNumberEntity.getOutboundQuantity());
@ -2956,4 +2988,71 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
page.setTotal(addvaluePackageVOS.size());
return page.setRecords(addvaluePackageVOS);
}
@Override
public void handlePicture(String ids, HttpServletResponse res) {
if (Func.isEmpty(ids)){
log.error("#########ids字段缺失:{}",ids);
}
File file = null;
List<Long> signIds = Func.toLongList(",", ids);
List<DistributionSignforEntity> distributionSignforEntities = this.listByIds(signIds);
if (Func.isNotEmpty(distributionSignforEntities)) {
for (DistributionSignforEntity distributionSignforEntity : distributionSignforEntities) {
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(distributionSignforEntity.getReservationId());
List<DistributionSignPrintVO> printEntities = baseMapper.selectSignImgsUrl(distributionSignforEntity.getReservationId());
if (Func.isNotEmpty(printEntities)){
//进行分组
Map<String, List<DistributionSignPrintVO>> signingPictureGroup = printEntities.stream().collect(Collectors.groupingBy(DistributionSignPrintVO::getType));
//进行图片
signingPictureGroup.forEach((k,v)->{
//这个方法会根据
List<String> urls = v.stream().map(DistributionSignPrintVO::getUrlRoute).collect(Collectors.toList());
FileUtil.handleSignPictureZip(urls, k, distributionReservationEntity.getReservationCode(), distributionReservationEntity.getConsignee());
});
}
file = FileUtil.checkZipFile(distributionReservationEntity.getReservationCode());
}
}
//获取Zip文件
if (Func.isNotEmpty(file)){
byte[] buffer = new byte[1024 * 1024 * 1024];
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
ServletOutputStream os = res.getOutputStream();
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
int i = bis.read(buffer);
while (i >= 0) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
} catch (IOException e) {
log.info("Download failed!");
throw new RuntimeException(e);
}finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}

Loading…
Cancel
Save