Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
b686d92f9d
|
|
@ -136,48 +136,40 @@ public class StoreLogAspect {
|
|||
// 领料出库库存变化
|
||||
if (joinPoint.getArgs()[0] instanceof LeaseOutRequestVo) {
|
||||
LeaseOutRequestVo lod = (LeaseOutRequestVo) joinPoint.getArgs()[0];
|
||||
//数量类型设备
|
||||
for (LeaseOutDetails leaseOutDetails : lod.getLeaseOutDetailsList()) {
|
||||
if (leaseOutDetails.getManageType().equals(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId())) {
|
||||
BmStorageLog bmStorageLog = new BmStorageLog();
|
||||
bmStorageLog.setTaskId(String.valueOf(leaseOutDetails.getParentId()));
|
||||
bmStorageLog.setTypeId(leaseOutDetails.getTypeId());
|
||||
bmStorageLog.setTypeName(leaseOutDetails.getTypeModelName());
|
||||
bmStorageLog.setManageType(String.valueOf(leaseOutDetails.getManageType()));
|
||||
bmStorageLog.setTypeModelName(leaseOutDetails.getTypeName());
|
||||
bmStorageLog.setPreStoreNum(leaseOutDetails.getPreStoreNum());
|
||||
bmStorageLog.setOutNum(leaseOutDetails.getInputNum());
|
||||
bmStorageLog.setPostStoreNum(leaseOutDetails.getPostStoreNum());
|
||||
bmStorageLog.setOutType(InputOutEnum.NUMBER_DEVICE.getTypeId());
|
||||
bmStorageLogList.add(bmStorageLog);
|
||||
}
|
||||
}
|
||||
//编码、二维码、标准箱类型设备
|
||||
LeaseOutDetails leaseOutDetails = lod.getLeaseOutDetailsList().get(0);
|
||||
BmStorageLog bmStorageLog = new BmStorageLog();
|
||||
bmStorageLog.setTaskId(String.valueOf(leaseOutDetails.getParentId()));
|
||||
bmStorageLog.setTaskId(leaseOutDetails.getTaskId());
|
||||
bmStorageLog.setTypeId(leaseOutDetails.getTypeId());
|
||||
bmStorageLog.setTypeName(leaseOutDetails.getTypeName());
|
||||
bmStorageLog.setTypeName(leaseOutDetails.getTypeModelName());
|
||||
bmStorageLog.setManageType(String.valueOf(leaseOutDetails.getManageType()));
|
||||
bmStorageLog.setTypeModelName(leaseOutDetails.getTypeModelName());
|
||||
String maCode = lod.getLeaseOutDetailsList().stream()
|
||||
.map(LeaseOutDetails::getMaCode)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.joining(","));
|
||||
bmStorageLog.setMaCode(maCode);
|
||||
bmStorageLog.setTypeModelName(leaseOutDetails.getTypeName());
|
||||
bmStorageLog.setPreStoreNum(leaseOutDetails.getPreStoreNum());
|
||||
bmStorageLog.setOutNum(BigDecimal.valueOf(lod.getLeaseOutDetailsList().size()));
|
||||
bmStorageLog.setPostStoreNum(leaseOutDetails.getPreStoreNum().subtract(bmStorageLog.getOutNum()));
|
||||
if (leaseOutDetails.getOutType() != null) {
|
||||
if (leaseOutDetails.getOutType().equals(InputOutEnum.STANDARD_BOX.getTypeId())) {
|
||||
bmStorageLog.setOutType(InputOutEnum.STANDARD_BOX.getTypeId());
|
||||
} else if (leaseOutDetails.getOutType().equals(InputOutEnum.QR_CODE.getTypeId())) {
|
||||
bmStorageLog.setOutType(InputOutEnum.QR_CODE.getTypeId());
|
||||
//数量类型设备
|
||||
if (leaseOutDetails.getManageType().equals(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId())) {
|
||||
bmStorageLog.setOutNum(leaseOutDetails.getInputNum());
|
||||
bmStorageLog.setPostStoreNum(leaseOutDetails.getPreStoreNum().subtract(bmStorageLog.getOutNum()));
|
||||
bmStorageLog.setOutType(InputOutEnum.NUMBER_DEVICE.getTypeId());
|
||||
bmStorageLogList.add(bmStorageLog);
|
||||
} else {
|
||||
//编码、二维码、标准箱类型设备
|
||||
String maCode = lod.getLeaseOutDetailsList().stream()
|
||||
.map(LeaseOutDetails::getMaCode)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.joining(","));
|
||||
bmStorageLog.setMaCode(maCode);
|
||||
bmStorageLog.setOutNum(BigDecimal.valueOf(lod.getLeaseOutDetailsList().size()));
|
||||
bmStorageLog.setPostStoreNum(leaseOutDetails.getPreStoreNum().subtract(bmStorageLog.getOutNum()));
|
||||
if (leaseOutDetails.getOutType() != null) {
|
||||
if (leaseOutDetails.getOutType().equals(InputOutEnum.STANDARD_BOX.getTypeId())) {
|
||||
bmStorageLog.setOutType(InputOutEnum.STANDARD_BOX.getTypeId());
|
||||
} else if (leaseOutDetails.getOutType().equals(InputOutEnum.QR_CODE.getTypeId())) {
|
||||
bmStorageLog.setOutType(InputOutEnum.QR_CODE.getTypeId());
|
||||
}
|
||||
} else if (leaseOutDetails.getManageType().equals(MaTypeManageTypeEnum.CODE_DEVICE.getTypeId())) {
|
||||
bmStorageLog.setOutType(InputOutEnum.CODE_DEVICE.getTypeId());
|
||||
}
|
||||
} else if (leaseOutDetails.getManageType().equals(MaTypeManageTypeEnum.CODE_DEVICE.getTypeId())) {
|
||||
bmStorageLog.setOutType(InputOutEnum.CODE_DEVICE.getTypeId());
|
||||
bmStorageLogList.add(bmStorageLog);
|
||||
}
|
||||
bmStorageLogList.add(bmStorageLog);
|
||||
}
|
||||
// 新购验收任务
|
||||
if (joinPoint.getArgs()[0] instanceof PurchaseDto) {
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ public class LeaseOutDetails extends BaseEntity {
|
|||
@ApiModelProperty(value = "任务ID")
|
||||
private Long parentId;
|
||||
|
||||
private String taskId;
|
||||
|
||||
@ApiModelProperty(value = "标准箱ID")
|
||||
private Long boxId;
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ import com.bonus.material.basic.mapper.BmQrBoxMapper;
|
|||
import com.bonus.material.basic.service.BmQrBoxService;
|
||||
import com.bonus.material.ma.domain.vo.MachineVo;
|
||||
import com.bonus.material.ma.mapper.MachineMapper;
|
||||
import com.bonus.material.purchase.domain.vo.PurchaseVo;
|
||||
import com.bonus.material.purchase.mapper.PurchaseBindMapper;
|
||||
import com.bonus.material.purchase.mapper.PurchaseStorageMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -30,14 +29,14 @@ import javax.annotation.Resource;
|
|||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author ma_sh
|
||||
* @author ma_sh
|
||||
* @create 2024/12/10 17:26
|
||||
*/
|
||||
@Service
|
||||
|
|
@ -61,7 +60,7 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
*/
|
||||
@Override
|
||||
public List<BmQrBoxInfo> selectBmQrBoxInfoList(BmQrBoxInfo bmQrBoxInfo) {
|
||||
if (bmQrBoxInfo.getStatus() != null) {
|
||||
if (null != bmQrBoxInfo.getStatus()) {
|
||||
bmQrBoxInfo.setStatusList(Arrays.asList(bmQrBoxInfo.getStatus().split(",")));
|
||||
}
|
||||
return bmQrBoxMapper.find(bmQrBoxInfo);
|
||||
|
|
@ -73,12 +72,12 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
@Override
|
||||
public AjaxResult insertBmQrcodeInfo(BmQrBoxInfo bmQrBoxInfo) {
|
||||
//生成二维码
|
||||
String code = "BOX-" + DateTimeHelper.getNowTimeFomart();
|
||||
final String code = "BOX-" + DateTimeHelper.getNowTimeFomart();
|
||||
bmQrBoxInfo.setBoxCode(code);
|
||||
bmQrBoxInfo.setCreateBy(SecurityUtils.getUsername());
|
||||
bmQrBoxInfo.setCreateTime(DateUtils.getNowDate());
|
||||
int result = bmQrBoxMapper.insertBmQrcodeInfo(bmQrBoxInfo);
|
||||
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
final int result = bmQrBoxMapper.insertBmQrcodeInfo(bmQrBoxInfo);
|
||||
return 0 < result ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -88,17 +87,17 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
*/
|
||||
@Override
|
||||
public AjaxResult getBoxInfoBindListByCode(BmQrBoxInfo bmQrBoxInfo) {
|
||||
if (bmQrBoxInfo.getBoxCode() == null) {
|
||||
if (null == bmQrBoxInfo.getBoxCode()) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "请输入标准箱编码");
|
||||
}
|
||||
BoxInfoBindVo boxInfoBindVo = new BoxInfoBindVo();
|
||||
final BoxInfoBindVo boxInfoBindVo = new BoxInfoBindVo();
|
||||
|
||||
List<BmQrBoxInfo> boxInfos = bmQrBoxMapper.findBoxInfoByKey(bmQrBoxInfo);
|
||||
final List<BmQrBoxInfo> boxInfos = bmQrBoxMapper.findBoxInfoByKey(bmQrBoxInfo);
|
||||
boxInfos.removeIf(Objects::isNull);
|
||||
if (boxInfos.isEmpty()) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "标准箱编码不存在");
|
||||
} else if (boxInfos.size() == 1) {
|
||||
if (boxInfos.get(0).getBoxId() == null || boxInfos.get(0).getBoxCode() == null) {
|
||||
} else if (1 == boxInfos.size()) {
|
||||
if (null == boxInfos.get(0).getBoxId() || null == boxInfos.get(0).getBoxCode()) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "标准箱信息异常,请联系运维人员处理");
|
||||
}
|
||||
boxInfoBindVo.setBoxId(boxInfos.get(0).getBoxId());
|
||||
|
|
@ -107,13 +106,13 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
return AjaxResult.warn("该二维码已绑定多个标准箱,请联系运维人员处理");
|
||||
}
|
||||
|
||||
List<BmQrBoxInfo> boxBindList = bmQrBoxMapper.getBoxBindList(boxInfoBindVo.getBoxId());
|
||||
final List<BmQrBoxInfo> boxBindList = bmQrBoxMapper.getBoxBindList(boxInfoBindVo.getBoxId());
|
||||
boxBindList.removeIf(Objects::isNull);
|
||||
boxInfoBindVo.setBindMaTotal(boxBindList.size());
|
||||
boxBindList.removeIf(item -> item.getMaStatus() == null);
|
||||
boxBindList.removeIf(item -> null == item.getMaStatus());
|
||||
boxBindList.removeIf(item -> !item.getMaStatus().equals(MaMachineStatusEnum.NEW_PURCHASE.getStatusName()));
|
||||
if (Objects.nonNull(bmQrBoxInfo.getMaTypeId())) {
|
||||
boxBindList.removeIf(item -> item.getMaTypeId() == null || !Objects.equals(item.getMaTypeId(), bmQrBoxInfo.getMaTypeId()));
|
||||
boxBindList.removeIf(item -> null == item.getMaTypeId() || !Objects.equals(item.getMaTypeId(), bmQrBoxInfo.getMaTypeId()));
|
||||
}
|
||||
boxInfoBindVo.setSuccessMaTotal(boxBindList.size());
|
||||
return AjaxResult.success(boxInfoBindVo);
|
||||
|
|
@ -127,18 +126,18 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
@Override
|
||||
public AjaxResult appWarehouse(BoxBindWarehouseDto boxBindWarehouseDto) {
|
||||
// -------------- 标准箱状态校验 -------------------------
|
||||
if (boxBindWarehouseDto.getBoxCode() == null) {
|
||||
if (null == boxBindWarehouseDto.getBoxCode()) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "请输入标准箱编码");
|
||||
}
|
||||
if (boxBindWarehouseDto.getTaskId() == null || boxBindWarehouseDto.getMaTypeId() == null) {
|
||||
if (null == boxBindWarehouseDto.getTaskId() || null == boxBindWarehouseDto.getMaTypeId()) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "请输入任务ID和入库的物资类型ID");
|
||||
}
|
||||
List<BmQrBoxInfo> boxInfos = bmQrBoxMapper.findBoxInfoByKey(new BmQrBoxInfo().setBoxCode(boxBindWarehouseDto.getBoxCode()));
|
||||
final List<BmQrBoxInfo> boxInfos = bmQrBoxMapper.findBoxInfoByKey(new BmQrBoxInfo().setBoxCode(boxBindWarehouseDto.getBoxCode()));
|
||||
boxInfos.removeIf(Objects::isNull);
|
||||
if (boxInfos.isEmpty()) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "标准箱编码不存在");
|
||||
} else if (boxInfos.size() == 1) {
|
||||
if (boxInfos.get(0).getBoxId() == null || boxInfos.get(0).getBoxCode() == null) {
|
||||
} else if (1 == boxInfos.size()) {
|
||||
if (null == boxInfos.get(0).getBoxId() || null == boxInfos.get(0).getBoxCode()) {
|
||||
boxBindWarehouseDto.setBoxId(boxInfos.get(0).getBoxId());
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "标准箱信息异常,请联系运维人员处理");
|
||||
}
|
||||
|
|
@ -147,20 +146,20 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
}
|
||||
|
||||
// -------------- 标准箱绑定的机具明细校验 -------------------------
|
||||
List<BmQrBoxInfo> boxBindList = bmQrBoxMapper.getBoxBindList(boxBindWarehouseDto.getBoxId());
|
||||
final List<BmQrBoxInfo> boxBindList = bmQrBoxMapper.getBoxBindList(boxBindWarehouseDto.getBoxId());
|
||||
boxBindList.removeIf(Objects::isNull);
|
||||
boxBindList.removeIf(item -> item.getMaStatus() == null);
|
||||
boxBindList.removeIf(item -> null == item.getMaStatus());
|
||||
boxBindList.removeIf(item ->
|
||||
!item.getMaStatus().equals(MaMachineStatusEnum.NEW_PURCHASE.getStatusName()) &&
|
||||
!item.getMaStatus().equals(MaMachineStatusEnum.REPAIR_TO_STORE.getStatusName()) &&
|
||||
!item.getMaStatus().equals(MaMachineStatusEnum.BACK_TO_STORE.getStatusName())
|
||||
);
|
||||
boxBindList.removeIf(item -> item.getMaTypeId() == null || !Objects.equals(item.getMaTypeId(), boxBindWarehouseDto.getMaTypeId()));
|
||||
boxBindList.removeIf(item -> null == item.getMaTypeId() || !Objects.equals(item.getMaTypeId(), boxBindWarehouseDto.getMaTypeId()));
|
||||
|
||||
|
||||
// ----------------- 进行入库操作 -------------------------------
|
||||
Long purchaseDetailId = purchaseStorageMapper.selectIdByTaskId(boxBindWarehouseDto.getTaskId(), boxBindWarehouseDto.getMaTypeId());
|
||||
if (purchaseDetailId == null || purchaseDetailId == 0) {
|
||||
final Long purchaseDetailId = purchaseStorageMapper.selectIdByTaskId(boxBindWarehouseDto.getTaskId(), boxBindWarehouseDto.getMaTypeId());
|
||||
if (null == purchaseDetailId || 0 == purchaseDetailId) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "新购任务不存在此物资类型,请确认录入是否正确");
|
||||
}
|
||||
// 更新入库数量
|
||||
|
|
@ -187,20 +186,20 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
@Override
|
||||
public void download(BmQrBoxInfo bmQrBoxInfo, HttpServletResponse response) {
|
||||
try {
|
||||
List<BmQrBoxInfo> list = bmQrBoxMapper.find(bmQrBoxInfo);
|
||||
final List<BmQrBoxInfo> list = bmQrBoxMapper.find(bmQrBoxInfo);
|
||||
String code = "无编码";
|
||||
if (list.size() > 0) {
|
||||
if (!list.isEmpty()) {
|
||||
code = list.get(0).getBoxCode();
|
||||
}
|
||||
// 新购管理-二维码打印-新增
|
||||
String url = BackstageApplication.getUrl() + "backstage/machine/qrCodePage?qrcode=" + code;
|
||||
final String url = BackstageApplication.getUrl() + "backstage/machine/qrCodePage?qrcode=" + code;
|
||||
// 二维码的图片格式
|
||||
String format = "jpg";
|
||||
final String format = "jpg";
|
||||
//设置路径
|
||||
String mkdirsName = "images";
|
||||
final String mkdirsName = "images";
|
||||
// linux 系统路径
|
||||
String saveDirectory = "/data/imw/" + mkdirsName + "/";
|
||||
String os = System.getProperty("os.name");
|
||||
final String os = System.getProperty("os.name");
|
||||
if (os.toLowerCase().startsWith("win")) {
|
||||
//本地路径
|
||||
saveDirectory = "D://files/" + mkdirsName + "/";
|
||||
|
|
@ -214,22 +213,22 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
String qrUrl = saveDirectory + code + ".jpg";
|
||||
String path = qrUrl.replace("filePath", "/data/imw");
|
||||
// 判断照片是否存在
|
||||
File imageFile = new File(path);
|
||||
final File imageFile = new File(path);
|
||||
if (!imageFile.exists()) {
|
||||
log.warn("图片不存在");
|
||||
}
|
||||
//设置MIME类型
|
||||
response.setContentType("application/octet-stream");
|
||||
response.addHeader("Content-disposition", "attachment;filename=" + new String(path.getBytes(), "ISO-8859-1"));
|
||||
InputStream inputStream = new FileInputStream(imageFile);
|
||||
ServletOutputStream outputStream = response.getOutputStream();
|
||||
byte[] bs = new byte[1024];
|
||||
while ((inputStream.read(bs) > 0)) {
|
||||
response.addHeader("Content-disposition", "attachment;filename=" + new String(path.getBytes(), StandardCharsets.ISO_8859_1));
|
||||
final InputStream inputStream = Files.newInputStream(imageFile.toPath());
|
||||
final ServletOutputStream outputStream = response.getOutputStream();
|
||||
final byte[] bs = new byte[1024];
|
||||
while ((0 < inputStream.read(bs))) {
|
||||
outputStream.write(bs);
|
||||
}
|
||||
outputStream.close();
|
||||
inputStream.close();
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
|
@ -241,8 +240,8 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
public AjaxResult updateBmQrcodeInfo(BmQrBoxInfo bmQrBoxInfo) {
|
||||
bmQrBoxInfo.setUpdateBy(SecurityUtils.getUsername());
|
||||
bmQrBoxInfo.setUpdateTime(DateUtils.getNowDate());
|
||||
int result = bmQrBoxMapper.updateBmQrcodeInfoById(bmQrBoxInfo);
|
||||
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
final int result = bmQrBoxMapper.updateBmQrcodeInfoById(bmQrBoxInfo);
|
||||
return 0 < result ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -252,11 +251,11 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
*/
|
||||
@Override
|
||||
public AjaxResult appTransfer(BmQrBoxInfo bmQrBoxInfo) {
|
||||
if (bmQrBoxInfo.getTransferUser() == null || bmQrBoxInfo.getTransferUser() <= 0) {
|
||||
if (null == bmQrBoxInfo.getTransferUser() || 0 >= bmQrBoxInfo.getTransferUser()) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "请选择移交人");
|
||||
}
|
||||
bmQrBoxInfo.setBoxCode(null).setBoxName(null).setBoxType(null).setStatus(QrBoxStatusEnum.QR_BOX_STATUS_WAIT_RECEIVE.getStatus().toString());
|
||||
return bmQrBoxMapper.updateBmQrcodeInfoById(bmQrBoxInfo) > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) :
|
||||
return 0 < bmQrBoxMapper.updateBmQrcodeInfoById(bmQrBoxInfo) ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) :
|
||||
AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
|
|
@ -267,17 +266,17 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
*/
|
||||
@Override
|
||||
public AjaxResult appTransferReject(BmQrBoxInfo bmQrBoxInfo) {
|
||||
List<BmQrBoxInfo> bmQrBoxInfos = bmQrBoxMapper.find(new BmQrBoxInfo().setBoxId(bmQrBoxInfo.getBoxId()));
|
||||
final List<BmQrBoxInfo> bmQrBoxInfos = bmQrBoxMapper.find(new BmQrBoxInfo().setBoxId(bmQrBoxInfo.getBoxId()));
|
||||
if (!bmQrBoxInfos.isEmpty()) {
|
||||
BmQrBoxInfo item = bmQrBoxInfos.get(0);
|
||||
if (item.getTransferUser() == null || !Objects.equals(item.getTransferUser(), SecurityUtils.getUserId())) {
|
||||
final BmQrBoxInfo item = bmQrBoxInfos.get(0);
|
||||
if (null == item.getTransferUser() || !Objects.equals(item.getTransferUser(), SecurityUtils.getUserId())) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "驳回失败,您并非接收人,无法操作驳回!");
|
||||
}
|
||||
} else {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "驳回失败,无此标准箱信息!");
|
||||
}
|
||||
bmQrBoxInfo.setBoxCode(null).setBoxName(null).setBoxType(null).setStatus(QrBoxStatusEnum.QR_BOX_STATUS_REJECT.getStatus().toString());
|
||||
return bmQrBoxMapper.updateBmQrcodeInfoById(bmQrBoxInfo) > 0 ?
|
||||
return 0 < bmQrBoxMapper.updateBmQrcodeInfoById(bmQrBoxInfo) ?
|
||||
AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) :
|
||||
AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
|
@ -289,10 +288,10 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
*/
|
||||
@Override
|
||||
public AjaxResult appReceive(BmQrBoxInfo bmQrBoxInfo) {
|
||||
List<BmQrBoxInfo> bmQrBoxInfos = bmQrBoxMapper.find(new BmQrBoxInfo().setBoxId(bmQrBoxInfo.getBoxId()));
|
||||
final List<BmQrBoxInfo> bmQrBoxInfos = bmQrBoxMapper.find(new BmQrBoxInfo().setBoxId(bmQrBoxInfo.getBoxId()));
|
||||
if (!bmQrBoxInfos.isEmpty()) {
|
||||
BmQrBoxInfo item = bmQrBoxInfos.get(0);
|
||||
if (item.getTransferUser() == null || !Objects.equals(item.getTransferUser(), SecurityUtils.getUserId())) {
|
||||
final BmQrBoxInfo item = bmQrBoxInfos.get(0);
|
||||
if (null == item.getTransferUser() || !Objects.equals(item.getTransferUser(), SecurityUtils.getUserId())) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "接收失败,当前操作非移交人,无法接收!");
|
||||
}
|
||||
} else {
|
||||
|
|
@ -301,7 +300,7 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
bmQrBoxInfo.setBoxCode(null).setBoxName(null).setBoxType(null)
|
||||
.setInputUser(SecurityUtils.getUserId())
|
||||
.setStatus(QrBoxStatusEnum.QR_BOX_STATUS_ON_RECEIVE.getStatus().toString());
|
||||
return bmQrBoxMapper.updateBmQrcodeInfoById(bmQrBoxInfo) > 0 ?
|
||||
return 0 < bmQrBoxMapper.updateBmQrcodeInfoById(bmQrBoxInfo) ?
|
||||
AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) :
|
||||
AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
|
@ -316,8 +315,8 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
bmQrBoxInfo.setUpdateBy(SecurityUtils.getUsername());
|
||||
bmQrBoxInfo.setUpdateTime(DateUtils.getNowDate());
|
||||
bmQrBoxInfo.setStatus(QrBoxStatusEnum.QR_BOX_STATUS_WAIT_BIND.getStatus().toString());
|
||||
int result = bmQrBoxMapper.updateBmQrcodeInfoByCode(bmQrBoxInfo);
|
||||
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
final int result = bmQrBoxMapper.updateBmQrcodeInfoByCode(bmQrBoxInfo);
|
||||
return 0 < result ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -340,16 +339,16 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
*/
|
||||
@Override
|
||||
public AjaxResult addQrcodeBoxBind(BmQrBoxInfo bmQrBoxInfo) {
|
||||
if (bmQrBoxInfo.getBoxId() == null) {return AjaxResult.error("标准箱ID为空,请完善后重试!");}
|
||||
if (bmQrBoxInfo.getQrCode() == null) {return AjaxResult.error("QR编码为空,请完善后重试!");}
|
||||
if (null == bmQrBoxInfo.getBoxId()) {return AjaxResult.error("标准箱ID为空,请完善后重试!");}
|
||||
if (null == bmQrBoxInfo.getQrCode()) {return AjaxResult.error("QR编码为空,请完善后重试!");}
|
||||
|
||||
try {
|
||||
// 物资状态要求是待入库、在库状态
|
||||
MachineVo machineVo = machineMapper.selectMachineByMaCode(bmQrBoxInfo.getQrCode());
|
||||
if (machineVo == null || machineVo.getMaId() == null) {
|
||||
final MachineVo machineVo = machineMapper.selectMachineByMaCode(bmQrBoxInfo.getQrCode());
|
||||
if (null == machineVo || null == machineVo.getMaId()) {
|
||||
return AjaxResult.error("物资信息不存在!");
|
||||
}
|
||||
if (machineVo.getMaStatus() == null) {
|
||||
if (null == machineVo.getMaStatus()) {
|
||||
return AjaxResult.error("物资状态异常,请完善后重试!");
|
||||
}
|
||||
if (!Objects.equals(machineVo.getMaStatus(), MaMachineStatusEnum.NEW_PURCHASE.getStatus().toString()) &&
|
||||
|
|
@ -364,9 +363,9 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
}
|
||||
|
||||
// 一个标准型只有1种类型
|
||||
List<Long> boxMaTypeList = bmQrBoxMapper.getBoxMaTypeList(bmQrBoxInfo.getBoxId());
|
||||
final List<Long> boxMaTypeList = bmQrBoxMapper.getBoxMaTypeList(bmQrBoxInfo.getBoxId());
|
||||
if (!boxMaTypeList.isEmpty()) {
|
||||
if (boxMaTypeList.size() > 1) {
|
||||
if (1 < boxMaTypeList.size()) {
|
||||
return AjaxResult.error("该标准箱已绑定多种物资,无法进行操作,请联系运维人员处理!");
|
||||
}
|
||||
if (!Objects.equals(boxMaTypeList.get(0), machineVo.getTypeId())) {
|
||||
|
|
@ -378,14 +377,14 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
bmQrBoxInfo.setMaId(machineVo.getMaId());
|
||||
bmQrBoxInfo.setCreateBy(SecurityUtils.getUsername());
|
||||
bmQrBoxInfo.setCreateTime(DateUtils.getNowDate());
|
||||
if (bmQrBoxMapper.addQrcodeBoxBind(bmQrBoxInfo) > 0) {
|
||||
if (0 < bmQrBoxMapper.addQrcodeBoxBind(bmQrBoxInfo)) {
|
||||
// 修改标准箱状态为已完成
|
||||
bmQrBoxInfo.setStatus(QrBoxStatusEnum.QR_BOX_STATUS_WAIT_TRANSFER.getStatus().toString());
|
||||
bmQrBoxMapper.updateBmQrcodeStatus(bmQrBoxInfo);
|
||||
return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg());
|
||||
}
|
||||
return AjaxResult.error("绑定失败:成功绑定0条");
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
System.err.println("绑定失败,SQL执行异常:" + e.getMessage());
|
||||
return AjaxResult.error("绑定失败,SQL执行异常:" + e.getMessage());
|
||||
}
|
||||
|
|
@ -408,11 +407,11 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
@Override
|
||||
public AjaxResult deleteById(BmQrBoxInfo bmQrBoxInfo) {
|
||||
//根据id查看标准箱是否绑定,绑定不能删除
|
||||
if (bmQrBoxMapper.countBmQrcodeInfoByBoxId(bmQrBoxInfo.getBoxId()) > 0) {
|
||||
if (0 < bmQrBoxMapper.countBmQrcodeInfoByBoxId(bmQrBoxInfo.getBoxId())) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "该标准箱还绑定设备,无法删除");
|
||||
}
|
||||
int result = bmQrBoxMapper.deleteById(bmQrBoxInfo);
|
||||
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
final int result = bmQrBoxMapper.deleteById(bmQrBoxInfo);
|
||||
return 0 < result ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -422,8 +421,8 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
*/
|
||||
@Override
|
||||
public AjaxResult unBindQrcodeBox(BmQrBoxInfo bmQrBoxInfo) {
|
||||
boolean unResult = bmQrBoxMapper.unBindQrcodeBox(bmQrBoxInfo) > 0;
|
||||
if (bmQrBoxMapper.countBmQrcodeInfoByBoxId(bmQrBoxInfo.getBoxId()) == 0) {
|
||||
final boolean unResult = 0 < bmQrBoxMapper.unBindQrcodeBox(bmQrBoxInfo);
|
||||
if (0 == bmQrBoxMapper.countBmQrcodeInfoByBoxId(bmQrBoxInfo.getBoxId())) {
|
||||
bmQrBoxInfo.setBoxCode(null).setBoxName(null).setBoxType(null).setStatus(QrBoxStatusEnum.QR_BOX_STATUS_WAIT_BIND.getStatus().toString());
|
||||
bmQrBoxMapper.updateBmQrcodeInfoById(bmQrBoxInfo);
|
||||
}
|
||||
|
|
@ -447,25 +446,24 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
*/
|
||||
@Override
|
||||
public AjaxResult getBoxBindListByCode(BmQrBoxInfo bmQrBoxInfo) {
|
||||
if (bmQrBoxInfo.getBoxCode() == null || bmQrBoxInfo.getMaTypeId() == null) {
|
||||
if (null == bmQrBoxInfo.getBoxCode() || null == bmQrBoxInfo.getMaTypeId()) {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "标准箱编码或机具类型id不能为空");
|
||||
}
|
||||
List<BmQrBoxInfo> recordList = bmQrBoxMapper.getBoxBindListByCode(bmQrBoxInfo);
|
||||
final List<BmQrBoxInfo> recordList = bmQrBoxMapper.getBoxBindListByCode(bmQrBoxInfo);
|
||||
int num = 0;
|
||||
String msg = "";
|
||||
String msg;
|
||||
if (CollectionUtil.isNotEmpty(recordList)) {
|
||||
for (BmQrBoxInfo qrBoxInfo : recordList) {
|
||||
for (final BmQrBoxInfo qrBoxInfo : recordList) {
|
||||
if (qrBoxInfo.getMaStatus().equals(MaMachineStatusEnum.IN_STORE.getStatus().toString())) {
|
||||
num ++;
|
||||
}
|
||||
}
|
||||
msg = "监测到" + bmQrBoxInfo.getBoxCode() + "标准箱中有" + recordList.size()
|
||||
+ "台设备,符合出库条件设备" + num + "台,请确认是否出库!";
|
||||
msg = "监测到" + bmQrBoxInfo.getBoxCode() + "标准箱中有" + recordList.size() + "台设备,符合出库条件设备" + num + "台,请确认是否出库!";
|
||||
} else {
|
||||
msg = "监测到" + bmQrBoxInfo.getBoxCode() + "标准箱中无符合出库条件的设备,请检查后重新提交!";
|
||||
}
|
||||
// 返回包含设备列表和消息的结果
|
||||
Map<String, Object> result = new HashMap<>(2);
|
||||
final Map<String, Object> result = new HashMap<>(2);
|
||||
result.put("recordList", recordList);
|
||||
result.put("msg", msg);
|
||||
return AjaxResult.success(result);
|
||||
|
|
|
|||
|
|
@ -184,6 +184,7 @@ public class LeaseOutDetailsServiceImpl implements ILeaseOutDetailsService {
|
|||
}
|
||||
// 5、插入结算记录
|
||||
String taskId = leaseApplyInfoMapper.getTaskId(record.getParentId());
|
||||
record.setTaskId(taskId);
|
||||
res = insSltInfo(taskId, record);
|
||||
if (res == 0) {
|
||||
throw new RuntimeException("出库失败,插入结算记录失败");
|
||||
|
|
|
|||
|
|
@ -48,9 +48,9 @@ public class PurchaseCheckInfoController extends BaseController {
|
|||
//@RequiresPermissions("purchase:info:list")
|
||||
@GetMapping("/list")
|
||||
public AjaxResult list(PurchaseQueryDto purchaseQueryDto) {
|
||||
List<PurchaseCheckInfo> list = purchaseCheckInfoService.selectPurchaseCheckInfoList(purchaseQueryDto);
|
||||
Integer pageIndex = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
|
||||
Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
|
||||
final List<PurchaseCheckInfo> list = purchaseCheckInfoService.selectPurchaseCheckInfoList(purchaseQueryDto);
|
||||
final Integer pageIndex = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
|
||||
final Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
|
||||
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list));
|
||||
}
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ public class PurchaseCheckInfoController extends BaseController {
|
|||
public AjaxResult add(@Valid @NotNull @RequestBody PurchaseCheckDto purchaseCheckDto) {
|
||||
try {
|
||||
return purchaseCheckInfoService.insertPurchaseCheckInfo(purchaseCheckDto);
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
return error("系统错误, " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
|
@ -92,7 +92,7 @@ public class PurchaseCheckInfoController extends BaseController {
|
|||
public AjaxResult edit(@RequestBody @NotNull(message = "请求参数不能为空") @Valid PurchaseCheckDto purchaseCheckDto) {
|
||||
try {
|
||||
return toAjax(purchaseCheckInfoService.updatePurchaseCheckInfo(purchaseCheckDto));
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
return error("系统错误, " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,11 +83,11 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
purchaseQueryDto.setUserId(SecurityUtils.getUserId());
|
||||
PurchaseCheckDto purchaseCheckDtoResult = new PurchaseCheckDto();
|
||||
PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId());
|
||||
if (purchaseCheckInfo != null) {
|
||||
if (null != purchaseCheckInfo) {
|
||||
purchaseCheckDtoResult.setPurchaseCheckInfo(purchaseCheckInfo);
|
||||
// boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
|
||||
List<PurchaseCheckDetails> purchaseCheckDetailsList = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
|
||||
if (purchaseQueryDto.getTaskStage() != null) {
|
||||
if (null != purchaseQueryDto.getTaskStage()) {
|
||||
// 根据阶段来过滤详情数据
|
||||
switch (purchaseQueryDto.getTaskStage()) {
|
||||
case PURCHASE_TASK_STAGE_MANAGE:
|
||||
|
|
@ -128,11 +128,11 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
private void extractedFile(List<PurchaseCheckDetails> purchaseCheckDetailsList) {
|
||||
if (!CollectionUtils.isEmpty(purchaseCheckDetailsList)) {
|
||||
for (PurchaseCheckDetails purchaseCheckDetails : purchaseCheckDetailsList) {
|
||||
BmFileInfo fileInfo = new BmFileInfo();
|
||||
final BmFileInfo fileInfo = new BmFileInfo();
|
||||
fileInfo.setTaskType(10);
|
||||
fileInfo.setModelId(purchaseCheckDetails.getId());
|
||||
fileInfo.setTaskId(purchaseCheckDetails.getTaskId());
|
||||
List<BmFileInfo> bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(fileInfo);
|
||||
final List<BmFileInfo> bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(fileInfo);
|
||||
if (!CollectionUtils.isEmpty(bmFileInfoList)) {
|
||||
purchaseCheckDetails.setBmFileInfos(bmFileInfoList);
|
||||
}
|
||||
|
|
@ -152,15 +152,15 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
*/
|
||||
@Override
|
||||
public List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseQueryDto purchaseQueryDto) {
|
||||
List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseQueryDto);
|
||||
final List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseQueryDto);
|
||||
if (CollectionUtils.isEmpty(purchaseCheckInfos) ) {return Collections.emptyList();}
|
||||
AtomicReference<Long> loginUserId = new AtomicReference<>(SecurityUtils.getUserId());
|
||||
final AtomicReference<Long> loginUserId = new AtomicReference<>(SecurityUtils.getUserId());
|
||||
if (Objects.isNull(loginUserId.get()) || Objects.isNull(purchaseQueryDto.getTaskStage())) {return Collections.emptyList();}
|
||||
|
||||
List<PurchaseCheckInfo> purchaseCheckInfoResult = new ArrayList<>();
|
||||
boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
|
||||
final List<PurchaseCheckInfo> purchaseCheckInfoResult = new ArrayList<>();
|
||||
final boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
|
||||
|
||||
for (PurchaseCheckInfo purchaseInfo : purchaseCheckInfos) {
|
||||
for (final PurchaseCheckInfo purchaseInfo : purchaseCheckInfos) {
|
||||
// 获取采购物资明细、2024-12-23日修改by阮世耀 根据当前库管员绑定物资来查询 不展示非本角色管理的物资类型
|
||||
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(purchaseInfo.getTaskId(), null, loginUserId.get());
|
||||
if (CollectionUtils.isEmpty(purchaseCheckDetails)) {continue;}
|
||||
|
|
@ -169,7 +169,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(o.getManageType()) &&
|
||||
(o.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND.getStatus()) || o.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())))).collect(Collectors.toList());
|
||||
|
||||
OptionalInt minStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).min();
|
||||
final OptionalInt minStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).min();
|
||||
|
||||
if (isAllowPartTransfer) {
|
||||
// 2024-12-23日 取消状态过滤,修改由任务阶段来过滤 --- by 阮世耀
|
||||
|
|
@ -207,12 +207,13 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
}
|
||||
if (!CollectionUtils.isEmpty(purchaseCheckDetails)) {
|
||||
BigDecimal purchaseMaTotalNumber = BigDecimal.ZERO, checkMaTotalNumber = BigDecimal.ZERO, bindMaTotalNumber = BigDecimal.ZERO, inputMaTotalNumber = BigDecimal.ZERO;
|
||||
AtomicReference<BigDecimal> purchaseMaTotalPrice = new AtomicReference<>(BigDecimal.ZERO);
|
||||
final AtomicReference<BigDecimal> purchaseMaTotalPrice = new AtomicReference<>(BigDecimal.ZERO);
|
||||
final AtomicReference<BigDecimal> purchaseTaxPriceTotal = new AtomicReference<>(BigDecimal.ZERO);
|
||||
|
||||
boolean isIncludeStage = false;
|
||||
for (PurchaseCheckDetails detail : purchaseCheckDetails) {
|
||||
if (detail.getPurchaseNum() == null || detail.getPurchasePrice() == null) {continue;}
|
||||
if (detail.getPurchaseNum().compareTo(BigDecimal.ZERO) < 0 || detail.getPurchasePrice().compareTo(BigDecimal.ZERO) < 0) {
|
||||
for (final PurchaseCheckDetails detail : purchaseCheckDetails) {
|
||||
if (null == detail.getPurchaseNum() || null == detail.getPurchasePrice()) {continue;}
|
||||
if (0 > detail.getPurchaseNum().compareTo(BigDecimal.ZERO) || 0 > detail.getPurchasePrice().compareTo(BigDecimal.ZERO)) {
|
||||
throw new IllegalArgumentException("采购数量和价格必须为非负数");
|
||||
}
|
||||
if (!isIncludeStage) {
|
||||
|
|
@ -224,23 +225,25 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
checkMaTotalNumber = checkMaTotalNumber.add(Optional.ofNullable(detail.getCheckNum()).orElse(BigDecimal.ZERO));
|
||||
bindMaTotalNumber = bindMaTotalNumber.add(Optional.ofNullable(detail.getBindNum()).orElse(BigDecimal.ZERO));
|
||||
inputMaTotalNumber = inputMaTotalNumber.add(Optional.ofNullable(detail.getInputNum()).orElse(BigDecimal.ZERO));
|
||||
purchaseMaTotalPrice.updateAndGet(v -> v.add(detail.getPurchaseNum().multiply(detail.getPurchasePrice())));
|
||||
purchaseMaTotalPrice.updateAndGet(v -> v.add(detail.getPurchaseNum().multiply(detail.getPurchasePrice()).setScale(10, RoundingMode.HALF_DOWN)));
|
||||
purchaseTaxPriceTotal.updateAndGet(v -> v.add(detail.getPurchaseNum().multiply(detail.getPurchaseTaxPrice()).setScale(10, RoundingMode.HALF_DOWN)));
|
||||
}
|
||||
purchaseInfo.setPurchaseMaNumber(purchaseMaTotalNumber);
|
||||
purchaseInfo.setPurchasePrice(purchaseMaTotalPrice.get());
|
||||
purchaseInfo.setPurchaseTaxPrice(purchaseTaxPriceTotal.get());
|
||||
purchaseInfo.setBindMaNumber(bindMaTotalNumber);
|
||||
purchaseInfo.setCheckMaNumber(checkMaTotalNumber);
|
||||
purchaseInfo.setInputMaNumber(inputMaTotalNumber);
|
||||
purchaseInfo.setWaitInputNumber(Optional.of(purchaseMaTotalNumber).orElse(BigDecimal.ZERO).subtract(Optional.of(inputMaTotalNumber).orElse(BigDecimal.ZERO)));
|
||||
if (purchaseInfo.getTaxRate() != null && purchaseInfo.getPurchasePrice() != null) {
|
||||
purchaseInfo.setPurchaseTaxPrice(calculateTaxPrice(purchaseMaTotalPrice.get(), purchaseInfo.getTaxRate()));
|
||||
}
|
||||
// if (null != purchaseInfo.getTaxRate() && null != purchaseInfo.getPurchasePrice()) {
|
||||
// purchaseInfo.setPurchaseTaxPrice(calculateTaxPrice(purchaseMaTotalPrice.get(), purchaseInfo.getTaxRate()));
|
||||
// }
|
||||
|
||||
// 设置外层任务状态:入库待开始、入库进行中、入库已完成
|
||||
TmTask tmTask = tmTaskMapper.selectTmTaskByTaskId(purchaseInfo.getTaskId());
|
||||
final TmTask tmTask = tmTaskMapper.selectTmTaskByTaskId(purchaseInfo.getTaskId());
|
||||
purchaseInfo.setTaskStatusName(isIncludeStage ? "未完成" : "已完成");
|
||||
if (purchaseQueryDto.getIsFinish() != null) {
|
||||
if (purchaseQueryDto.getIsFinish() == 1) {
|
||||
if (null != purchaseQueryDto.getIsFinish()) {
|
||||
if (1 == purchaseQueryDto.getIsFinish()) {
|
||||
if (isIncludeStage) {continue;}
|
||||
} else {
|
||||
if (!isIncludeStage) {continue;}
|
||||
|
|
@ -279,9 +282,15 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
* @return 不含税价格100 税率为13%,结果为 113.00
|
||||
*/
|
||||
public static BigDecimal calculateTaxPrice(BigDecimal purchaseNoTaxPrice, BigDecimal taxRate) {
|
||||
BigDecimal one = BigDecimal.ONE;
|
||||
BigDecimal divisor = BigDecimal.valueOf(100);
|
||||
return purchaseNoTaxPrice.multiply(one.add(taxRate.divide(divisor))).setScale(2, RoundingMode.HALF_UP);
|
||||
if (null == taxRate || 0 > taxRate.compareTo(BigDecimal.ZERO) || 0 < taxRate.compareTo(BigDecimal.valueOf(100))) {
|
||||
throw new IllegalArgumentException("税率必须在0到100之间");
|
||||
}
|
||||
// 计算税率
|
||||
final BigDecimal rate = taxRate.divide(BigDecimal.valueOf(100), 3, RoundingMode.HALF_UP);
|
||||
// 税后价格计算
|
||||
final BigDecimal taxIncludedPrice = purchaseNoTaxPrice.multiply(BigDecimal.ONE.add(rate));
|
||||
// 保留10位小数
|
||||
return taxIncludedPrice.setScale(10, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -296,24 +305,24 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate());
|
||||
purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getUsername());
|
||||
try {
|
||||
int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId());
|
||||
final int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId());
|
||||
String taskCode = genderTaskCode(thisMonthMaxOrder);
|
||||
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId(),
|
||||
final TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId(),
|
||||
PurchaseTaskStatusEnum.TO_NOTICE.getStatus(),
|
||||
purchaseCheckInfo.getPurchaseCheckInfo().getCompanyId(), thisMonthMaxOrder + 1, taskCode);
|
||||
tmTask.setCreateTime(DateUtils.getNowDate());
|
||||
tmTaskMapper.insertTmTask(tmTask);
|
||||
Long taskId = tmTask.getTaskId();
|
||||
purchaseCheckInfo.getPurchaseCheckInfo().setTaskId(taskId);
|
||||
int count = purchaseCheckInfoMapper.insertPurchaseCheckInfo(purchaseCheckInfo.getPurchaseCheckInfo());
|
||||
if (count > 0) {
|
||||
final int count = purchaseCheckInfoMapper.insertPurchaseCheckInfo(purchaseCheckInfo.getPurchaseCheckInfo());
|
||||
if (0 < count) {
|
||||
return insertPurchaseCheckDetails(purchaseCheckInfo.getPurchaseCheckDetailsList(), taskId);
|
||||
} else {
|
||||
return AjaxResult.error("新增任务失败,purchase_check_info表插入0条");
|
||||
}
|
||||
} catch (DataAccessException e) {
|
||||
} catch (final DataAccessException e) {
|
||||
return AjaxResult.error("数据库操作失败:" + e.getMessage());
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
return AjaxResult.error("新增任务失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
|
@ -326,15 +335,15 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
PurchaseTaskStatusEnum.TO_CHECK.getStatus() :
|
||||
PurchaseTaskStatusEnum.TO_NOTICE.getStatus());
|
||||
details.setInputStatus("0");
|
||||
List<BmFileInfo> bmFileInfos = details.getBmFileInfos();
|
||||
final List<BmFileInfo> bmFileInfos = details.getBmFileInfos();
|
||||
if (!CollectionUtils.isEmpty(bmFileInfos)) {
|
||||
bmFileInfos.forEach(o -> o.setTaskId(taskId));
|
||||
bmFileInfoMapper.insertBmFileInfos(bmFileInfos);
|
||||
}
|
||||
}
|
||||
// 批量插入详情数据
|
||||
int count = purchaseCheckDetailsMapper.insertPurchaseCheckDetailsList(purchaseCheckDetailsList);
|
||||
if (count > 0) {
|
||||
final int count = purchaseCheckDetailsMapper.insertPurchaseCheckDetailsList(purchaseCheckDetailsList);
|
||||
if (0 < count) {
|
||||
return AjaxResult.success("新增任务成功");
|
||||
} else {
|
||||
return AjaxResult.error("新增任务失败,purchase_check_detail详情表插入0条");
|
||||
|
|
@ -369,8 +378,8 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
}
|
||||
}
|
||||
}
|
||||
return updateCount > 0 ? AjaxResult.success("验证成功") : AjaxResult.error("无验证信息");
|
||||
} catch (Exception e) {
|
||||
return 0 < updateCount ? AjaxResult.success("验证成功") : AjaxResult.error("无验证信息");
|
||||
} catch (final Exception e) {
|
||||
return AjaxResult.error("验收状态更改失败,异常报错:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
|
@ -396,7 +405,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
// 验收驳回处理流程
|
||||
for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) {
|
||||
details.setStatus(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus());
|
||||
result = purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details) > 0 ? AjaxResult.success("detail验证驳回成功") : AjaxResult.error("details无验证信息");
|
||||
result = 0 < purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("detail验证驳回成功") : AjaxResult.error("details无验证信息");
|
||||
tmTaskMapper.updateTmTask(new TmTask()
|
||||
.setTaskId(details.getTaskId())
|
||||
.setTaskType(TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId())
|
||||
|
|
@ -406,7 +415,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
}
|
||||
}
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
return AjaxResult.error("验收状态更改失败,异常报错:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
|
@ -417,8 +426,8 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
*/
|
||||
private void extractedFile(PurchaseCheckDetails details) {
|
||||
if (!CollectionUtils.isEmpty(details.getBmFileInfos())) {
|
||||
for (BmFileInfo bmFileInfo : details.getBmFileInfos()) {
|
||||
if (bmFileInfo.getTaskType() != null && bmFileInfo.getTaskType() == 10) {
|
||||
for (final BmFileInfo bmFileInfo : details.getBmFileInfos()) {
|
||||
if (null != bmFileInfo.getTaskType() && Objects.equals(TmTaskTypeEnum.TM_TASK_AGREEMENT_MANAGEMENT.getTaskTypeId(), bmFileInfo.getTaskType())) {
|
||||
bmFileInfo.setTaskId(details.getTaskId());
|
||||
bmFileInfo.setModelId(details.getId());
|
||||
bmFileInfo.setCreateBy(SecurityUtils.getUsername());
|
||||
|
|
@ -437,11 +446,11 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
@Override
|
||||
public PurchaseCheckFormVo selectPurchaseCheckFormVoByTaskId(Long taskId) {
|
||||
// 执行SQL查询外层信息
|
||||
PurchaseCheckFormVo result = purchaseCheckInfoMapper.selectPurchaseCheckFormVoByTaskId(taskId);
|
||||
final PurchaseCheckFormVo result = purchaseCheckInfoMapper.selectPurchaseCheckFormVoByTaskId(taskId);
|
||||
|
||||
if (result != null) {
|
||||
if (null != result) {
|
||||
// 执行SQL查询内层信息
|
||||
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(taskId, null, SecurityUtils.getUserId());
|
||||
final List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(taskId, null, SecurityUtils.getUserId());
|
||||
// 过滤掉空数据
|
||||
purchaseCheckDetails.removeIf(Objects::isNull);
|
||||
result.setMaterialList(purchaseCheckDetails);
|
||||
|
|
@ -457,10 +466,10 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
* @return 任务对象
|
||||
*/
|
||||
private static String genderTaskCode(Integer thisMonthMaxOrder) {
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date nowDate = DateUtils.getNowDate();
|
||||
String format = dateFormat.format(nowDate);
|
||||
String result = format.replace("-", "");
|
||||
final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
final Date nowDate = DateUtils.getNowDate();
|
||||
final String format = dateFormat.format(nowDate);
|
||||
final String result = format.replace("-", "");
|
||||
return PURCHASE_TASK_TYPE_LABEL + result + String.format("-%03d", thisMonthMaxOrder + 1);
|
||||
}
|
||||
|
||||
|
|
@ -484,12 +493,12 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
);
|
||||
}
|
||||
try {
|
||||
Long[] ids = new Long[]{purchaseCheckDto.getPurchaseCheckInfo().getId()};
|
||||
final Long[] ids = {purchaseCheckDto.getPurchaseCheckInfo().getId()};
|
||||
purchaseCheckDetailsMapper.deletePurchaseCheckDetailsByParentIds(ids);
|
||||
insertPurchaseCheckDetails(purchaseCheckDto.getPurchaseCheckDetailsList(), purchaseCheckDto.getPurchaseCheckInfo().getTaskId());
|
||||
purchaseCheckInfoMapper.updatePurchaseCheckInfo(purchaseCheckDto.getPurchaseCheckInfo());
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
throw new ServiceException("错误信息描述");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -227,7 +227,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
GROUP BY
|
||||
mm.ma_code
|
||||
ORDER BY
|
||||
bai.agreement_code,lod.id
|
||||
bcd.create_time
|
||||
</select>
|
||||
|
||||
<select id="getInputRecordList" resultType="com.bonus.material.basic.domain.InputRecordInfo">
|
||||
|
|
@ -280,6 +280,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||
AND bs.create_time BETWEEN CONCAT(#{startTime}, ' 00:00:00') AND CONCAT(#{endTime}, ' 23:59:59')
|
||||
</if>
|
||||
order by bs.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getOutRecordList" resultType="com.bonus.material.basic.domain.OutRecordInfo">
|
||||
|
|
@ -340,6 +341,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||
AND bs.create_time BETWEEN CONCAT(#{startTime}, ' 00:00:00') AND CONCAT(#{endTime}, ' 23:59:59')
|
||||
</if>
|
||||
order by bs.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getRetainedEquipmentList" resultType="com.bonus.material.basic.domain.RetainedEquipmentInfo">
|
||||
|
|
|
|||
Loading…
Reference in New Issue