long findCountByStoreCode(String storeCode); | long findCountByStoreCode(String storeCode); | ||||
//根据设备编号范围查询库存 | //根据设备编号范围查询库存 | ||||
@Query(value = "select count(id) from InvwCardDetails where storeCode = ?1 and status = ?2 and cardId >= ?3 and cardId <= ?4 ") | |||||
@Query(value = "select count(id) from InvwCardDetails where storeCode = ?1 and status = ?2 and TO_NUMBER(cardId) >= TO_NUMBER(?3) and TO_NUMBER(cardId) <= TO_NUMBER(?4) ") | |||||
long findCountByStoreCodeStatusCardId(String storeCode, InvDeviceStatus status, String cardIdStart, String cardIdEnd); | long findCountByStoreCodeStatusCardId(String storeCode, InvDeviceStatus status, String cardIdStart, String cardIdEnd); | ||||
//修改卡的所属仓库 | //修改卡的所属仓库 | ||||
@Modifying | @Modifying | ||||
@Transactional | @Transactional | ||||
@Query(value = "update InvwCardDetails set storeCode = ?1,agencyId=?2,channelId=?3 " + | @Query(value = "update InvwCardDetails set storeCode = ?1,agencyId=?2,channelId=?3 " + | ||||
" where storeCode = ?4 and status = ?5 and cardId >= ?6 and cardId <= ?7") | |||||
" where storeCode = ?4 and status = ?5 and TO_NUMBER(cardId) >= TO_NUMBER(?6) and TO_NUMBER(cardId) <= TO_NUMBER(?7) ") | |||||
int updateStoreCodeByStoreCode(String storeCode, String agencyId, String channelId, String oldStoreCode, InvDeviceStatus status, String cardIdStart, String cardIdEnd); | int updateStoreCodeByStoreCode(String storeCode, String agencyId, String channelId, String oldStoreCode, InvDeviceStatus status, String cardIdStart, String cardIdEnd); | ||||
} | } |
long findCountByStoreCode(String storeCode); | long findCountByStoreCode(String storeCode); | ||||
//根据仓库编号和状态查询库存 | //根据仓库编号和状态查询库存 | ||||
@Query(value = "select count(id) from InvwObuDetails where storeCode = ?1 and status = ?2 and obuId >= ?3 and obuId <= ?4 ") | |||||
@Query(value = "select count(id) from InvwObuDetails where storeCode = ?1 and status = ?2 and TO_NUMBER(cardId) >= TO_NUMBER(?3) and TO_NUMBER(cardId) <= TO_NUMBER(?4) ") | |||||
long findCountByStoreCodeStatusObuId(String storeCode, InvDeviceStatus status, String obuIdStart, String obuIdEnd); | long findCountByStoreCodeStatusObuId(String storeCode, InvDeviceStatus status, String obuIdStart, String obuIdEnd); | ||||
//修改卡的所属仓库 | //修改卡的所属仓库 | ||||
@Modifying | @Modifying | ||||
@Transactional | @Transactional | ||||
@Query(value = "update InvwObuDetails set storeCode = ?1,agencyId=?2,channelId=?3 " + | @Query(value = "update InvwObuDetails set storeCode = ?1,agencyId=?2,channelId=?3 " + | ||||
" where storeCode = ?4 and status = ?5 and cardId >= ?6 and cardId <= ?7") | |||||
" where storeCode = ?4 and status = ?5 and TO_NUMBER(cardId) >= TO_NUMBER(?6) and TO_NUMBER(cardId) <= TO_NUMBER(?7) ") | |||||
int updateStoreCodeByStoreCode(String storeCode, String agencyId, String channelId, String oldStoreCode, InvDeviceStatus status, String cardIdStart, String cardIdEnd); | int updateStoreCodeByStoreCode(String storeCode, String agencyId, String channelId, String oldStoreCode, InvDeviceStatus status, String cardIdStart, String cardIdEnd); | ||||
return ApiResponse.success().setMessage("校验通过"); | return ApiResponse.success().setMessage("校验通过"); | ||||
} | } | ||||
@ApiOperation(value = "08-号段导入") | |||||
@PostMapping("/import") | |||||
public ApiResponse<InvwTransferApplyImportResponseDTO> importData(@Valid @RequestBody InvwTransferApplyImportRequestDTO req) throws ManagerException { | |||||
return ApiResponse.of(manager.importData(req)); | |||||
} | |||||
// @ApiOperation(value = "07-枚举查询") | // @ApiOperation(value = "07-枚举查询") | ||||
// @PostMapping("/getEnum") | // @PostMapping("/getEnum") | ||||
// public ApiResponse<Map<String,Object>> getEnum() { | // public ApiResponse<Map<String,Object>> getEnum() { |
import lombok.experimental.Accessors; | import lombok.experimental.Accessors; | ||||
import javax.validation.Valid; | import javax.validation.Valid; | ||||
import java.util.List; | |||||
@ApiModel(description = "调拨申请") | @ApiModel(description = "调拨申请") | ||||
@Getter | @Getter | ||||
@ApiModelProperty(value = "调拨明细") | @ApiModelProperty(value = "调拨明细") | ||||
@Valid | @Valid | ||||
private InvwTransferApplyDetailsModel[] transferDetails; | |||||
private List<InvwTransferApplyDetailsModel> transferDetails; | |||||
} | } |
package cn.com.taiji.invw.dto.transfer; | |||||
import cn.com.taiji.core.entity.dict.invw.InventoryType; | |||||
import cn.com.taiji.invw.dto.AbstractBizRequestDTO; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import lombok.experimental.Accessors; | |||||
import javax.persistence.EnumType; | |||||
import javax.persistence.Enumerated; | |||||
import javax.validation.constraints.NotBlank; | |||||
import javax.validation.constraints.NotNull; | |||||
@ApiModel(description = "调拨申请号段导入") | |||||
@Getter | |||||
@Setter | |||||
@Accessors(chain = true) | |||||
public class InvwTransferApplyImportRequestDTO extends AbstractBizRequestDTO { | |||||
@ApiModelProperty(value = "发货仓库") | |||||
@NotBlank(message = "发货仓库不能为空") | |||||
private String sendStoreCode; | |||||
@ApiModelProperty(value = "设备类型") | |||||
@NotNull(message = "设备类型不能为空") | |||||
@Enumerated(EnumType.STRING) | |||||
private InventoryType inventoryType;//设备类型 | |||||
@ApiModelProperty(value = "调拨明细文件URL") | |||||
@NotBlank(message = "调拨明细文件URL不能为空") | |||||
private String fileUrl; | |||||
} |
package cn.com.taiji.invw.dto.transfer; | |||||
import cn.com.taiji.invw.model.transfer.InvwTransferApplyDetailsModel; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import lombok.experimental.Accessors; | |||||
import java.util.List; | |||||
@ApiModel(description = "调拨详情文件导入响应") | |||||
@Getter | |||||
@Setter | |||||
@Accessors(chain = true) | |||||
public class InvwTransferApplyImportResponseDTO { | |||||
@ApiModelProperty(value = "调拨详情导入信息") | |||||
private List<InvwTransferApplyDetailsModel> transferDetails; | |||||
} |
import cn.com.taiji.invw.dto.card.InvwQryCardBatchPageRequestDTO; | import cn.com.taiji.invw.dto.card.InvwQryCardBatchPageRequestDTO; | ||||
import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO; | import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO; | ||||
import cn.com.taiji.invw.manager.AbstractCommManager; | import cn.com.taiji.invw.manager.AbstractCommManager; | ||||
import cn.com.taiji.invw.model.excel.InvwQryCardBatchExcelModel; | |||||
import cn.com.taiji.invw.model.card.InvwQryCardBatchExcelModel; | |||||
import com.alibaba.excel.EasyExcel; | import com.alibaba.excel.EasyExcel; | ||||
import org.springframework.beans.BeanUtils; | import org.springframework.beans.BeanUtils; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; |
import cn.com.taiji.invw.dto.card.InvwQryCardsPageRequestDTO; | import cn.com.taiji.invw.dto.card.InvwQryCardsPageRequestDTO; | ||||
import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO; | import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO; | ||||
import cn.com.taiji.invw.manager.AbstractCommManager; | import cn.com.taiji.invw.manager.AbstractCommManager; | ||||
import cn.com.taiji.invw.model.excel.InvwQryCardsExcelModel; | |||||
import cn.com.taiji.invw.model.card.InvwQryCardsExcelModel; | |||||
import com.alibaba.excel.EasyExcel; | import com.alibaba.excel.EasyExcel; | ||||
import org.springframework.beans.BeanUtils; | import org.springframework.beans.BeanUtils; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; |
import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO; | import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO; | ||||
import cn.com.taiji.invw.dto.obu.InvwQryObuBatchPageRequestDTO; | import cn.com.taiji.invw.dto.obu.InvwQryObuBatchPageRequestDTO; | ||||
import cn.com.taiji.invw.manager.AbstractCommManager; | import cn.com.taiji.invw.manager.AbstractCommManager; | ||||
import cn.com.taiji.invw.model.excel.InvwQryObuBatchExcelModel; | |||||
import cn.com.taiji.invw.model.obu.InvwQryObuBatchExcelModel; | |||||
import com.alibaba.excel.EasyExcel; | import com.alibaba.excel.EasyExcel; | ||||
import org.springframework.beans.BeanUtils; | import org.springframework.beans.BeanUtils; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; |
import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO; | import cn.com.taiji.invw.dto.comm.CommExcelFileResponseDTO; | ||||
import cn.com.taiji.invw.dto.obu.InvwQryObusPageRequestDTO; | import cn.com.taiji.invw.dto.obu.InvwQryObusPageRequestDTO; | ||||
import cn.com.taiji.invw.manager.AbstractCommManager; | import cn.com.taiji.invw.manager.AbstractCommManager; | ||||
import cn.com.taiji.invw.model.excel.InvwQryObusExcelModel; | |||||
import cn.com.taiji.invw.model.obu.InvwQryObusExcelModel; | |||||
import com.alibaba.excel.EasyExcel; | import com.alibaba.excel.EasyExcel; | ||||
import org.springframework.beans.BeanUtils; | import org.springframework.beans.BeanUtils; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; |
void confirmIn(InvwTransferApplyConfirmInRequestDTO req) throws ManagerException; | void confirmIn(InvwTransferApplyConfirmInRequestDTO req) throws ManagerException; | ||||
void check(InvwTransferApplyCheckRequestDTO req) throws ManagerException; | void check(InvwTransferApplyCheckRequestDTO req) throws ManagerException; | ||||
InvwTransferApplyImportResponseDTO importData(InvwTransferApplyImportRequestDTO req) throws ManagerException; | |||||
} | } |
import cn.com.taiji.common.manager.ManagerException; | import cn.com.taiji.common.manager.ManagerException; | ||||
import cn.com.taiji.common.model.dao.Pagination; | import cn.com.taiji.common.model.dao.Pagination; | ||||
import cn.com.taiji.common.pub.StringTools; | import cn.com.taiji.common.pub.StringTools; | ||||
import cn.com.taiji.core.entity.dict.basic.CardType; | |||||
import cn.com.taiji.core.entity.dict.basic.DeviceVersion; | |||||
import cn.com.taiji.core.entity.dict.basic.ObuType; | |||||
import cn.com.taiji.core.entity.dict.invw.InvApplyStatus; | import cn.com.taiji.core.entity.dict.invw.InvApplyStatus; | ||||
import cn.com.taiji.core.entity.dict.invw.InvDeviceStatus; | import cn.com.taiji.core.entity.dict.invw.InvDeviceStatus; | ||||
import cn.com.taiji.core.entity.dict.invw.InventoryType; | import cn.com.taiji.core.entity.dict.invw.InventoryType; | ||||
import cn.com.taiji.core.entity.dict.invw.OwnType; | |||||
import cn.com.taiji.core.entity.invw.InvwTransferApply; | import cn.com.taiji.core.entity.invw.InvwTransferApply; | ||||
import cn.com.taiji.core.entity.invw.InvwTransferApplyDetails; | import cn.com.taiji.core.entity.invw.InvwTransferApplyDetails; | ||||
import cn.com.taiji.core.entity.invw.InvwWarehouse; | import cn.com.taiji.core.entity.invw.InvwWarehouse; | ||||
import cn.com.taiji.core.manager.tools.minio.MinioUtile; | |||||
import cn.com.taiji.core.repo.jpa.invw.*; | import cn.com.taiji.core.repo.jpa.invw.*; | ||||
import cn.com.taiji.core.repo.request.invw.InvwTransferApplyPageRequest; | import cn.com.taiji.core.repo.request.invw.InvwTransferApplyPageRequest; | ||||
import cn.com.taiji.invw.dto.transfer.*; | import cn.com.taiji.invw.dto.transfer.*; | ||||
import cn.com.taiji.invw.manager.AbstractCommManager; | import cn.com.taiji.invw.manager.AbstractCommManager; | ||||
import cn.com.taiji.invw.model.transfer.InvwTransferApplyCommModel; | import cn.com.taiji.invw.model.transfer.InvwTransferApplyCommModel; | ||||
import cn.com.taiji.invw.model.transfer.InvwTransferApplyDetailsModel; | import cn.com.taiji.invw.model.transfer.InvwTransferApplyDetailsModel; | ||||
import cn.com.taiji.invw.tools.EasyExcelUtil; | |||||
import cn.com.taiji.invw.tools.GenerateNoUtil; | import cn.com.taiji.invw.tools.GenerateNoUtil; | ||||
import org.springframework.beans.BeanUtils; | import org.springframework.beans.BeanUtils; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||
import java.io.File; | |||||
import java.math.BigInteger; | import java.math.BigInteger; | ||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
private InvwCardDetailsRepo cardDetailsRepo; | private InvwCardDetailsRepo cardDetailsRepo; | ||||
@Autowired | @Autowired | ||||
private InvwObuDetailsRepo obuDetailsRepo; | private InvwObuDetailsRepo obuDetailsRepo; | ||||
@Autowired | |||||
private MinioUtile minioUtile; | |||||
@Override | @Override | ||||
public Pagination page(InvwTransferApplyPageRequestDTO req) { | public Pagination page(InvwTransferApplyPageRequestDTO req) { | ||||
toCheck(details, req.getInventoryType(), req.getSendStoreCode()); | toCheck(details, req.getInventoryType(), req.getSendStoreCode()); | ||||
} | } | ||||
@Override | |||||
public InvwTransferApplyImportResponseDTO importData(InvwTransferApplyImportRequestDTO req) throws ManagerException { | |||||
// 获取导入文件 | |||||
File file = minioUtile.getFileByUrl(req.getFileUrl()); | |||||
// 读取文件数据 | |||||
List<InvwTransferApplyDetailsModel> models = EasyExcelUtil.readExcelColToModelList(file, InvwTransferApplyDetailsModel.class); | |||||
if (models.size() == 0) { | |||||
throw new ManagerException("导入文件为空"); | |||||
} | |||||
InvwTransferApplyImportResponseDTO response = new InvwTransferApplyImportResponseDTO(); | |||||
response.setTransferDetails(models); | |||||
return response; | |||||
} | |||||
public void handlerTransferApply(InvwTransferApplyAddRequestDTO addReq, InvwTransferApplyEditRequestDTO editReq, | public void handlerTransferApply(InvwTransferApplyAddRequestDTO addReq, InvwTransferApplyEditRequestDTO editReq, | ||||
InvwTransferApply transferApply, List<InvwTransferApplyDetails> transferApplyDetails) throws ManagerException { | InvwTransferApply transferApply, List<InvwTransferApplyDetails> transferApplyDetails) throws ManagerException { | ||||
// 处理新增请求 | // 处理新增请求 | ||||
//处理新增 | //处理新增 | ||||
private void handleAddRequest(InvwTransferApplyAddRequestDTO addReq, InvwTransferApply transferApply, List<InvwTransferApplyDetails> transferApplyDetails) throws ManagerException { | private void handleAddRequest(InvwTransferApplyAddRequestDTO addReq, InvwTransferApply transferApply, List<InvwTransferApplyDetails> transferApplyDetails) throws ManagerException { | ||||
InvwTransferApplyCommModel transferApplyModel = addReq.getTransferApply(); | InvwTransferApplyCommModel transferApplyModel = addReq.getTransferApply(); | ||||
InvwTransferApplyDetailsModel[] detailsModels = addReq.getTransferDetails(); | |||||
List<InvwTransferApplyDetailsModel> detailsModels = addReq.getTransferDetails(); | |||||
LocalDateTime now = LocalDateTime.now(); | LocalDateTime now = LocalDateTime.now(); | ||||
//生成申请单号 | //生成申请单号 |
package cn.com.taiji.invw.model.excel; | |||||
package cn.com.taiji.invw.model.card; | |||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | ||||
import com.alibaba.excel.annotation.ExcelProperty; | import com.alibaba.excel.annotation.ExcelProperty; |
package cn.com.taiji.invw.model.excel; | |||||
package cn.com.taiji.invw.model.card; | |||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | ||||
import com.alibaba.excel.annotation.ExcelProperty; | import com.alibaba.excel.annotation.ExcelProperty; |
package cn.com.taiji.invw.model.excel; | |||||
package cn.com.taiji.invw.model.obu; | |||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | ||||
import com.alibaba.excel.annotation.ExcelProperty; | import com.alibaba.excel.annotation.ExcelProperty; |
package cn.com.taiji.invw.model.excel; | |||||
package cn.com.taiji.invw.model.obu; | |||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | ||||
import com.alibaba.excel.annotation.ExcelProperty; | import com.alibaba.excel.annotation.ExcelProperty; |
package cn.com.taiji.invw.model.transfer; | package cn.com.taiji.invw.model.transfer; | ||||
import com.alibaba.excel.annotation.ExcelProperty; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Getter; | import lombok.Getter; | ||||
@ApiModelProperty(value = "开始编号") | @ApiModelProperty(value = "开始编号") | ||||
@NotBlank(message = "开始编号不能为空") | @NotBlank(message = "开始编号不能为空") | ||||
@Pattern(regexp = "^[0-9]*$", message = "编号只能由0-9组成") | @Pattern(regexp = "^[0-9]*$", message = "编号只能由0-9组成") | ||||
@ExcelProperty(index = 0, value = "开始编号") | |||||
private String startId;//开始编号 | private String startId;//开始编号 | ||||
@ApiModelProperty(value = "结束编号") | @ApiModelProperty(value = "结束编号") | ||||
@NotBlank(message = "结束编号不能为空") | @NotBlank(message = "结束编号不能为空") | ||||
@Pattern(regexp = "^[0-9]*$", message = "编号只能由0-9组成") | @Pattern(regexp = "^[0-9]*$", message = "编号只能由0-9组成") | ||||
@ExcelProperty(index = 1, value = "结束编号") | |||||
private String endId;//结束编号 | private String endId;//结束编号 | ||||
} | } |