Merge branch 'develop' into dev_zhangke
This commit is contained in:
commit
7f4e760772
|
|
@ -118,6 +118,11 @@
|
|||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.idev.excel</groupId>
|
||||
<artifactId>fastexcel</artifactId>
|
||||
<version>1.2.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
|||
|
|
@ -7,6 +7,12 @@ import cn.hutool.core.util.NumberUtil;
|
|||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.crypto.digest.DigestUtil;
|
||||
import cn.idev.excel.EasyExcel;
|
||||
import cn.idev.excel.enums.CellDataTypeEnum;
|
||||
import cn.idev.excel.metadata.data.ImageData;
|
||||
import cn.idev.excel.metadata.data.WriteCellData;
|
||||
import cn.idev.excel.write.metadata.WriteSheet;
|
||||
import cn.idev.excel.write.metadata.fill.FillConfig;
|
||||
import com.nflg.wms.admin.pojo.document.PackageMaterialScanRecord;
|
||||
import com.nflg.wms.admin.pojo.document.PackageMaterialScanRecordItem;
|
||||
import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO;
|
||||
|
|
@ -24,10 +30,7 @@ import com.nflg.wms.common.pojo.dto.SAPOrderDTO;
|
|||
import com.nflg.wms.common.pojo.dto.SAPSyncFromDTO;
|
||||
import com.nflg.wms.common.pojo.qo.*;
|
||||
import com.nflg.wms.common.pojo.vo.*;
|
||||
import com.nflg.wms.common.util.BeanUtil;
|
||||
import com.nflg.wms.common.util.EecExcelUtil;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
import com.nflg.wms.common.util.VUtil;
|
||||
import com.nflg.wms.common.util.*;
|
||||
import com.nflg.wms.repository.entity.*;
|
||||
import com.nflg.wms.repository.service.*;
|
||||
import com.nflg.wms.starter.BaseController;
|
||||
|
|
@ -41,6 +44,8 @@ import jakarta.validation.constraints.NotNull;
|
|||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
|
@ -50,7 +55,10 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.net.URL;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
|
@ -94,7 +102,10 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
private IWmsStructuralPackageDeliverOrderMapService structuralPackageDeliverOrderMapService;
|
||||
|
||||
@Resource
|
||||
private IWmsStructuralPackageStorageTaskService structuralPackageStorageTaskService;
|
||||
private IWmsInTaskService inTaskService;
|
||||
|
||||
@Resource
|
||||
private IUserSupplierService userSupplierService;
|
||||
|
||||
/**
|
||||
* 搜索SAP订单
|
||||
|
|
@ -558,6 +569,52 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
return ApiResult.success(structuralPackageDeliverOrderService.search(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出送货单
|
||||
* @param id 送货单id
|
||||
*/
|
||||
@GetMapping("exportDeliverOrder")
|
||||
public void exportDeliverOrder(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception {
|
||||
WmsStructuralPackageDeliverOrder deliverOrder=structuralPackageDeliverOrderService.getById(id);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(deliverOrder)).throwMessage("送货单不存在");
|
||||
Map<String, Object> info = new HashMap<>();
|
||||
info.put("deliverOrderNo", deliverOrder.getNo());
|
||||
WriteCellData<Void> writeCellData = new WriteCellData<>();
|
||||
writeCellData.setType(CellDataTypeEnum.EMPTY);
|
||||
ImageData imageData = new ImageData();
|
||||
imageData.setImageType(ImageData.ImageType.PICTURE_TYPE_PNG);
|
||||
imageData.setImage(QRCodeUtil.generateQRCode(deliverOrder.getNo(), 100, 100));
|
||||
imageData.setTop(5);
|
||||
imageData.setRight(5);
|
||||
imageData.setBottom(5);
|
||||
imageData.setLeft(5);
|
||||
imageData.setRelativeFirstRowIndex(0);
|
||||
imageData.setRelativeFirstColumnIndex(0);
|
||||
imageData.setRelativeLastRowIndex(2);
|
||||
imageData.setRelativeLastColumnIndex(0);
|
||||
writeCellData.setImageDataList(List.of(imageData));
|
||||
info.put("qrCodeUrl", writeCellData);
|
||||
UserSupplier supplier=userSupplierService.getByUserId(deliverOrder.getSupplierId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(supplier)).throwMessage("供应商不存在");
|
||||
info.put("supplierName", supplier.getSupplierName());
|
||||
info.put("abbreviation", supplier.getAbbreviation());
|
||||
info.put("today", DateTimeUtil.format(LocalDate.now(), "yyyy-MM-dd"));
|
||||
List<DeliverStructuralPackageOrderForPackageItemVO> datas = deliverStructuralPackageOrderService.getInfoByDeliverOrderNo(deliverOrder.getNo());
|
||||
datas.forEach(it -> {
|
||||
it.setTrayNum(Math.toIntExact(deliverStructuralPackageOrderTrayService.lambdaQuery()
|
||||
.eq(WmsStructuralPackageOrderTray::getOrderId, it.getId())
|
||||
.count()));
|
||||
});
|
||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(deliverOrder.getNo() + "送货单.xlsx", StandardCharsets.UTF_8));
|
||||
try (cn.idev.excel.ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(new ClassPathResource("template/钢构包送货单模版.xlsx").getInputStream()).build()) {
|
||||
WriteSheet writeSheet = EasyExcel.writerSheet().build();
|
||||
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
|
||||
excelWriter.fill(datas, fillConfig, writeSheet);
|
||||
excelWriter.fill(info, writeSheet);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据送货单号查询订单信息(PDA使用)
|
||||
* @param orderNo 送货单号
|
||||
|
|
@ -574,6 +631,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
.stream()
|
||||
.map(WmsStructuralPackageOrderTray::getNo)
|
||||
.toList());
|
||||
it.setTrayNum(it.getTrayNos().size());
|
||||
//SAP
|
||||
SAPMaterialInfoInOrderDTO dto1 = sapService.getMaterialInfoInOrder(it.getExternalOrderNo(), it.getSupplierCode(), it.getPackageNo());
|
||||
if (Objects.isNull(dto1)) {
|
||||
|
|
@ -604,6 +662,8 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
@Transactional
|
||||
@PostMapping("receive")
|
||||
public ApiResult<Void> receive(@Valid @RequestBody @NotNull StructuralPackageOrderReceiveQO request) {
|
||||
DeliverStructuralPackageOrderVO order=deliverStructuralPackageOrderService.getInfo(request.getId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
|
||||
List<String> trayNos = deliverStructuralPackageOrderTrayService.lambdaQuery()
|
||||
.select(WmsStructuralPackageOrderTray::getNo)
|
||||
.eq(WmsStructuralPackageOrderTray::getOrderId, request.getId())
|
||||
|
|
@ -626,25 +686,23 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
.eq(WmsStructuralPackageOrderTray::getState, OrderState.InTransit.getState())
|
||||
.update();
|
||||
//创建上架任务
|
||||
String deliverOrderNo = structuralPackageDeliverOrderService.getNoByOrderId(request.getId());
|
||||
String taskNo = "NFS" + deliverOrderNo;
|
||||
if (Objects.isNull(structuralPackageStorageTaskService.lambdaQuery().eq(WmsStructuralPackageStorageTask::getNo, taskNo).one())){
|
||||
structuralPackageStorageTaskService.save(new WmsStructuralPackageStorageTask()
|
||||
.setNo(taskNo)
|
||||
.setSourceFrom(1)
|
||||
.setSourceNo(deliverOrderNo)
|
||||
.setCreateTime(LocalDateTime.now())
|
||||
);
|
||||
}
|
||||
VUtil.trueThrowBusinessError(!inTaskService.generateTask(List.of(new WmsInTaskItem()
|
||||
.setPoNum(order.getExternalOrderNo())
|
||||
.setPoLineNumber(order.getRowNo())
|
||||
.setLineNumber(String.valueOf(order.getId()))
|
||||
.setNoteNum(structuralPackageDeliverOrderService.getNoByOrderId(request.getId()))
|
||||
.setItemCode(order.getPackageNo())
|
||||
.setItemName(order.getPackageDesc())
|
||||
.setUnit("套")
|
||||
.setIsQuality(false)
|
||||
.setUnqualifiedQty(BigDecimal.ZERO)
|
||||
.setQualifiedQty(BigDecimal.valueOf(order.getNum()))
|
||||
.setFactory("1010")
|
||||
.setDataStatus((short)0)
|
||||
.setOperationUserId(UserUtil.getUserId())
|
||||
.setOperationUserName(UserUtil.getUserName())
|
||||
.setBatchNumber(order.getModelNo())), (short) 1))
|
||||
.throwMessage("创建上架任务失败");
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索上架任务
|
||||
* @param request 查询参数
|
||||
*/
|
||||
@PostMapping("searchStorageTask")
|
||||
public ApiResult<PageData<WmsStructuralPackageStorageTask>> searchStorageTask(@Valid @RequestBody @NotNull StructuralPackageStorageTaskSearchQO request){
|
||||
return ApiResult.success(structuralPackageStorageTaskService.search(request));
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
|
@ -43,6 +43,16 @@ public class DeliverStructuralPackageOrderForPackageItemVO {
|
|||
*/
|
||||
private String packageDesc;
|
||||
|
||||
/**
|
||||
* 钢构包图号
|
||||
*/
|
||||
private String packageDrawingNo;
|
||||
|
||||
/**
|
||||
* 钢构包备注
|
||||
*/
|
||||
private String packageRemark;
|
||||
|
||||
/**
|
||||
* 仓库编号
|
||||
*/
|
||||
|
|
@ -58,6 +68,11 @@ public class DeliverStructuralPackageOrderForPackageItemVO {
|
|||
*/
|
||||
private BigDecimal weight;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private Integer num;
|
||||
|
||||
/**
|
||||
* 机台号
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import java.time.LocalDateTime;
|
|||
@Data
|
||||
public class DeliverStructuralPackageOrderVO {
|
||||
|
||||
// private Long id;
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据号
|
||||
|
|
|
|||
|
|
@ -1,58 +0,0 @@
|
|||
package com.nflg.wms.repository.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
@TableName("wms_structural_package_storage_task")
|
||||
public class WmsStructuralPackageStorageTask implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 任务单号
|
||||
*/
|
||||
private String no;
|
||||
|
||||
/**
|
||||
* 来源,1:采购单入库
|
||||
*/
|
||||
private Integer sourceFrom;
|
||||
|
||||
/**
|
||||
* 来源单号
|
||||
*/
|
||||
private String sourceNo;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 上架时间
|
||||
*/
|
||||
private LocalDateTime storeTime;
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
package com.nflg.wms.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nflg.wms.common.pojo.qo.StructuralPackageStorageTaskSearchQO;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface WmsStructuralPackageStorageTaskMapper extends BaseMapper<WmsStructuralPackageStorageTask> {
|
||||
|
||||
IPage<WmsStructuralPackageStorageTask> search(StructuralPackageStorageTaskSearchQO request, Page<?> objectPage);
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
package com.nflg.wms.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.common.pojo.qo.StructuralPackageStorageTaskSearchQO;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface IWmsStructuralPackageStorageTaskService extends IService<WmsStructuralPackageStorageTask> {
|
||||
|
||||
IPage<WmsStructuralPackageStorageTask> search(@Valid @NotNull StructuralPackageStorageTaskSearchQO request);
|
||||
}
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
package com.nflg.wms.repository.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.wms.common.pojo.qo.StructuralPackageStorageTaskSearchQO;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask;
|
||||
import com.nflg.wms.repository.mapper.WmsStructuralPackageStorageTaskMapper;
|
||||
import com.nflg.wms.repository.service.IWmsStructuralPackageStorageTaskService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
@Service
|
||||
public class WmsStructuralPackageStorageTaskServiceImpl extends ServiceImpl<WmsStructuralPackageStorageTaskMapper, WmsStructuralPackageStorageTask> implements IWmsStructuralPackageStorageTaskService {
|
||||
|
||||
@Override
|
||||
public IPage<WmsStructuralPackageStorageTask> search(StructuralPackageStorageTaskSearchQO request) {
|
||||
return baseMapper.search(request,new Page<>(request.getPage(),request.getPageSize()));
|
||||
}
|
||||
}
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
|
||||
<select id="getInfoByDeliverOrderNo" resultType="com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderForPackageItemVO">
|
||||
SELECT o.*,m.no||wb."no" AS "workbench_code",us.supplier_code,us.supplier_name,sp."no" AS "package_no"
|
||||
,sp."name" AS "package_desc"
|
||||
,sp."name" AS "package_desc",sp.drawing_no as "package_drawing_no",sp.remark as "package_remark",o.num
|
||||
FROM wms_structural_package_deliver_order pdo
|
||||
inner join wms_structural_package_deliver_order_map pdom on pdo.id=pdom.deliver_id
|
||||
LEFT JOIN wms_structural_package_order o on o.id=pdom.order_id
|
||||
|
|
|
|||
|
|
@ -1,26 +0,0 @@
|
|||
<?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="com.nflg.wms.repository.mapper.WmsStructuralPackageStorageTaskMapper">
|
||||
|
||||
<select id="search" resultType="com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask">
|
||||
select *
|
||||
from wms_structural_package_storage_task
|
||||
<where>
|
||||
<if test="request.type != null">
|
||||
and source_from=#{type}
|
||||
</if>
|
||||
<if test="request.taskNo != null and request.taskNo!=''">
|
||||
and "no" like concat('%', #{request.taskNo}, '%')
|
||||
</if>
|
||||
<if test="request.orderNo != null and request.orderNo!=''">
|
||||
and source_no like concat('%', #{request.orderNo}, '%')
|
||||
</if>
|
||||
<if test="request.startDate!=null">
|
||||
and create_time >= #{request.startDate}
|
||||
</if>
|
||||
<if test="request.endDate!=null">
|
||||
and create_time <= #{request.endDate}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue