Browse Source

Merge remote-tracking branch 'origin/master_hella' into master_hella

master_hella
陈薪名 4 hours ago
parent
commit
22cd53240a
  1. 9
      sql/release_202405/wms_202405.sql
  2. 2
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  3. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestDetailController.java
  4. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/DeliverRecordDetailController.java
  5. 46
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/ProductionreturnRecordDetailHoldController.java
  6. 46
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/ProductionreturnRecordDetailStoreController.java
  7. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/ProductreceiptRecordMainController.java
  8. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordDetailBaseVO.java
  9. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseDetailController.java
  10. 73
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/ScrapJobDetailController.java
  11. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/ScrapJobMainController.java
  12. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/vo/ScrapJobMainExcelVO.java
  13. 73
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/ScrapRecordDetailController.java
  14. 58
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/ScrapRecordMainController.java
  15. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/vo/ScrapRecordMainExcelVO.java
  16. 87
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestDetailController.java
  17. 75
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestMainController.java
  18. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierinvoiceRecord/SupplierinvoiceRecordMainController.java
  19. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierinvoiceRecord/vo/SupplierinvoiceRecordMainBaseVO.java
  20. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierinvoiceRecord/vo/SupplierinvoiceRecordMainListReqVO.java
  21. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierinvoiceRecord/vo/SupplierinvoiceRecordMainPageReqVO.java
  22. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productreceiptRecord/ProductreceiptRecordDetailDO.java
  23. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/supplierinvoiceRecord/SupplierinvoiceRecordMainDO.java
  24. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobMainMapper.java
  25. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptRecord/ProductreceiptRecordDetailMapper.java
  26. 56
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplierinvoiceRecord/SupplierinvoiceRecordMainMapper.java
  27. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java
  28. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordDetailStoreServiceImpl.java
  29. 328
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java
  30. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java
  31. 192
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java
  32. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierinvoiceRecord/SupplierinvoiceRecordMainService.java
  33. 21
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierinvoiceRecord/SupplierinvoiceRecordMainServiceImpl.java
  34. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java

9
sql/release_202405/wms_202405.sql

@ -2963,3 +2963,12 @@ ALTER TABLE record_packagesplit_detail ADD COLUMN altBatch VARCHAR(64) DEFAULT N
ALTER TABLE request_unplannedissue_main add COLUMN destination VARCHAR(255) DEFAULT NULL COMMENT '目的地';
ALTER TABLE job_unplannedissue_main add COLUMN destination VARCHAR(255) DEFAULT NULL COMMENT '目的地';
ALTER TABLE record_unplannedissue_main add COLUMN destination VARCHAR(255) DEFAULT NULL COMMENT '目的地';
-- 隔离报工
alter table `record_productreceipt_detail` add `receive_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '隔离收货状态确认(0-待确认(蓝色),1-已接收(绿色),2-已拒绝(红色))';
-- 成都(物料隔离)
INSERT INTO `document_switch` (`id`, `code`, `description`, `effective_set_value`, `deleted`, `tenant_id`, `available`, `create_time`, `creator`, `update_time`, `updater`) VALUES (null, 'productreceiptScrapConfirmationSwitch', '隔离报工是否确认接收开关', 'FALSE', b'0', 2, 'TRUE', '2024-08-16 12:00:00', '', '2023-08-16 00:00:00', '');
INSERT INTO `document_switch` (`id`, `code`, `description`, `effective_set_value`, `deleted`, `tenant_id`, `available`, `create_time`, `creator`, `update_time`, `updater`) VALUES (null, 'productreceiptScrapConfirmationSwitch', '隔离报工是否确认接收开关', 'FALSE', b'0', 3, 'TRUE', '2024-08-16 12:00:00', '', '2023-08-16 00:00:00', '');
-- 长春(物料隔离)
INSERT INTO `document_switch` (`id`, `code`, `description`, `effective_set_value`, `deleted`, `tenant_id`, `available`, `create_time`, `creator`, `update_time`, `updater`) VALUES (null, 'productreceiptScrapConfirmationSwitch', '隔离报工是否确认接收开关', 'FALSE', b'0', 1, 'TRUE', '2024-08-16 12:00:00', '', '2023-08-16 00:00:00', '');

2
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java

@ -1780,4 +1780,6 @@ public interface ErrorCodeConstants {
ErrorCode PURCHASE_PLAN_DELIVERYDATE_NOT_MIN = new ErrorCode(1_000_368_004, "【{}】不是送达日期最小的要货计划,请重新选择要货计划号:【{}】,送达日期:【{}】的要货计划");
ErrorCode SUPPLIERINVOICE_ADMIN_NOT_UPDATE_ISREAD = new ErrorCode(1_000_368_004, "超级管理员无法修改未读变已读状态");
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestDetailController.java

@ -107,7 +107,6 @@ public class CustomerreturnRequestDetailController {
customerreturnRequestMainDO.setCreateTime(null);
customerreturnRequestMainDO.setUpdateTime(null);
customerreturnRequestMainDO.setUpdater(null);
customerreturnRequestMainDO.setRemark(null);
BeanUtil.copyProperties(customerreturnRequestMainDO,vo,options);
}
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/DeliverRecordDetailController.java

@ -26,6 +26,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -98,11 +99,9 @@ public class DeliverRecordDetailController {
PageResult<DeliverRecordDetailDO> pageResult = deliverRecordDetailService.getDeliverRecordDetailPage(pageVO);
PageResult<DeliverRecordDetailRespVO> result = DeliverRecordDetailConvert.INSTANCE.convertPage(pageResult);
if(pageResult.getList().size() > 0){
Set<Long> masterIdSet = new HashSet<>();
for(DeliverRecordDetailDO deliverRecordDetailDO:pageResult.getList()){
masterIdSet.add(deliverRecordDetailDO.getMasterId());
}
Set<Long> masterIdSet = pageResult.getList().stream().map(DeliverRecordDetailDO::getMasterId).collect(Collectors.toSet());
Map<Long, DeliverRecordMainDO> mainMap = deliverRecordMainMapper.queryMainListToMap(masterIdSet);
CopyOptions options = CopyOptions.create().setIgnoreNullValue(true);
for(DeliverRecordDetailRespVO vo : result.getList()) {
vo.setCreator(userApi.getUserNickname(vo.getCreator()));

46
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/ProductionreturnRecordDetailHoldController.java

@ -8,17 +8,16 @@ import com.win.framework.common.pojo.PageResult;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailExcelVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailExportReqVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailPageReqVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailRespVO;
import com.win.module.wms.controller.productionreturnRecord.vo.*;
import com.win.module.wms.convert.productionreturnRecord.ProductionreturnRecordDetailConvert;
import com.win.module.wms.convert.productionreturnRecord.ProductionreturnRecordMainConvert;
import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordMainDO;
import com.win.module.wms.service.productionreturnRecord.ProductionreturnRecordDetailService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -26,10 +25,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -73,4 +69,38 @@ public class ProductionreturnRecordDetailHoldController extends Productionreturn
extracted(response, list);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出生产退料记录主 Excel")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-record-detail:export')")
@OperateLog(type = EXPORT)
public void exportProductionreturnRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
// List<ProductionreturnRecordMainDO> list = productionreturnRecordMainService.getProductionreturnRecordMainList(conditions);
conditions.getFilters().add(new CustomConditions.Condition("business_type", "=", "ReturnToHold"));
//组装vo
List<ProductionreturnRecordDetailDO> list = productionreturnRecordDetailService.getProductionreturnRecordDetailSenior(conditions).getList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductionreturnRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "生产退料记录.xlsx", "生产退料记录", ProductionreturnRecordMainExcelVO.class, resultList, mapDropDown);
}
private List<ProductionreturnRecordMainExcelVO> getExcelVo(List<ProductionreturnRecordDetailDO> list, Map<Integer, String[]> mapDropDown) {
List<ProductionreturnRecordMainExcelVO> datas = new ArrayList<>();
if (!CollectionUtils.isEmpty(list)) {
Set<Long> masterIdSet = new HashSet<>();
for (ProductionreturnRecordDetailDO detailDO : list) {
masterIdSet.add(detailDO.getMasterId());
}
Map<Long, ProductionreturnRecordMainDO> mainMap = productionreturnRecordMainMapper.queryMainListToMap(masterIdSet);
for (ProductionreturnRecordDetailDO detailDO : list) {
ProductionreturnRecordMainDO mainDO = mainMap.get(detailDO.getMasterId());
ProductionreturnRecordMainExcelVO convert = ProductionreturnRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
convert.setCreator(userApi.getUserNickname(convert.getCreator(),true));
datas.add(convert);
}
}
return datas;
}
}

46
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/ProductionreturnRecordDetailStoreController.java

@ -8,17 +8,16 @@ import com.win.framework.common.pojo.PageResult;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailExcelVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailExportReqVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailPageReqVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailRespVO;
import com.win.module.wms.controller.productionreturnRecord.vo.*;
import com.win.module.wms.convert.productionreturnRecord.ProductionreturnRecordDetailConvert;
import com.win.module.wms.convert.productionreturnRecord.ProductionreturnRecordMainConvert;
import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordMainDO;
import com.win.module.wms.service.productionreturnRecord.ProductionreturnRecordDetailService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -26,10 +25,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -74,5 +70,39 @@ public class ProductionreturnRecordDetailStoreController extends Productionretur
extracted(response, list);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出生产退料记录主 Excel")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-record-detail:export')")
@OperateLog(type = EXPORT)
public void exportProductionreturnRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
// List<ProductionreturnRecordMainDO> list = productionreturnRecordMainService.getProductionreturnRecordMainList(conditions);
conditions.getFilters().add(new CustomConditions.Condition("business_type", "=", "ReturnToStore"));
//组装vo
List<ProductionreturnRecordDetailDO> list = productionreturnRecordDetailService.getProductionreturnRecordDetailSenior(conditions).getList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductionreturnRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "生产退料记录.xlsx", "生产退料记录", ProductionreturnRecordMainExcelVO.class, resultList, mapDropDown);
}
private List<ProductionreturnRecordMainExcelVO> getExcelVo(List<ProductionreturnRecordDetailDO> list, Map<Integer, String[]> mapDropDown) {
List<ProductionreturnRecordMainExcelVO> datas = new ArrayList<>();
if (!CollectionUtils.isEmpty(list)) {
Set<Long> masterIdSet = new HashSet<>();
for (ProductionreturnRecordDetailDO detailDO : list) {
masterIdSet.add(detailDO.getMasterId());
}
Map<Long, ProductionreturnRecordMainDO> mainMap = productionreturnRecordMainMapper.queryMainListToMap(masterIdSet);
for (ProductionreturnRecordDetailDO detailDO : list) {
ProductionreturnRecordMainDO mainDO = mainMap.get(detailDO.getMasterId());
ProductionreturnRecordMainExcelVO convert = ProductionreturnRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
convert.setCreator(userApi.getUserNickname(convert.getCreator(),true));
datas.add(convert);
}
}
return datas;
}
}

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/ProductreceiptRecordMainController.java

@ -384,4 +384,20 @@ public class ProductreceiptRecordMainController {
productreceiptRecordMainService.replenishmentProductreceiptTransaction(numbers);
return success("success");
}
@PutMapping("/receive")
@Operation(summary = "接收隔离收货")
@Parameter(name = "id", description = "编号", required = true)
public CommonResult<Boolean> receive(@RequestParam("id") Long id){
boolean flag = productreceiptRecordMainService.receive(id);
return success(flag);
}
@PutMapping("/refuse")
@Operation(summary = "拒收隔离收货")
@Parameter(name = "id", description = "编号", required = true)
public CommonResult<Boolean> refuse(@RequestParam("id") Long id){
boolean flag = productreceiptRecordMainService.refuse(id);
return success(flag);
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordDetailBaseVO.java

@ -134,4 +134,7 @@ public class ProductreceiptRecordDetailBaseVO {
@Schema(description = "类型")
private String type;
@Schema(description = "隔离收货状态确认(0-待确认(蓝色),1-已接收(绿色),2-已拒绝(红色))")
private String receiveStatus;
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseDetailController.java

@ -403,6 +403,7 @@ public class PurchaseDetailController {
@Operation(summary = "获得采购订单子分页")
public CommonResult<PageResult<PurchaseDetailRespVO>> getPurchaseDetailMPage(@Valid PurchaseDetailPageReqVO pageVO) {
pageVO.setPageSize(5000);
pageVO.setPoLineType("M");
PageResult<PurchaseDetailDO> pageResult = purchaseDetailService.getPurchaseDetailPage(pageVO);
PageResult<PurchaseDetailRespVO> result = PurchaseDetailConvert.INSTANCE.convertPage(pageResult);
List<PurchaseDetailRespVO> list1 = new ArrayList<>();//要展示子订单可发货的

73
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/ScrapJobDetailController.java

@ -5,16 +5,15 @@ import cn.hutool.core.bean.copier.CopyOptions;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.util.collection.CollectionUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.scrapJob.vo.ScrapJobDetailRespVO;
import com.win.module.wms.controller.scrapJob.vo.*;
import com.win.module.wms.convert.scrapJob.ScrapJobDetailConvert;
import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobDetailDO;
import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobMainDO;
import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobDetailDO;
import com.win.module.wms.dal.mysql.scrapJob.ScrapJobMainMapper;
import com.win.module.wms.service.scrapJob.ScrapJobDetailService;
import io.swagger.v3.oas.annotations.Operation;
@ -29,6 +28,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -46,7 +46,6 @@ public class ScrapJobDetailController {
@Resource
private ScrapJobMainMapper scrapJobMainMapper;
@PostMapping("/create")
@Operation(summary = "创建报废出库任务子")
@PreAuthorize("@ss.hasPermission('wms:scrap-job-detail:create')")
@ -91,65 +90,49 @@ public class ScrapJobDetailController {
@Operation(summary = "获得报废出库任务子分页")
public CommonResult<PageResult<ScrapJobDetailRespVO>> getScrapJobDetailPage(@Valid ScrapJobDetailPageReqVO pageVO) {
PageResult<ScrapJobDetailDO> pageResult = scrapJobDetailService.getScrapJobDetailPage(pageVO);
PageResult<ScrapJobDetailRespVO> result = getScrapJobDetailRespVOPageResult(pageResult);
return success(result);
}
private PageResult<ScrapJobDetailRespVO> getScrapJobDetailRespVOPageResult(PageResult<ScrapJobDetailDO> pageResult) {
PageResult<ScrapJobDetailRespVO> result = ScrapJobDetailConvert.INSTANCE.convertPage(pageResult);
if(pageResult.getList().size() > 0){
Set<Long> masterIdSet = new HashSet<>();
for(ScrapJobDetailDO scrapJobDetailDO:pageResult.getList()){
masterIdSet.add(scrapJobDetailDO.getMasterId());
}
if (pageResult.getList().size() > 0) {
//主
Set<Long> masterIdSet = pageResult.getList().stream().map(ScrapJobDetailDO::getMasterId).collect(Collectors.toSet());
Map<Long, ScrapJobMainDO> mainMap = scrapJobMainMapper.queryMainListToMap(masterIdSet);
//用户
Set<String> userIdSet = pageResult.getList().stream().map(ScrapJobDetailDO::getCreator).collect(Collectors.toSet());
userIdSet.addAll(pageResult.getList().stream().map(ScrapJobDetailDO::getUpdater).collect(Collectors.toSet()));
Map<String, String> userNicknameMap = userApi.getUserNicknameToString(userIdSet);
CopyOptions options = CopyOptions.create().setIgnoreNullValue(true);
for(ScrapJobDetailRespVO vo : result.getList()) {
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
vo.setUpdater(userApi.getUserNickname(vo.getUpdater()));
result.getList().stream().iterator().forEachRemaining(vo -> {
vo.setCreator(Optional.ofNullable(userNicknameMap.get(vo.getCreator())).orElse(""));
vo.setUpdater(Optional.ofNullable(userNicknameMap.get(vo.getUpdater())).orElse(""));
ScrapJobMainDO scrapJobMainDO = mainMap.get(vo.getMasterId());
if(scrapJobMainDO != null){
if (scrapJobMainDO != null) {
scrapJobMainDO.setId(null);
scrapJobMainDO.setCreator(null);
scrapJobMainDO.setCreateTime(null);
scrapJobMainDO.setUpdateTime(null);
scrapJobMainDO.setUpdater(null);
String remarkMain =Optional.ofNullable(scrapJobMainDO.getRemark()).orElse("");
String remarkSub=Optional.ofNullable(vo.getRemark()).orElse("");
BeanUtil.copyProperties(scrapJobMainDO,vo,options);
String remarkMain = Optional.ofNullable(scrapJobMainDO.getRemark()).orElse("");
String remarkSub = Optional.ofNullable(vo.getRemark()).orElse("");
BeanUtil.copyProperties(scrapJobMainDO, vo, options);
vo.setRemarkMain(remarkMain);
vo.setRemark(remarkSub);
}
}
});
}
return success(result);
return result;
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得物料基本信息分页")
public CommonResult<PageResult<ScrapJobDetailRespVO>> getScrapJobDetailSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ScrapJobDetailDO> pageResult = scrapJobDetailService.getScrapJobDetailSenior(conditions);
PageResult<ScrapJobDetailRespVO> result = ScrapJobDetailConvert.INSTANCE.convertPage(pageResult);
if(pageResult.getList().size() > 0){
Set<Long> masterIdSet = new HashSet<>();
for(ScrapJobDetailDO scrapJobDetailDO:pageResult.getList()){
masterIdSet.add(scrapJobDetailDO.getMasterId());
}
Map<Long, ScrapJobMainDO> mainMap = scrapJobMainMapper.queryMainListToMap(masterIdSet);
CopyOptions options = CopyOptions.create().setIgnoreNullValue(true);
for(ScrapJobDetailRespVO vo : result.getList()) {
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
vo.setUpdater(userApi.getUserNickname(vo.getUpdater()));
ScrapJobMainDO scrapJobMainDO = mainMap.get(vo.getMasterId());
if(scrapJobMainDO != null){
scrapJobMainDO.setId(null);
scrapJobMainDO.setCreator(null);
scrapJobMainDO.setCreateTime(null);
scrapJobMainDO.setUpdateTime(null);
scrapJobMainDO.setUpdater(null);
String remarkMain =Optional.ofNullable(scrapJobMainDO.getRemark()).orElse("");
String remarkSub=Optional.ofNullable(vo.getRemark()).orElse("");
BeanUtil.copyProperties(scrapJobMainDO,vo,options);
vo.setRemarkMain(remarkMain);
vo.setRemark(remarkSub);
}
}
}
PageResult<ScrapJobDetailRespVO> result = getScrapJobDetailRespVOPageResult(pageResult);
return success(result);
}
@ -158,11 +141,11 @@ public class ScrapJobDetailController {
@PreAuthorize("@ss.hasPermission('wms:scrap-job-detail:export')")
@OperateLog(type = EXPORT)
public void exportScrapJobDetailExcel(@Valid ScrapJobDetailExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
HttpServletResponse response) throws IOException {
List<ScrapJobDetailDO> list = scrapJobDetailService.getScrapJobDetailList(exportReqVO);
// 导出 Excel
List<ScrapJobDetailExcelVO> datas = ScrapJobDetailConvert.INSTANCE.convertList02(list);
for(ScrapJobDetailExcelVO vo : datas) {
for (ScrapJobDetailExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/ScrapJobMainController.java

@ -18,7 +18,6 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jodd.util.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
@ -30,6 +29,7 @@ import javax.validation.Valid;
import java.io.IOException;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -143,25 +143,24 @@ public class ScrapJobMainController {
private List<ScrapJobMainExcelVO> getExcelVo(List<ScrapJobDetailDO> detailDOList) {
List<ScrapJobMainExcelVO> resultList = new ArrayList<>();
if (!CollectionUtils.isEmpty(detailDOList)) {
Set<Long> masterIdSet = new HashSet<>();
for (ScrapJobDetailDO detailDO : detailDOList) {
masterIdSet.add(detailDO.getMasterId());
}
Set<Long> masterIdSet = detailDOList.stream().map(ScrapJobDetailDO::getMasterId).collect(Collectors.toSet());
Map<Long, ScrapJobMainDO> mainMap = scrapJobMainMapper.queryMainListToMap(masterIdSet);
for (ScrapJobDetailDO detailDO : detailDOList) {
Set<String> userIdSet = detailDOList.stream().map(ScrapJobDetailDO::getCreator).collect(Collectors.toSet());
Map<String, String> userNicknameMap = userApi.getUserNicknameToString(userIdSet);
detailDOList.stream().iterator().forEachRemaining(detailDO -> {
ScrapJobMainDO mainDO = mainMap.get(detailDO.getMasterId());
ScrapJobMainExcelVO vo = ScrapJobMainConvert.INSTANCE.convert(mainDO, detailDO);
// if(mainDO != null ){
// vo.setRemarkMain(mainDO.getRemark());
// }
if(StringUtils.isNotEmpty(vo.getCreator())){
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
}
if(vo.getQty() != null){
vo.setCreator(Optional.ofNullable(userNicknameMap.get(vo.getCreator())).orElse(""));
if (vo.getQty() != null) {
vo.setQty(vo.getQty().setScale(2, RoundingMode.HALF_UP));
}
resultList.add(vo);
}
});
}
return resultList;
}
@ -174,7 +173,8 @@ public class ScrapJobMainController {
ScrapJobMainRespVO result = ScrapJobMainConvert.INSTANCE.convert(scrapJobMain);
if (result == null) {
return success(result);
} ;
}
;
ScrapJobDetailExportReqVO reqVO = new ScrapJobDetailExportReqVO();
reqVO.setMasterId(result.getId());
List<ScrapJobDetailDO> scrapJobDetailList = scrapJobDetailService.getScrapJobDetailList(reqVO);

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/vo/ScrapJobMainExcelVO.java

@ -118,9 +118,9 @@ public class ScrapJobMainExcelVO {
@Colour(IndexedColors.LIGHT_YELLOW)
private String businessType;
@ExcelProperty("部门")
@Colour(IndexedColors.LIGHT_YELLOW)
private String departmentCode;
// @ExcelProperty("部门")
// @Colour(IndexedColors.LIGHT_YELLOW)
// private String departmentCode;
// @ExcelProperty("通知单描述")
// @Colour(IndexedColors.LIGHT_YELLOW)
@ -183,7 +183,7 @@ public class ScrapJobMainExcelVO {
@ExcelProperty("承接人")
@Colour(IndexedColors.LIGHT_YELLOW)
private String acceptUserId;
private String acceptUserName;
@ExcelProperty("完成时间")
@ColumnWidth(value = 16)
@ -192,7 +192,7 @@ public class ScrapJobMainExcelVO {
@ExcelProperty("完成人")
@Colour(IndexedColors.LIGHT_YELLOW)
private String completeUserId;
private String completeUserName;
@ExcelProperty("物料代码")
private String itemCode;

73
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/ScrapRecordDetailController.java

@ -10,6 +10,7 @@ import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.wms.controller.scrapRecord.vo.*;
import com.win.module.wms.convert.scrapRecord.ScrapRecordDetailConvert;
import com.win.module.wms.dal.dataobject.scrapJob.ScrapJobDetailDO;
import com.win.module.wms.dal.dataobject.scrapRecord.ScrapRecordDetailDO;
import com.win.module.wms.dal.dataobject.scrapRecord.ScrapRecordMainDO;
import com.win.module.wms.dal.mysql.scrapRecord.ScrapRecordMainMapper;
@ -27,6 +28,7 @@ import javax.validation.Valid;
import java.io.IOException;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -88,42 +90,49 @@ public class ScrapRecordDetailController {
@Operation(summary = "获得报废出库记录子分页")
public CommonResult<PageResult<ScrapRecordDetailRespVO>> getScrapRecordDetailPage(@Valid ScrapRecordDetailPageReqVO pageVO) {
PageResult<ScrapRecordDetailDO> pageResult = scrapRecordDetailService.getScrapRecordDetailPage(pageVO);
PageResult<ScrapRecordDetailRespVO> result = getScrapRecordDetailRespVOPageResult(pageResult);
return success(result);
}
private PageResult<ScrapRecordDetailRespVO> getScrapRecordDetailRespVOPageResult(PageResult<ScrapRecordDetailDO> pageResult) {
PageResult<ScrapRecordDetailRespVO> result = ScrapRecordDetailConvert.INSTANCE.convertPage(pageResult);
if(pageResult.getList().size() > 0){
Set<Long> masterIdSet = new HashSet<>();
for(ScrapRecordDetailDO scrapRecordDetailDO:pageResult.getList()){
masterIdSet.add(scrapRecordDetailDO.getMasterId());
}
if (pageResult.getList().size() > 0) {
Set<Long> masterIdSet = pageResult.getList().stream().map(ScrapRecordDetailDO::getMasterId).collect(Collectors.toSet());
Map<Long, ScrapRecordMainDO> mainMap = scrapRecordMainMapper.queryMainListToMap(masterIdSet);
//用户
Set<String> userIdSet = pageResult.getList().stream().map(ScrapRecordDetailDO::getCreator).collect(Collectors.toSet());
userIdSet.addAll(pageResult.getList().stream().map(ScrapRecordDetailDO::getUpdater).collect(Collectors.toSet()));
Map<String, String> userNicknameMap = userApi.getUserNicknameToString(userIdSet);
CopyOptions options = CopyOptions.create().setIgnoreNullValue(true);
for(ScrapRecordDetailRespVO vo : result.getList()) {
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
vo.setUpdater(userApi.getUserNickname(vo.getUpdater()));
result.getList().stream().iterator().forEachRemaining(vo -> {
vo.setCreator(Optional.ofNullable(userNicknameMap.get(vo.getCreator())).orElse(""));
vo.setUpdater(Optional.ofNullable(userNicknameMap.get(vo.getUpdater())).orElse(""));
ScrapRecordMainDO scrapRecordMainDO = mainMap.get(vo.getMasterId());
if(scrapRecordMainDO != null){
if (scrapRecordMainDO != null) {
scrapRecordMainDO.setId(null);
scrapRecordMainDO.setCreator(null);
scrapRecordMainDO.setCreateTime(null);
scrapRecordMainDO.setUpdateTime(null);
scrapRecordMainDO.setUpdater(null);
String remarkMain =Optional.ofNullable(scrapRecordMainDO.getRemark()).orElse("");
String remarkSub=Optional.ofNullable(vo.getRemark()).orElse("");
BeanUtil.copyProperties(scrapRecordMainDO,vo,options);
if(vo.getQty() != null){
String remarkMain = Optional.ofNullable(scrapRecordMainDO.getRemark()).orElse("");
String remarkSub = Optional.ofNullable(vo.getRemark()).orElse("");
BeanUtil.copyProperties(scrapRecordMainDO, vo, options);
if (vo.getQty() != null) {
vo.setQty(vo.getQty().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getSinglePrice() != null){
vo.setSinglePrice(vo.getSinglePrice().setScale(2,RoundingMode.HALF_UP));
if (vo.getSinglePrice() != null) {
vo.setSinglePrice(vo.getSinglePrice().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getAmount() != null){
vo.setAmount(vo.getAmount().setScale(2,RoundingMode.HALF_UP));
if (vo.getAmount() != null) {
vo.setAmount(vo.getAmount().setScale(2, RoundingMode.HALF_UP));
}
vo.setRemarkMain(remarkMain);
vo.setRemark(remarkSub);
}
}
});
}
return success(result);
return result;
}
@PostMapping("/senior")
@ -131,34 +140,34 @@ public class ScrapRecordDetailController {
public CommonResult<PageResult<ScrapRecordDetailRespVO>> getScrapRecordDetailSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ScrapRecordDetailDO> pageResult = scrapRecordDetailService.getScrapRecordDetailSenior(conditions);
PageResult<ScrapRecordDetailRespVO> result = ScrapRecordDetailConvert.INSTANCE.convertPage(pageResult);
if(pageResult.getList().size() > 0){
if (pageResult.getList().size() > 0) {
Set<Long> masterIdSet = new HashSet<>();
for(ScrapRecordDetailDO scrapRecordDetailDO:pageResult.getList()){
for (ScrapRecordDetailDO scrapRecordDetailDO : pageResult.getList()) {
masterIdSet.add(scrapRecordDetailDO.getMasterId());
}
Map<Long, ScrapRecordMainDO> mainMap = scrapRecordMainMapper.queryMainListToMap(masterIdSet);
CopyOptions options = CopyOptions.create().setIgnoreNullValue(true);
for(ScrapRecordDetailRespVO vo : result.getList()) {
for (ScrapRecordDetailRespVO vo : result.getList()) {
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
vo.setUpdater(userApi.getUserNickname(vo.getUpdater()));
ScrapRecordMainDO scrapRecordMainDO = mainMap.get(vo.getMasterId());
if(scrapRecordMainDO != null){
if (scrapRecordMainDO != null) {
scrapRecordMainDO.setId(null);
scrapRecordMainDO.setCreator(null);
scrapRecordMainDO.setCreateTime(null);
scrapRecordMainDO.setUpdateTime(null);
scrapRecordMainDO.setUpdater(null);
String remarkMain =Optional.ofNullable(scrapRecordMainDO.getRemark()).orElse("");
String remarkSub=Optional.ofNullable(vo.getRemark()).orElse("");
BeanUtil.copyProperties(scrapRecordMainDO,vo,options);
if(vo.getQty() != null){
String remarkMain = Optional.ofNullable(scrapRecordMainDO.getRemark()).orElse("");
String remarkSub = Optional.ofNullable(vo.getRemark()).orElse("");
BeanUtil.copyProperties(scrapRecordMainDO, vo, options);
if (vo.getQty() != null) {
vo.setQty(vo.getQty().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getSinglePrice() != null){
vo.setSinglePrice(vo.getSinglePrice().setScale(2,RoundingMode.HALF_UP));
if (vo.getSinglePrice() != null) {
vo.setSinglePrice(vo.getSinglePrice().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getAmount() != null){
vo.setAmount(vo.getAmount().setScale(2,RoundingMode.HALF_UP));
if (vo.getAmount() != null) {
vo.setAmount(vo.getAmount().setScale(2, RoundingMode.HALF_UP));
}
vo.setRemarkMain(remarkMain);
vo.setRemark(remarkSub);
@ -173,7 +182,7 @@ public class ScrapRecordDetailController {
@PreAuthorize("@ss.hasPermission('wms:scrap-record-detail:export')")
@OperateLog(type = EXPORT)
public void exportScrapRecordDetailExcel(@Valid ScrapRecordDetailExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
HttpServletResponse response) throws IOException {
List<ScrapRecordDetailDO> list = scrapRecordDetailService.getScrapRecordDetailList(exportReqVO);
// 导出 Excel
List<ScrapRecordDetailExcelVO> datas = ScrapRecordDetailConvert.INSTANCE.convertList02(list);

58
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/ScrapRecordMainController.java

@ -1,21 +1,5 @@
package com.win.module.wms.controller.scrapRecord;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
import java.io.IOException;
import java.math.RoundingMode;
import java.util.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
@ -29,10 +13,24 @@ import com.win.module.wms.dal.dataobject.scrapRecord.ScrapRecordMainDO;
import com.win.module.wms.dal.mysql.scrapRecord.ScrapRecordMainMapper;
import com.win.module.wms.service.scrapRecord.ScrapRecordDetailService;
import com.win.module.wms.service.scrapRecord.ScrapRecordMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 报废出库记录主")
@RestController
@ -109,6 +107,7 @@ public class ScrapRecordMainController {
public CommonResult<PageResult<ScrapRecordMainRespVO>> getScrapRecordMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ScrapRecordMainDO> pageResult = scrapRecordMainService.getScrapRecordMainSenior(conditions);
PageResult<ScrapRecordMainRespVO> result = ScrapRecordMainConvert.INSTANCE.convertPage(pageResult);
for (ScrapRecordMainRespVO vo : result.getList()) {
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
vo.setUpdater(userApi.getUserNickname(vo.getUpdater()));
@ -142,29 +141,30 @@ public class ScrapRecordMainController {
private List<ScrapRecordMainExcelVO> getExcelVo(List<ScrapRecordDetailDO> detailDOList) {
List<ScrapRecordMainExcelVO> resultList = new ArrayList<>();
if (!CollectionUtils.isEmpty(detailDOList)) {
Set<Long> masterIdSet = new HashSet<>();
for (ScrapRecordDetailDO detailDO : detailDOList) {
masterIdSet.add(detailDO.getMasterId());
}
Set<Long> masterIdSet = detailDOList.stream().map(ScrapRecordDetailDO::getMasterId).collect(Collectors.toSet());
Map<Long, ScrapRecordMainDO> mainMap = scrapRecordMainMapper.queryMainListToMap(masterIdSet);
for (ScrapRecordDetailDO detailDO : detailDOList) {
Set<String> userIdSet = detailDOList.stream().map(ScrapRecordDetailDO::getCreator).collect(Collectors.toSet());
Map<String, String> userNicknameMap = userApi.getUserNicknameToString(userIdSet);
detailDOList.stream().iterator().forEachRemaining(detailDO -> {
ScrapRecordMainDO mainDO = mainMap.get(detailDO.getMasterId());
ScrapRecordMainExcelVO vo = ScrapRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUserNickname(vo.getCreator(),true));
vo.setCreator(Optional.ofNullable(userNicknameMap.get(vo.getCreator())).orElse(""));
// if(mainDO != null ){
// vo.setRemarkMain(mainDO.getRemark());
// }
if(vo.getQty() != null){
if (vo.getQty() != null) {
vo.setQty(vo.getQty().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getSinglePrice() != null){
vo.setSinglePrice(vo.getSinglePrice().setScale(2,RoundingMode.HALF_UP));
if (vo.getSinglePrice() != null) {
vo.setSinglePrice(vo.getSinglePrice().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getAmount() != null){
vo.setAmount(vo.getAmount().setScale(2,RoundingMode.HALF_UP));
if (vo.getAmount() != null) {
vo.setAmount(vo.getAmount().setScale(2, RoundingMode.HALF_UP));
}
resultList.add(vo);
}
});
}
return resultList;
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/vo/ScrapRecordMainExcelVO.java

@ -117,9 +117,9 @@ public class ScrapRecordMainExcelVO {
@Colour(IndexedColors.LIGHT_YELLOW)
private String businessType;
@ExcelProperty("部门")
@Colour(IndexedColors.LIGHT_YELLOW)
private String departmentCode;
// @ExcelProperty("部门")
// @Colour(IndexedColors.LIGHT_YELLOW)
// private String departmentCode;
// @ExcelProperty("单据备注")
// @Colour(IndexedColors.LIGHT_YELLOW)

87
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestDetailController.java

@ -8,13 +8,10 @@ import com.win.framework.common.pojo.PageResult;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailRespVO;
import com.win.module.wms.controller.scrapRequest.vo.*;
import com.win.module.wms.convert.scrapRequest.ScrapRequestDetailConvert;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO;
import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO;
import com.win.module.wms.dal.mysql.scrapRequest.ScrapRequestMainMapper;
import com.win.module.wms.service.scrapRequest.ScrapRequestDetailService;
import io.swagger.v3.oas.annotations.Operation;
@ -30,6 +27,7 @@ import javax.validation.Valid;
import java.io.IOException;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -91,83 +89,56 @@ public class ScrapRequestDetailController {
@Operation(summary = "获得报废出库申请子分页")
public CommonResult<PageResult<ScrapRequestDetailRespVO>> getScrapRequestDetailPage(@Valid ScrapRequestDetailPageReqVO pageVO) {
PageResult<ScrapRequestDetailDO> pageResult = scrapRequestDetailService.getScrapRequestDetailPage(pageVO);
PageResult<ScrapRequestDetailRespVO> result = getScrapRequestDetailRespVOPageResult(pageResult);
return success(result);
}
private PageResult<ScrapRequestDetailRespVO> getScrapRequestDetailRespVOPageResult(PageResult<ScrapRequestDetailDO> pageResult) {
PageResult<ScrapRequestDetailRespVO> result = ScrapRequestDetailConvert.INSTANCE.convertPage(pageResult);
if(pageResult.getList().size() > 0){
Set<Long> masterIdSet = new HashSet<>();
for(ScrapRequestDetailDO scrapRequestDetailDO:pageResult.getList()){
masterIdSet.add(scrapRequestDetailDO.getMasterId());
}
if (pageResult.getList().size() > 0) {
Set<Long> masterIdSet = pageResult.getList().stream().map(ScrapRequestDetailDO::getMasterId).collect(Collectors.toSet());
Map<Long, ScrapRequestMainDO> mainMap = scrapRequestMainMapper.queryMainListToMap(masterIdSet);
//用户
Set<String> userIdSet = pageResult.getList().stream().map(ScrapRequestDetailDO::getCreator).collect(Collectors.toSet());
userIdSet.addAll(pageResult.getList().stream().map(ScrapRequestDetailDO::getCreator).collect(Collectors.toSet()));
Map<String, String> userNicknameMap = userApi.getUserNicknameToString(userIdSet);
CopyOptions options = CopyOptions.create().setIgnoreNullValue(true);
for(ScrapRequestDetailRespVO vo : result.getList()) {
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
vo.setUpdater(userApi.getUserNickname(vo.getUpdater()));
result.getList().stream().iterator().forEachRemaining(vo -> {
vo.setCreator(Optional.ofNullable(userNicknameMap.get(vo.getCreator())).orElse(""));
vo.setUpdater(Optional.ofNullable(userNicknameMap.get(vo.getUpdater())).orElse(""));
ScrapRequestMainDO scrapRequestMainDO = mainMap.get(vo.getMasterId());
if(scrapRequestMainDO != null){
if (scrapRequestMainDO != null) {
scrapRequestMainDO.setId(null);
scrapRequestMainDO.setCreator(null);
scrapRequestMainDO.setCreateTime(null);
scrapRequestMainDO.setUpdateTime(null);
scrapRequestMainDO.setUpdater(null);
String remarkMain =Optional.ofNullable(scrapRequestMainDO.getRemark()).orElse("");
String remarkSub=Optional.ofNullable(vo.getRemark()).orElse("");
BeanUtil.copyProperties(scrapRequestMainDO,vo,options);
if(vo.getQty() != null){
String remarkMain = Optional.ofNullable(scrapRequestMainDO.getRemark()).orElse("");
String remarkSub = Optional.ofNullable(vo.getRemark()).orElse("");
BeanUtil.copyProperties(scrapRequestMainDO, vo, options);
if (vo.getQty() != null) {
vo.setQty(vo.getQty().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getSinglePrice() != null){
vo.setSinglePrice(vo.getSinglePrice().setScale(2,RoundingMode.HALF_UP));
if (vo.getSinglePrice() != null) {
vo.setSinglePrice(vo.getSinglePrice().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getAmount() != null){
vo.setAmount(vo.getAmount().setScale(2,RoundingMode.HALF_UP));
if (vo.getAmount() != null) {
vo.setAmount(vo.getAmount().setScale(2, RoundingMode.HALF_UP));
}
vo.setRemarkMain(remarkMain);
vo.setRemark(remarkSub);
}
}
});
}
return success(result);
return result;
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得物料基本信息分页")
public CommonResult<PageResult<ScrapRequestDetailRespVO>> getScrapRequestDetailSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ScrapRequestDetailDO> pageResult = scrapRequestDetailService.getScrapRequestDetailSenior(conditions);
PageResult<ScrapRequestDetailRespVO> result = ScrapRequestDetailConvert.INSTANCE.convertPage(pageResult);
if(pageResult.getList().size() > 0){
Set<Long> masterIdSet = new HashSet<>();
for(ScrapRequestDetailDO scrapRequestDetailDO:pageResult.getList()){
masterIdSet.add(scrapRequestDetailDO.getMasterId());
}
Map<Long, ScrapRequestMainDO> mainMap = scrapRequestMainMapper.queryMainListToMap(masterIdSet);
CopyOptions options = CopyOptions.create().setIgnoreNullValue(true);
for(ScrapRequestDetailRespVO vo : result.getList()) {
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
vo.setUpdater(userApi.getUserNickname(vo.getUpdater()));
ScrapRequestMainDO scrapRequestMainDO = mainMap.get(vo.getMasterId());
if(scrapRequestMainDO != null){
scrapRequestMainDO.setId(null);
scrapRequestMainDO.setCreator(null);
scrapRequestMainDO.setCreateTime(null);
scrapRequestMainDO.setUpdateTime(null);
scrapRequestMainDO.setUpdater(null);
String remarkMain =Optional.ofNullable(scrapRequestMainDO.getRemark()).orElse("");
String remarkSub=Optional.ofNullable(vo.getRemark()).orElse("");
BeanUtil.copyProperties(scrapRequestMainDO,vo,options);
if(vo.getQty() != null){
vo.setQty(vo.getQty().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getSinglePrice() != null){
vo.setSinglePrice(vo.getSinglePrice().setScale(2,RoundingMode.HALF_UP));
}
if(vo.getAmount() != null){
vo.setAmount(vo.getAmount().setScale(2,RoundingMode.HALF_UP));
}
vo.setRemarkMain(remarkMain);
vo.setRemark(remarkSub);
}
}
}
PageResult<ScrapRequestDetailRespVO> result = getScrapRequestDetailRespVOPageResult(pageResult);
return success(result);
}
@ -176,7 +147,7 @@ public class ScrapRequestDetailController {
@PreAuthorize("@ss.hasPermission('wms:scrap-request-detail:export')")
@OperateLog(type = EXPORT)
public void exportScrapRequestDetailExcel(@Valid ScrapRequestDetailExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
HttpServletResponse response) throws IOException {
List<ScrapRequestDetailDO> list = scrapRequestDetailService.getScrapRequestDetailList(exportReqVO);
// 导出 Excel
List<ScrapRequestDetailExcelVO> datas = ScrapRequestDetailConvert.INSTANCE.convertList02(list);

75
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestMainController.java

@ -1,26 +1,5 @@
package com.win.module.wms.controller.scrapRequest;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
import java.io.IOException;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
@ -38,11 +17,29 @@ import com.win.module.wms.dal.mysql.scrapRequest.ScrapRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.scrapRequest.ScrapRequestDetailService;
import com.win.module.wms.service.scrapRequest.ScrapRequestMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.context.annotation.Lazy;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import java.util.stream.Collectors;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 报废出库申请主")
@RestController
@ -138,10 +135,10 @@ public class ScrapRequestMainController {
@PostMapping("/import")
@Operation(summary = "导入报废出库请基本信息")
@Parameters({@Parameter(name = "file", description = "Excel 文件", required = true), @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")})
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")})
@PreAuthorize("@ss.hasPermission('wms:scrap-request-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response, @RequestParam("file") MultipartFile file, @RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ScrapRequestImportVO> list = ExcelUtils.read(file, ScrapRequestImportVO.class);
ConvertUtil<ScrapRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(ScrapRequestMainCreateReqVO.class);
List<ScrapRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
@ -183,31 +180,30 @@ public class ScrapRequestMainController {
private List<ScrapRequestMainExcelVO> getExcelVo(List<ScrapRequestDetailDO> detailDOList) {
List<ScrapRequestMainExcelVO> resultList = new ArrayList<>();
if (!CollectionUtils.isEmpty(detailDOList)) {
Set<Long> masterIdSet = new HashSet<>();
for (ScrapRequestDetailDO detailDO : detailDOList) {
masterIdSet.add(detailDO.getMasterId());
}
Set<Long> masterIdSet = detailDOList.stream().map(ScrapRequestDetailDO::getMasterId).collect(Collectors.toSet());
Map<Long, ScrapRequestMainDO> mainMap = scrapRequestMainMapper.queryMainListToMap(masterIdSet);
for (ScrapRequestDetailDO detailDO : detailDOList) {
Set<String> userIdSet = detailDOList.stream().map(ScrapRequestDetailDO::getCreator).collect(Collectors.toSet());
Map<String, String> userNicknameMap = userApi.getUserNicknameToString(userIdSet);
detailDOList.stream().iterator().forEachRemaining(detailDO -> {
ScrapRequestMainDO mainDO = mainMap.get(detailDO.getMasterId());
ScrapRequestMainExcelVO vo = ScrapRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
// if(mainDO != null ){
// vo.setRemarkMain(mainDO.getRemark());
// }
if(StringUtils.isNotEmpty(vo.getCreator())){
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
}
if(vo.getQty() != null){
vo.setCreator(Optional.ofNullable(userNicknameMap.get(vo.getCreator())).orElse(""));
if (vo.getQty() != null) {
vo.setQty(vo.getQty().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getSinglePrice() != null){
vo.setSinglePrice(vo.getSinglePrice().setScale(2,RoundingMode.HALF_UP));
if (vo.getSinglePrice() != null) {
vo.setSinglePrice(vo.getSinglePrice().setScale(2, RoundingMode.HALF_UP));
}
if(vo.getAmount() != null){
vo.setAmount(vo.getAmount().setScale(2,RoundingMode.HALF_UP));
if (vo.getAmount() != null) {
vo.setAmount(vo.getAmount().setScale(2, RoundingMode.HALF_UP));
}
resultList.add(vo);
}
});
}
return resultList;
}
@ -220,7 +216,8 @@ public class ScrapRequestMainController {
ScrapRequestMainRespVO result = ScrapRequestMainConvert.INSTANCE.convert(scrapRequestMain);
if (result == null) {
return success(result);
} ;
}
;
ScrapRequestDetailExportReqVO reqVO = new ScrapRequestDetailExportReqVO();
reqVO.setMasterId(result.getId());
List<ScrapRequestDetailDO> list = scrapRequestDetailService.getScrapRequestDetailList(reqVO);

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierinvoiceRecord/SupplierinvoiceRecordMainController.java

@ -165,11 +165,18 @@ public class SupplierinvoiceRecordMainController {
@Operation(summary = "获得供应商发票记录主分页")
public CommonResult<PageResult<SupplierinvoiceRecordMainRespVO>> getSupplierinvoiceRecordMainPage(@Valid SupplierinvoiceRecordMainPageReqVO pageVO) {
Long userId = getLoginUserId();
if("1".equals(pageVO.getIsLS())){//离散订单发票查看
pageVO.setOrderType("DISCRETE");//订单类型为离散
}
if (!ConstantDataInfo.ADMIN_LIST.contains(userId)) {
if("1".equals(pageVO.getIsLS())){//离散订单发票查看
pageVO.setProcurementCreator(String.valueOf(userId));//离散订单查看且非admin,把人员id赋值给采购审批字段
}
List<String> supplierCodeList = supplierUserMapper.querySupplierCodeByUserId(userId);
if (supplierCodeList.size() == 0) {
supplierCodeList.add("999999");// 一个不存在的供应商代码
}
pageVO.setSupplierCodeList(supplierCodeList);
} else {
pageVO.setSupplierCodeList(null);
@ -387,4 +394,12 @@ public class SupplierinvoiceRecordMainController {
Integer count = supplierinvoiceRecordMainService.reverse(createReqVO);
return success(count > 0);
}
@GetMapping("/discreteIsRead")
@Operation(summary = "离散订单的发票记录未读变已读")
@Parameter(name = "id", description = "编号", required = true)
public CommonResult<Boolean> discreteIsRead(Long id) {
Integer count = supplierinvoiceRecordMainService.discreteIsRead(id);
return success(count > 0);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierinvoiceRecord/vo/SupplierinvoiceRecordMainBaseVO.java

@ -202,4 +202,6 @@ public class SupplierinvoiceRecordMainBaseVO {
private BigDecimal rebateTax;
@Schema(description = "返利合计")
private BigDecimal rebateTotal;
@Schema(description = "离散订单发票采购人员是否已读0未读1已读")
private String isRead;
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierinvoiceRecord/vo/SupplierinvoiceRecordMainListReqVO.java

@ -99,6 +99,15 @@ public class SupplierinvoiceRecordMainListReqVO {
@Schema(description = "金税票号")
private String goldenTaxInvoiceNumber;
@Schema(description = "离散发票采购人员查看")
private String procurementCreator;
@Schema(description = "采购订单类型")
private String orderType;
@Schema(description = "离散订单发票采购人员是否已读0未读1已读")
private String isRead;
}

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierinvoiceRecord/vo/SupplierinvoiceRecordMainPageReqVO.java

@ -106,4 +106,16 @@ public class SupplierinvoiceRecordMainPageReqVO extends PageParam {
@Schema(description = "金税票号")
private String goldenTaxInvoiceNumber;
@Schema(description = "采购人员为空或者null表示admin查看")
private String procurementCreator;
@Schema(description = "采购订单类型")
private String orderType;
@Schema(description = "是否离散数据查询1是")
private String isLS;
@Schema(description = "是否已读0未读1已读")
private String isRead;
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productreceiptRecord/ProductreceiptRecordDetailDO.java

@ -203,4 +203,9 @@ public class ProductreceiptRecordDetailDO extends BaseDO {
*/
private String type;
/**
* 隔离收货状态确认(0-待确认蓝色1-已接收绿色2-已拒绝红色))
*/
private String receiveStatus;
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/supplierinvoiceRecord/SupplierinvoiceRecordMainDO.java

@ -308,4 +308,8 @@ public class SupplierinvoiceRecordMainDO extends BaseDO {
* 返利价税合计返利未税金额+返利税额
*/
private BigDecimal rebateTotal;
/**
* 离散订单发票采购人员是否已读0未读1已读
*/
private String isRead;
}

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobMainMapper.java

@ -1,11 +1,6 @@
package com.win.module.wms.dal.mysql.countJob;
import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
@ -17,6 +12,10 @@ import com.win.module.wms.controller.countJob.vo.CountJobMainExportReqVO;
import com.win.module.wms.controller.countJob.vo.CountJobMainPageReqVO;
import com.win.module.wms.dal.dataobject.countJob.CountJobMainDO;
import com.win.module.wms.enums.job.JobStatusEnum;
import org.apache.ibatis.annotations.Mapper;
import java.util.*;
import java.util.stream.Collectors;
/**
* 盘点任务主 Mapper
@ -49,7 +48,7 @@ public interface CountJobMainMapper extends BaseMapperX<CountJobMainDO> {
.likeIfPresent(CountJobMainDO::getAllowSmallerQty, reqVO.getAllowSmallerQty()).likeIfPresent(CountJobMainDO::getAllowModifInventoryStatus, reqVO.getAllowModifInventoryStatus())
.likeIfPresent(CountJobMainDO::getAllowContinuousScanning, reqVO.getAllowContinuousScanning()).likeIfPresent(CountJobMainDO::getAllowPartialComplete, reqVO.getAllowPartialComplete())
.likeIfPresent(CountJobMainDO::getAllowModifyBatch, reqVO.getAllowModifyBatch()).likeIfPresent(CountJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber())
.orderByDesc(CountJobMainDO::getCreateTime));
.orderByDesc(CountJobMainDO::getCreateTime).orderByDesc(CountJobMainDO::getId));
}
@DataScope(deptAlias = "job_count_main")

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptRecord/ProductreceiptRecordDetailMapper.java

@ -191,4 +191,9 @@ public interface ProductreceiptRecordDetailMapper extends BaseMapperX<Productrec
}
default List<ProductreceiptRecordDetailDO> selectListByMasterId(Long masterId){
LambdaQueryWrapperX<ProductreceiptRecordDetailDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<>();
lambdaQueryWrapperX.eq(ProductreceiptRecordDetailDO::getMasterId,masterId);
return selectList(lambdaQueryWrapperX);
}
}

56
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplierinvoiceRecord/SupplierinvoiceRecordMainMapper.java

@ -11,7 +11,9 @@ import com.win.module.wms.controller.supplierinvoiceRecord.vo.SupplierinvoiceRec
import com.win.module.wms.controller.supplierinvoiceRecord.vo.SupplierinvoiceRecordMainListReqVO;
import com.win.module.wms.controller.supplierinvoiceRecord.vo.SupplierinvoiceRecordMainPageReqVO;
import com.win.module.wms.convert.supplierinvoiceRecord.SupplierinvoiceRecordDeatilConvert;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
import com.win.module.wms.dal.dataobject.supplierinvoiceRecord.SupplierinvoiceRecordMainDO;
import com.win.module.wms.enums.common.ConstantDataInfo;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Mapper;
@ -21,6 +23,8 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
/**
* 供应商发票记录主 Mapper
*
@ -35,15 +39,18 @@ public interface SupplierinvoiceRecordMainMapper extends BaseMapperX<Supplierinv
default LambdaQueryWrapperX<SupplierinvoiceRecordMainDO> getSelectWrapper(SupplierinvoiceRecordMainListReqVO reqVO) {
LambdaQueryWrapperX<SupplierinvoiceRecordMainDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<SupplierinvoiceRecordMainDO>()
.eqIfPresent(SupplierinvoiceRecordMainDO::getBalanceStatementStatus, reqVO.getBalanceStatementStatus())
.eqIfPresent(SupplierinvoiceRecordMainDO::getRequestNumber, reqVO.getRequestNumber()).eqIfPresent(SupplierinvoiceRecordMainDO::getSupplierCode, reqVO.getSupplierCode())
.eqIfPresent(SupplierinvoiceRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType()).eqIfPresent(SupplierinvoiceRecordMainDO::getInTransactionType, reqVO.getInTransactionType())
.betweenIfPresent(SupplierinvoiceRecordMainDO::getExecuteTime, reqVO.getExecuteTime()).betweenIfPresent(SupplierinvoiceRecordMainDO::getPostingDate, reqVO.getPostingDate())
.betweenIfPresent(SupplierinvoiceRecordMainDO::getActiveDate, reqVO.getActiveDate()).betweenIfPresent(SupplierinvoiceRecordMainDO::getRequestTime, reqVO.getRequestTime())
.betweenIfPresent(SupplierinvoiceRecordMainDO::getDueTime, reqVO.getDueTime()).eqIfPresent(SupplierinvoiceRecordMainDO::getDepartmentCode, reqVO.getDepartmentCode())
.eqIfPresent(SupplierinvoiceRecordMainDO::getInterfaceType, reqVO.getInterfaceType()).eqIfPresent(SupplierinvoiceRecordMainDO::getNumber, reqVO.getNumber())
.eqIfPresent(SupplierinvoiceRecordMainDO::getBusinessType, reqVO.getBusinessType()).eqIfPresent(SupplierinvoiceRecordMainDO::getRemark, reqVO.getRemark())
.betweenIfPresent(SupplierinvoiceRecordMainDO::getCreateTime, reqVO.getCreateTime()).eqIfPresent(SupplierinvoiceRecordMainDO::getCreator, reqVO.getCreator())
.eqIfPresent(SupplierinvoiceRecordMainDO::getCode, reqVO.getCode())
.eqIfPresent(SupplierinvoiceRecordMainDO::getOrderType, reqVO.getOrderType())
.eqIfPresent(SupplierinvoiceRecordMainDO::getIsRead, reqVO.getIsRead())
.eqIfPresent(SupplierinvoiceRecordMainDO::getProcurementCreator, reqVO.getProcurementCreator())
.eqIfPresent(SupplierinvoiceRecordMainDO::getRequestNumber, reqVO.getRequestNumber()).eqIfPresent(SupplierinvoiceRecordMainDO::getSupplierCode, reqVO.getSupplierCode())
.eqIfPresent(SupplierinvoiceRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType()).eqIfPresent(SupplierinvoiceRecordMainDO::getInTransactionType, reqVO.getInTransactionType())
.betweenIfPresent(SupplierinvoiceRecordMainDO::getExecuteTime, reqVO.getExecuteTime()).betweenIfPresent(SupplierinvoiceRecordMainDO::getPostingDate, reqVO.getPostingDate())
.betweenIfPresent(SupplierinvoiceRecordMainDO::getActiveDate, reqVO.getActiveDate()).betweenIfPresent(SupplierinvoiceRecordMainDO::getRequestTime, reqVO.getRequestTime())
.betweenIfPresent(SupplierinvoiceRecordMainDO::getDueTime, reqVO.getDueTime()).eqIfPresent(SupplierinvoiceRecordMainDO::getDepartmentCode, reqVO.getDepartmentCode())
.eqIfPresent(SupplierinvoiceRecordMainDO::getInterfaceType, reqVO.getInterfaceType()).eqIfPresent(SupplierinvoiceRecordMainDO::getNumber, reqVO.getNumber())
.eqIfPresent(SupplierinvoiceRecordMainDO::getBusinessType, reqVO.getBusinessType()).eqIfPresent(SupplierinvoiceRecordMainDO::getRemark, reqVO.getRemark())
.betweenIfPresent(SupplierinvoiceRecordMainDO::getCreateTime, reqVO.getCreateTime()).eqIfPresent(SupplierinvoiceRecordMainDO::getCreator, reqVO.getCreator())
.eqIfPresent(SupplierinvoiceRecordMainDO::getCode, reqVO.getCode())
.eqIfPresent(SupplierinvoiceRecordMainDO::getStatus, reqVO.getStatus())
.likeIfPresent(SupplierinvoiceRecordMainDO::getGoldenTaxInvoiceNumber, reqVO.getGoldenTaxInvoiceNumber())
.eqIfPresent(SupplierinvoiceRecordMainDO::getAvailable, reqVO.getAvailable()).last(orderStr);
@ -53,15 +60,15 @@ public interface SupplierinvoiceRecordMainMapper extends BaseMapperX<Supplierinv
if (reqVO.getCheckNums() != null && reqVO.getCheckNums().length != 0) {
lambdaQueryWrapperX.in(SupplierinvoiceRecordMainDO::getNumber, reqVO.getCheckNums());
}
if (StringUtils.isNotEmpty(reqVO.getAsnBillNum())){
if (StringUtils.isNotEmpty(reqVO.getAsnBillNum())) {
StringBuilder builder = new StringBuilder();
builder.append("select master_id from record_supplierinvoice_detail where deleted = 0 and asn_bill_num= '"+reqVO.getAsnBillNum()+"'");
lambdaQueryWrapperX.inSql(SupplierinvoiceRecordMainDO::getId,builder.toString());
builder.append("select master_id from record_supplierinvoice_detail where deleted = 0 and asn_bill_num= '" + reqVO.getAsnBillNum() + "'");
lambdaQueryWrapperX.inSql(SupplierinvoiceRecordMainDO::getId, builder.toString());
}
//20240818默认显示数据过掉作废的数据
if (StringUtils.isEmpty(reqVO.getStatus()) && StringUtils.isEmpty(reqVO.getStatuss())) {
lambdaQueryWrapperX.ne(SupplierinvoiceRecordMainDO::getStatus, "10");
}else{
} else {
String[] split = reqVO.getStatuss().split(",");
lambdaQueryWrapperX.in(SupplierinvoiceRecordMainDO::getStatus, split);
}
@ -78,15 +85,28 @@ public interface SupplierinvoiceRecordMainMapper extends BaseMapperX<Supplierinv
default PageResult<SupplierinvoiceRecordMainDO> selectSenior(CustomConditions conditions) {
//20240816发票申请默认查询过滤掉status = 10 作废的状态
boolean selectStatus = false;
QueryWrapper wrapper = QueryWrapperUtils.structure(conditions).last(orderStr);
List<String> excludeConditions = new ArrayList<>();
excludeConditions.add("isLS");
QueryWrapper wrapper = QueryWrapperUtils.structureFilter(conditions, excludeConditions);
List<CustomConditions.Condition> filters = conditions.getFilters();
for(CustomConditions.Condition fi:filters){
if ("status".equals(fi.getColumn())){
for (CustomConditions.Condition fi : filters) {
if ("status".equals(fi.getColumn())) {
selectStatus = true;
}
//202409201431 HL-6075 SCP正式环境,供应商发票下方增加模块:采购离散订单查看。具体功能见下方描述。
if ("isLS".equals(fi.getColumn()) && "1".equals(fi.getValue())) {
Long userId = getLoginUserId();
wrapper.eq("order_type", "DISCRETE");//订单类型为离散
if (!ConstantDataInfo.ADMIN_LIST.contains(userId)) {//离散订单查看且非admin,把人员id赋值给采购审批字段 admin查看全部
wrapper.eq("procurement_creator", userId);
}
}
if ("isRead".equals(fi.getColumn())) {
wrapper.eq("is_read", fi.getValue());//is_read离散订单发票采购人员是否已读0未读1已读
}
}
if (!selectStatus){//高级筛选没有选择状态则给默认过滤作废状态
wrapper.ne("status","10");
if (!selectStatus) {//高级筛选没有选择状态则给默认过滤作废状态
wrapper.ne("status", "10");
}
return selectPage(conditions, wrapper);
}

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java

@ -12,6 +12,8 @@ import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.util.StringUtils;
import com.win.module.wms.controller.countJob.vo.*;
import com.win.module.wms.controller.itemarea.vo.ItemareaExportReqVO;
import com.win.module.wms.controller.itempackage.vo.ItempackageExportReqVO;
import com.win.module.wms.convert.countJob.CountJobDetailConvert;
import com.win.module.wms.convert.countJob.CountJobMainConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
@ -24,12 +26,15 @@ import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO;
import com.win.module.wms.dal.dataobject.itemarea.ItemareaDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.itempackage.ItempackageDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.mysql.countJob.CountJobDetailMapper;
import com.win.module.wms.dal.mysql.countJob.CountJobMainMapper;
import com.win.module.wms.dal.mysql.countRequest.CountRequestDetailMapper;
import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper;
import com.win.module.wms.dal.mysql.itemarea.ItemareaMapper;
import com.win.module.wms.dal.mysql.itembasic.ItembasicMapper;
import com.win.module.wms.dal.mysql.itempackage.ItempackageMapper;
import com.win.module.wms.dal.mysql.location.LocationMapper;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.job.JobStatusState;
@ -72,6 +77,8 @@ public class CountJobMainServiceImpl implements CountJobMainService {
@Resource
private BalanceService balanceService;
@Resource
private ItempackageMapper itempackageMapper;
@Resource
private JobUtils jobUtils;
@Resource
private LocationMapper locationMapper;
@ -187,6 +194,7 @@ public class CountJobMainServiceImpl implements CountJobMainService {
throw exception(COUNT_JOB_MAIN_STATUS_ERROR);
}
countJobMainDO.setStatus(jobStatusState.getState().getCode());
balanceService.changeBalanceFrozen(countJobMainDO.getRequestNumber(),countJobMainDO.getPlanNumber(),null);
trendsApi.createTrends(id, "job_count_main", "关闭了盘点任务", TrendsTypeEnum.JOB_CLOSE, String.valueOf(getLoginUserId()));
// 移除预计入
expectinService.deleteExpectinByJobNumber(countJobMainDO.getNumber());
@ -245,6 +253,7 @@ public class CountJobMainServiceImpl implements CountJobMainService {
}else{
locationDOList = locationMapper.selectList(ignoreLocationList,countRange);
}
List<ItempackageDO> itempackageList = itempackageMapper.selectList(new ItempackageExportReqVO().setAvailable("TRUE"));
ServiceException tempEx = null;
for (CountJobDetailUpdateReqVO countJobDetailUpdateReqVO : countJobDetailUpdateReqVOList) {
try{
@ -261,6 +270,14 @@ public class CountJobMainServiceImpl implements CountJobMainService {
// if (!rangeSame) {
// throw exception(COUNT_RANGE_ERROR,countJobDetailUpdateReqVO.getItemCode());
// }
// todo 物料库区中取不到包装时根据开关决定抛异常或取默认包装
ItempackageDO itempackageDO = itempackageList.stream().filter(item ->
Objects.equals(item.getItemCode(), countJobDetailUpdateReqVO.getItemCode()) &&
Objects.equals(item.getDefaultPackageunit(), "TRUE")
).findFirst().orElse(null);
if (itempackageDO == null) {
throw exception(ITEM_PACKAGE_DEFAULT_PACKAGEUNIT_EXISTS, countJobDetailUpdateReqVO.getItemCode());
}
if (ignoreItemList.contains(countJobDetailUpdateReqVO.getItemCode().trim())) {
throw exception(COUNT_IGNORE_ITEM_ERROR, countJobDetailUpdateReqVO.getItemCode().trim());
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordDetailStoreServiceImpl.java

@ -33,7 +33,7 @@ public class ProductionreturnRecordDetailStoreServiceImpl extends Productionretu
@Override
public List<ProductionreturnRecordDetailDO> getProductionreturnRecordDetailList(ProductionreturnRecordDetailExportReqVO exportReqVO) {
exportReqVO.setBusinessType("ReturnToHold");
exportReqVO.setBusinessType("ReturnToStore");
return super.getProductionreturnRecordDetailList(exportReqVO);
}

328
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java

@ -58,6 +58,7 @@ import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordDet
import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordMainMapper;
import com.win.module.wms.dal.mysql.productreceiptRequest.ProductreceiptRequestDetailMapper;
import com.win.module.wms.dal.mysql.productreceiptRequest.ProductreceiptRequestMainMapper;
import com.win.module.wms.enums.common.HoldReceiveTypeEnum;
import com.win.module.wms.enums.common.InventoryStatusEnum;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.job.JobStatusState;
@ -385,8 +386,15 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
productreceiptRecordMainDO.setInterfaceType(recordsettingService.selectRecordsettingExist("ProductPutawayRecord").getInterfaceType());
// 增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptRecord", "制品收货记录");
boolean inventorymoveConfirmationSwitchFlag = false;
if ("scrap".equals(productreceiptJobMainDO.getType())) {
businesstypeDO = businesstypeService.selectBusinesstypeExist("ProductReceiptScrap");
// 隔离报工是否确认接收开关
String productreceiptScrapConfirmationSwitch = switchService.selectSwitchExist("productreceiptScrapConfirmationSwitch").getEffectiveSetValue();
if("TRUE".equals(productreceiptScrapConfirmationSwitch)){
log.debug("隔离报工启确认接收功能,任务单号:{}",productreceiptJobMainDO.getNumber());
inventorymoveConfirmationSwitchFlag = true;
}
}
String inTransactionType = businesstypeDO.getInTransactionType();
String outTransactionType = businesstypeDO.getOutTransactionType();
@ -404,6 +412,7 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
// 库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
ArrayList<ProductreceiptDetailbDO> productreceiptDetailbDetailbDOS = new ArrayList<>();
boolean finalInventorymoveConfirmationSwitchFlag = inventorymoveConfirmationSwitchFlag;
subList.forEach(subListItem -> {
// 获取参数中recordLst
productreceiptJobDetailUpdateReqVOList.forEach(DetailUpdateItem -> {
@ -442,6 +451,11 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
if ("scrap".equals(productreceiptJobMainDO.getType())) {// 报废收货与申请保持一致
// 2024-07-15 问题TB号:HL-3493 要求:增加到库位选择逻辑,库存状态先默认“隔离”
productreceiptRecordDetailDO.setInventoryStatus(InventoryStatusEnum.HOLD.getCode());
if(finalInventorymoveConfirmationSwitchFlag){
productreceiptRecordDetailDO.setReceiveStatus(HoldReceiveTypeEnum.TO_BE_CONFIRMED.getCode());// 待确认
}else {
productreceiptRecordDetailDO.setReceiveStatus(HoldReceiveTypeEnum.RECEIVED.getCode());//已接收
}
}
// 根据 to库位 查询 库位组 库区
LocationDO locationDO = locationService.selectLocation(DetailUpdateItem.getToLocationCode());
@ -462,160 +476,159 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
}
productreceiptRecordDetailMapper.insert(productreceiptRecordDetailDO);
productreceiptRecordDetailDOList.add(productreceiptRecordDetailDO); // 不用批量执行 因为要用到返回的id 赋值回冲用
// 判断物料器具处理
boolean isContainer = itemCodeIsContainer(productreceiptRecordDetailDO.getItemCode());
// 添加库存事务list
// 入动作
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVO);
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(inTransactionType);
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(productreceiptRecordMainDO.getBusinessType());
transactionCreateReqVO.setOwnerCode(productreceiptRecordDetailDO.getToOwnerCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber(productreceiptRecordDetailDO.getPackingNumber());
transactionCreateReqVO.setBatch(productreceiptRecordDetailDO.getBatch());
transactionCreateReqVO.setContainerNumber(productreceiptRecordDetailDO.getContainerNumber());
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode(productreceiptRecordMainDO.getToWarehouseCode());
// 判断物料是否为器具
if (isContainer) {
BusinesstypeDO businesstypeDO1 = businesstypeService.selectBusinesstypeExist(productreceiptRecordMainDO.getBusinessType());
String inAreaTypes = businesstypeDO1.getInAreaTypes();
if (StringUtils.isNotEmpty(inAreaTypes)) {
String[] areaTypeArray = inAreaTypes.split(",");
List<String> areaTypeList = Arrays.asList(areaTypeArray);
QueryWrapper<AreabasicDO> areabasicDOQueryWrapper = new QueryWrapper<>();
areabasicDOQueryWrapper.in("type", areaTypeList);
List<AreabasicDO> areabasicDOS = areabasicMapper.selectList(areabasicDOQueryWrapper);
if (areabasicDOS != null && areabasicDOS.size() > 0) {
List<LocationDO> locationDOS = locationMapper.selectList("area_code", areabasicDOS.get(0));
if (locationDOS != null && locationDOS.size() > 0) {
LocationDO locationDOTemp = locationDOS.get(0);
transactionCreateReqVO.setLocationCode(locationDOTemp.getCode());
transactionCreateReqVO.setLocationGroupCode(locationDOTemp.getLocationGroupCode());
transactionCreateReqVO.setAreaCode(locationDOTemp.getAreaCode());
}
}
}
} else {
transactionCreateReqVO.setLocationCode(DetailUpdateItem.getToLocationCode());
}
LocationDO locationDOTransaction = locationService.queryByCode(DetailUpdateItem.getToLocationCode());
transactionCreateReqVO.setLocationGroupCode(locationDOTransaction.getLocationGroupCode());
transactionCreateReqVO.setAreaCode(locationDOTransaction.getAreaCode());
transactionCreateReqVO.setWarehouseCode(locationDOTransaction.getWarehouseCode());
transactionCreateReqVO.setArriveDate(LocalDateTime.now());
transactionCreateReqVO.setProduceDate(productreceiptRecordDetailDO.getProduceDate());
transactionCreateReqVO.setExpireDate(productreceiptRecordDetailDO.getExpireDate());
transactionCreateReqVO.setActiveTime(LocalDateTime.now());
// 根据 库位 获取 库区DO
AreabasicDO areabasicDO = jobUtils.getAreabasicDO(transactionCreateReqVO.getLocationCode());
transactionCreateReqVO.setAreaType(areabasicDO.getType());
transactionCreateReqVO.setAreaCode(areabasicDO.getCode());
// 按照实际扫描箱码 查询 包装信息 获取包装规格和标包数
PackageDO packageDO = packageService.getPackageByNumber(transactionCreateReqVO.getPackingNumber());
if (packageDO == null) {
transactionCreateReqVO.setPackUnit(null);
transactionCreateReqVO.setPackQty(BigDecimal.ZERO);
} else {
transactionCreateReqVO.setPackUnit(packageDO.getPackUnit());
transactionCreateReqVO.setPackQty(packageDO.getPackQty());
}
// transactionCreateReqVO.setPackUnit(jobUtils.getItemareaDO(transactionCreateReqVO.getItemCode(),
// areabasicDO.getCode()).getInPackUnit());
// transactionCreateReqVO.setPackQty(jobUtils.getItempackageDO(transactionCreateReqVO.getItemCode(),
// transactionCreateReqVO.getPackUnit()).getPackQty());
transactionCreateReqVO.setSiteId(productreceiptRecordDetailDO.getSiteId());
transactionCreateReqVOList.add(transactionCreateReqVO);
// 判断物料是否为器具
if (isContainer) {
// 库存事务 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOOut);
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setBusinessType(productreceiptRecordMainDO.getBusinessType());
transactionCreateReqVOOut.setOwnerCode(productreceiptRecordDetailDO.getToOwnerCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setPackingNumber(productreceiptRecordDetailDO.getPackingNumber());
transactionCreateReqVOOut.setBatch(productreceiptRecordDetailDO.getBatch());
transactionCreateReqVOOut.setContainerNumber(productreceiptRecordDetailDO.getContainerNumber());
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setWarehouseCode(productreceiptRecordMainDO.getToWarehouseCode());
BusinesstypeDO businesstypeDO1 = businesstypeService.selectBusinesstypeExist(productreceiptRecordMainDO.getBusinessType());
String inAreaTypes = businesstypeDO1.getInAreaTypes();
if (StringUtils.isNotEmpty(inAreaTypes)) {
String[] areaTypeArray = inAreaTypes.split(",");
List<String> areaTypeList = Arrays.asList(areaTypeArray);
QueryWrapper<AreabasicDO> areabasicDOQueryWrapper = new QueryWrapper<>();
areabasicDOQueryWrapper.in("type", areaTypeList);
List<AreabasicDO> areabasicDOS = areabasicMapper.selectList(areabasicDOQueryWrapper);
if (areabasicDOS != null && areabasicDOS.size() > 0) {
List<LocationDO> locationDOS = locationMapper.selectList("area_code", areabasicDOS.get(0));
if (locationDOS != null && locationDOS.size() > 0) {
LocationDO locationDOTemp = locationDOS.get(0);
transactionCreateReqVOOut.setLocationCode(locationDOTemp.getCode());
transactionCreateReqVOOut.setLocationGroupCode(locationDOTemp.getLocationGroupCode());
transactionCreateReqVOOut.setAreaCode(locationDOTemp.getAreaCode());
if(!finalInventorymoveConfirmationSwitchFlag){
// 判断物料器具处理
boolean isContainer = itemCodeIsContainer(productreceiptRecordDetailDO.getItemCode());
// 添加库存事务list
// 入动作
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVO);
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(inTransactionType);
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(productreceiptRecordMainDO.getBusinessType());
transactionCreateReqVO.setOwnerCode(productreceiptRecordDetailDO.getToOwnerCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber(productreceiptRecordDetailDO.getPackingNumber());
transactionCreateReqVO.setBatch(productreceiptRecordDetailDO.getBatch());
transactionCreateReqVO.setContainerNumber(productreceiptRecordDetailDO.getContainerNumber());
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode(productreceiptRecordMainDO.getToWarehouseCode());
// 判断物料是否为器具
if (isContainer) {
BusinesstypeDO businesstypeDO1 = businesstypeService.selectBusinesstypeExist(productreceiptRecordMainDO.getBusinessType());
String inAreaTypes = businesstypeDO1.getInAreaTypes();
if (StringUtils.isNotEmpty(inAreaTypes)) {
String[] areaTypeArray = inAreaTypes.split(",");
List<String> areaTypeList = Arrays.asList(areaTypeArray);
QueryWrapper<AreabasicDO> areabasicDOQueryWrapper = new QueryWrapper<>();
areabasicDOQueryWrapper.in("type", areaTypeList);
List<AreabasicDO> areabasicDOS = areabasicMapper.selectList(areabasicDOQueryWrapper);
if (areabasicDOS != null && areabasicDOS.size() > 0) {
List<LocationDO> locationDOS = locationMapper.selectList("area_code", areabasicDOS.get(0));
if (locationDOS != null && locationDOS.size() > 0) {
LocationDO locationDOTemp = locationDOS.get(0);
transactionCreateReqVO.setLocationCode(locationDOTemp.getCode());
transactionCreateReqVO.setLocationGroupCode(locationDOTemp.getLocationGroupCode());
transactionCreateReqVO.setAreaCode(locationDOTemp.getAreaCode());
}
}
}
} else {
transactionCreateReqVO.setLocationCode(DetailUpdateItem.getToLocationCode());
}
transactionCreateReqVOOut.setArriveDate(LocalDateTime.now());
transactionCreateReqVOOut.setProduceDate(productreceiptRecordDetailDO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(productreceiptRecordDetailDO.getExpireDate());
transactionCreateReqVOOut.setActiveTime(LocalDateTime.now());
LocationDO locationDOTransaction = locationService.queryByCode(DetailUpdateItem.getToLocationCode());
transactionCreateReqVO.setLocationGroupCode(locationDOTransaction.getLocationGroupCode());
transactionCreateReqVO.setAreaCode(locationDOTransaction.getAreaCode());
transactionCreateReqVO.setWarehouseCode(locationDOTransaction.getWarehouseCode());
transactionCreateReqVO.setArriveDate(LocalDateTime.now());
transactionCreateReqVO.setProduceDate(productreceiptRecordDetailDO.getProduceDate());
transactionCreateReqVO.setExpireDate(productreceiptRecordDetailDO.getExpireDate());
transactionCreateReqVO.setActiveTime(LocalDateTime.now());
// 根据 库位 获取 库区DO
AreabasicDO areabasicDOOut = jobUtils.getAreabasicDO(transactionCreateReqVOOut.getLocationCode());
transactionCreateReqVOOut.setAreaType(areabasicDOOut.getType());
transactionCreateReqVOOut.setAreaCode(areabasicDOOut.getCode());
AreabasicDO areabasicDO = jobUtils.getAreabasicDO(transactionCreateReqVO.getLocationCode());
transactionCreateReqVO.setAreaType(areabasicDO.getType());
transactionCreateReqVO.setAreaCode(areabasicDO.getCode());
// 按照实际扫描箱码 查询 包装信息 获取包装规格和标包数
PackageDO packageDOOut = packageService.getPackageByNumber(transactionCreateReqVOOut.getPackingNumber());
if (packageDOOut == null) {
transactionCreateReqVOOut.setPackUnit(null);
transactionCreateReqVOOut.setPackQty(BigDecimal.ZERO);
PackageDO packageDO = packageService.getPackageByNumber(transactionCreateReqVO.getPackingNumber());
if (packageDO == null) {
transactionCreateReqVO.setPackUnit(null);
transactionCreateReqVO.setPackQty(BigDecimal.ZERO);
} else {
transactionCreateReqVOOut.setPackUnit(packageDOOut.getPackUnit());
transactionCreateReqVOOut.setPackQty(packageDOOut.getPackQty());
transactionCreateReqVO.setPackUnit(packageDO.getPackUnit());
transactionCreateReqVO.setPackQty(packageDO.getPackQty());
}
// transactionCreateReqVOOut.setPackUnit(jobUtils.getItemareaDO(transactionCreateReqVOOut.getItemCode(),
// areabasicDOOut.getCode()).getInPackUnit());
// transactionCreateReqVOOut.setPackQty(jobUtils.getItempackageDO(transactionCreateReqVOOut.getItemCode(),
// transactionCreateReqVOOut.getPackUnit()).getPackQty());
transactionCreateReqVOOut.setSiteId(productreceiptRecordDetailDO.getSiteId());
transactionCreateReqVOList.add(transactionCreateReqVOOut);
}
if ("assemble".equals(productreceiptRecordMainDO.getType())) {
for (ProductreceiptDetailbUpdateReqVO productreceiptDetailbUpdateReqVO : DetailUpdateItem.getFgList()) {
ProductreceiptDetailbCreateReqVO productreceiptDetailbCreateReqVO = new ProductreceiptDetailbCreateReqVO();
productreceiptDetailbCreateReqVO.setPackingNumber(subListItem.getPackingNumber());
productreceiptDetailbCreateReqVO.setBatch(subListItem.getBatch());
productreceiptDetailbCreateReqVO.setNumber(subListItem.getNumber());
productreceiptDetailbCreateReqVO.setMasterId(productreceiptRecordDetailDO.getId());
productreceiptDetailbCreateReqVO.setItemCode(subListItem.getItemCode());
productreceiptDetailbCreateReqVO.setItemName(subListItem.getItemName());
productreceiptDetailbCreateReqVO.setOutsideItemCode(productreceiptDetailbUpdateReqVO.getOutsideItemCode());
productreceiptDetailbCreateReqVO.setOutsideProduceDate(productreceiptDetailbUpdateReqVO.getOutsideProduceDate());
productreceiptDetailbCreateReqVO.setOutsideSerialNumber(productreceiptDetailbUpdateReqVO.getOutsideSerialNumber());
productreceiptDetailbCreateReqVO.setRemark(productreceiptDetailbUpdateReqVO.getContent());
ProductreceiptDetailbDO productreceiptDetailbDO = ProductreceiptDetailbConvert.INSTANCE.convert(productreceiptDetailbCreateReqVO);
productreceiptDetailbDetailbDOS.add(productreceiptDetailbDO);
// transactionCreateReqVO.setPackUnit(jobUtils.getItemareaDO(transactionCreateReqVO.getItemCode(),
// areabasicDO.getCode()).getInPackUnit());
// transactionCreateReqVO.setPackQty(jobUtils.getItempackageDO(transactionCreateReqVO.getItemCode(),
// transactionCreateReqVO.getPackUnit()).getPackQty());
transactionCreateReqVO.setSiteId(productreceiptRecordDetailDO.getSiteId());
transactionCreateReqVOList.add(transactionCreateReqVO);
// 判断物料是否为器具
if (isContainer) {
// 库存事务 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOOut);
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setBusinessType(productreceiptRecordMainDO.getBusinessType());
transactionCreateReqVOOut.setOwnerCode(productreceiptRecordDetailDO.getToOwnerCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setPackingNumber(productreceiptRecordDetailDO.getPackingNumber());
transactionCreateReqVOOut.setBatch(productreceiptRecordDetailDO.getBatch());
transactionCreateReqVOOut.setContainerNumber(productreceiptRecordDetailDO.getContainerNumber());
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setWarehouseCode(productreceiptRecordMainDO.getToWarehouseCode());
BusinesstypeDO businesstypeDO1 = businesstypeService.selectBusinesstypeExist(productreceiptRecordMainDO.getBusinessType());
String inAreaTypes = businesstypeDO1.getInAreaTypes();
if (StringUtils.isNotEmpty(inAreaTypes)) {
String[] areaTypeArray = inAreaTypes.split(",");
List<String> areaTypeList = Arrays.asList(areaTypeArray);
QueryWrapper<AreabasicDO> areabasicDOQueryWrapper = new QueryWrapper<>();
areabasicDOQueryWrapper.in("type", areaTypeList);
List<AreabasicDO> areabasicDOS = areabasicMapper.selectList(areabasicDOQueryWrapper);
if (areabasicDOS != null && areabasicDOS.size() > 0) {
List<LocationDO> locationDOS = locationMapper.selectList("area_code", areabasicDOS.get(0));
if (locationDOS != null && locationDOS.size() > 0) {
LocationDO locationDOTemp = locationDOS.get(0);
transactionCreateReqVOOut.setLocationCode(locationDOTemp.getCode());
transactionCreateReqVOOut.setLocationGroupCode(locationDOTemp.getLocationGroupCode());
transactionCreateReqVOOut.setAreaCode(locationDOTemp.getAreaCode());
}
}
}
transactionCreateReqVOOut.setArriveDate(LocalDateTime.now());
transactionCreateReqVOOut.setProduceDate(productreceiptRecordDetailDO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(productreceiptRecordDetailDO.getExpireDate());
transactionCreateReqVOOut.setActiveTime(LocalDateTime.now());
// 根据 库位 获取 库区DO
AreabasicDO areabasicDOOut = jobUtils.getAreabasicDO(transactionCreateReqVOOut.getLocationCode());
transactionCreateReqVOOut.setAreaType(areabasicDOOut.getType());
transactionCreateReqVOOut.setAreaCode(areabasicDOOut.getCode());
// 按照实际扫描箱码 查询 包装信息 获取包装规格和标包数
PackageDO packageDOOut = packageService.getPackageByNumber(transactionCreateReqVOOut.getPackingNumber());
if (packageDOOut == null) {
transactionCreateReqVOOut.setPackUnit(null);
transactionCreateReqVOOut.setPackQty(BigDecimal.ZERO);
} else {
transactionCreateReqVOOut.setPackUnit(packageDOOut.getPackUnit());
transactionCreateReqVOOut.setPackQty(packageDOOut.getPackQty());
}
// transactionCreateReqVOOut.setPackUnit(jobUtils.getItemareaDO(transactionCreateReqVOOut.getItemCode(),
// areabasicDOOut.getCode()).getInPackUnit());
// transactionCreateReqVOOut.setPackQty(jobUtils.getItempackageDO(transactionCreateReqVOOut.getItemCode(),
// transactionCreateReqVOOut.getPackUnit()).getPackQty());
transactionCreateReqVOOut.setSiteId(productreceiptRecordDetailDO.getSiteId());
transactionCreateReqVOList.add(transactionCreateReqVOOut);
}
if ("assemble".equals(productreceiptRecordMainDO.getType())) {
for (ProductreceiptDetailbUpdateReqVO productreceiptDetailbUpdateReqVO : DetailUpdateItem.getFgList()) {
ProductreceiptDetailbCreateReqVO productreceiptDetailbCreateReqVO = new ProductreceiptDetailbCreateReqVO();
productreceiptDetailbCreateReqVO.setPackingNumber(subListItem.getPackingNumber());
productreceiptDetailbCreateReqVO.setBatch(subListItem.getBatch());
productreceiptDetailbCreateReqVO.setNumber(subListItem.getNumber());
productreceiptDetailbCreateReqVO.setMasterId(productreceiptRecordDetailDO.getId());
productreceiptDetailbCreateReqVO.setItemCode(subListItem.getItemCode());
productreceiptDetailbCreateReqVO.setItemName(subListItem.getItemName());
productreceiptDetailbCreateReqVO.setOutsideItemCode(productreceiptDetailbUpdateReqVO.getOutsideItemCode());
productreceiptDetailbCreateReqVO.setOutsideProduceDate(productreceiptDetailbUpdateReqVO.getOutsideProduceDate());
productreceiptDetailbCreateReqVO.setOutsideSerialNumber(productreceiptDetailbUpdateReqVO.getOutsideSerialNumber());
productreceiptDetailbCreateReqVO.setRemark(productreceiptDetailbUpdateReqVO.getContent());
ProductreceiptDetailbDO productreceiptDetailbDO = ProductreceiptDetailbConvert.INSTANCE.convert(productreceiptDetailbCreateReqVO);
productreceiptDetailbDetailbDOS.add(productreceiptDetailbDO);
}
}
}
}
});
});
// 增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
// 移除预计入
expectinService.deleteExpectinByJobNumber(productreceiptJobMainDO.getNumber());
// 判断该申请下所有任务是否完成
QueryWrapper<ProductreceiptJobMainDO> productreceiptJobMainDOQueryWrapper = new QueryWrapper<>();
productreceiptJobMainDOQueryWrapper.eq("request_number", productreceiptJobMainDO.getRequestNumber());
@ -641,21 +654,27 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
}
// 变更记录
trendsApi.createTrends(productreceiptJobMainDO.getId(), "job_productreceipt_main", "执行了制品收货任务", TrendsTypeEnum.JOB_EXECUTE, String.valueOf(getLoginUserId()));
// 根据单据开关判断是否创建 回冲记录
SwitchDO switchDOBack = switchService.selectSwitchExist("CreateBackflushRecordAfterProductreceiptRecordCreated");
if (switchDOBack.getEffectiveSetValue().equals("TRUE")) {
// 创建 回冲记录(record_productreceipt_detailb)
productreceiptRecordMainService.generateProductreceiptRecordByBom(productreceiptRecordMainDO, productreceiptRecordDetailDOList);
}
// 装配收货子子表赋值创建
productreceiptDetailbMapper.insertBatch(productreceiptDetailbDetailbDOS);
// 根据单据开关判断是否创建 QAD接口数据
if (switchService.selectSwitchExist("PostQAD").getEffectiveSetValue().equals("TRUE")) {
this.createInterfaceInfo(productreceiptRecordMainDO, productreceiptRecordDetailDOList);
if(!finalInventorymoveConfirmationSwitchFlag){
// 增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
// 移除预计入
expectinService.deleteExpectinByJobNumber(productreceiptJobMainDO.getNumber());
// 根据单据开关判断是否创建 回冲记录
SwitchDO switchDOBack = switchService.selectSwitchExist("CreateBackflushRecordAfterProductreceiptRecordCreated");
if (switchDOBack.getEffectiveSetValue().equals("TRUE")) {
// 创建 回冲记录(record_productreceipt_detailb)
productreceiptRecordMainService.generateProductreceiptRecordByBom(productreceiptRecordMainDO, productreceiptRecordDetailDOList);
}
// 装配收货子子表赋值创建
productreceiptDetailbMapper.insertBatch(productreceiptDetailbDetailbDOS);
// 根据单据开关判断是否创建 QAD接口数据
if (switchService.selectSwitchExist("PostQAD").getEffectiveSetValue().equals("TRUE")) {
this.createInterfaceInfo(productreceiptRecordMainDO, productreceiptRecordDetailDOList);
}
}
if (!"scrap".equals(productreceiptJobMainDO.getType())) { // 报废则不需要上架
// 成品检验申请
Thread productInspectThread = new Thread(new Runnable() {
@Override
@ -737,8 +756,7 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
}
});
putAwayThread.start();
}
}
redisCache.deleteLock(lockKey);
return number;

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java

@ -131,4 +131,18 @@ public interface ProductreceiptRecordMainService {
void generateProductredressByQAD(String number, String parentItemCode, List<BackflushDetailbQadDO> backflushDetailbQadDOListNumber, boolean auto);
void generateProductreceiptRecordByQAD(String number, String parentItemCode, List<BackflushDetailbQadDO> backflushDetailbQadDOListNumber, boolean auto);
/**
* 隔离收货确认接收
* @param id
* @return
*/
boolean receive(Long id);
/**
* 隔离收货拒收
* @param id
* @return
*/
boolean refuse(Long id);
}

192
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java

@ -41,6 +41,8 @@ import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.documentSwitch.SwitchDO;
import com.win.module.wms.dal.dataobject.interfaceinfo.InterfaceInfoDO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO;
import com.win.module.wms.dal.dataobject.itemarea.ItemareaDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.itempackage.ItempackageDO;
@ -51,9 +53,11 @@ import com.win.module.wms.dal.dataobject.packageMassage.PackageDO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import com.win.module.wms.dal.dataobject.production.ProductionMainDO;
import com.win.module.wms.dal.dataobject.productreceiptDetailb.ProductreceiptDetailbDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobMainDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailbDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO;
import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.productredressJob.ProductredressJobDetailDO;
import com.win.module.wms.dal.dataobject.productredressJob.ProductredressJobMainDO;
import com.win.module.wms.dal.dataobject.productredressRecord.ProductredressRecordDetailDO;
@ -79,12 +83,16 @@ import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordMai
import com.win.module.wms.dal.mysql.productredressRecord.ProductredressRecordDetailMapper;
import com.win.module.wms.dal.mysql.productredressRecord.ProductredressRecordMainMapper;
import com.win.module.wms.dal.mysql.workstation.WorkstationMapper;
import com.win.module.wms.enums.common.HoldReceiveTypeEnum;
import com.win.module.wms.enums.common.InventoryStatusEnum;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.plan.PlanStatusEnum;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.accountcalendar.AccountcalendarService;
import com.win.module.wms.service.balance.BalanceService;
import com.win.module.wms.service.businesstype.BusinesstypeService;
import com.win.module.wms.service.documentSwitch.SwitchService;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.interfaceinfo.InterfaceInfoService;
import com.win.module.wms.service.interfaceinfo.dto.ProductreceiptDTO;
import com.win.module.wms.service.itembasic.ItembasicService;
@ -208,6 +216,9 @@ public class ProductreceiptRecordMainServiceImpl implements ProductreceiptRecord
private ItembasicMapper itembasicMapper;
@Resource
private WorkstationMapper workstationMapper;
@Resource
private ExpectinService expectinService;
@Override
@Transactional
@ -974,10 +985,12 @@ public class ProductreceiptRecordMainServiceImpl implements ProductreceiptRecord
productreceiptRecordMainMapper.deleteById(id);
}
private void validateProductreceiptRecordMainExists(Long id) {
if (productreceiptRecordMainMapper.selectById(id) == null) {
private ProductreceiptRecordMainDO validateProductreceiptRecordMainExists(Long id) {
ProductreceiptRecordMainDO productreceiptRecordMainDO = productreceiptRecordMainMapper.selectById(id);
if (productreceiptRecordMainDO == null) {
throw exception(PRODUCTRECEIPT_RECORD_MAIN_NOT_EXISTS);
}
return productreceiptRecordMainDO;
}
@Override
@ -2512,4 +2525,179 @@ public class ProductreceiptRecordMainServiceImpl implements ProductreceiptRecord
backflushDetailbQadMapper.updateBatch(backflushDetailbQadDOListNumber);
}
}
/**
* 隔离报工接收
* @param id 主表ID
* @return 是否成功
*/
@Override
@Transactional
public boolean receive(Long id) {
ProductreceiptRecordMainDO productreceiptRecordMainDO = validateProductreceiptRecordMainExists(id);
List<ProductreceiptRecordDetailDO> detailDOList = productreceiptRecordDetailMapper.selectListByMasterId(id);
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("ProductReceiptScrap");
String inTransactionType = businesstypeDO.getInTransactionType();
String outTransactionType = businesstypeDO.getOutTransactionType();
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(inTransactionType);
// 库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for(ProductreceiptRecordDetailDO productreceiptRecordDetailDO: detailDOList){
// 判断物料器具处理
boolean isContainer = itemCodeIsContainer(productreceiptRecordDetailDO.getItemCode());
// 添加库存事务list
// 入动作
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVO);
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(productreceiptRecordMainDO.getBusinessType());
transactionCreateReqVO.setOwnerCode(productreceiptRecordDetailDO.getToOwnerCode());
transactionCreateReqVO.setRecordNumber(productreceiptRecordMainDO.getNumber());
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber(productreceiptRecordDetailDO.getPackingNumber());
transactionCreateReqVO.setBatch(productreceiptRecordDetailDO.getBatch());
transactionCreateReqVO.setContainerNumber(productreceiptRecordDetailDO.getContainerNumber());
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode(productreceiptRecordMainDO.getToWarehouseCode());
// 判断物料是否为器具
if (isContainer) {
BusinesstypeDO businesstypeDO1 = businesstypeService.selectBusinesstypeExist(productreceiptRecordMainDO.getBusinessType());
String inAreaTypes = businesstypeDO1.getInAreaTypes();
if (org.apache.commons.lang3.StringUtils.isNotEmpty(inAreaTypes)) {
String[] areaTypeArray = inAreaTypes.split(",");
List<String> areaTypeList = Arrays.asList(areaTypeArray);
QueryWrapper<AreabasicDO> areabasicDOQueryWrapper = new QueryWrapper<>();
areabasicDOQueryWrapper.in("type", areaTypeList);
List<AreabasicDO> areabasicDOS = areabasicMapper.selectList(areabasicDOQueryWrapper);
if (areabasicDOS != null && areabasicDOS.size() > 0) {
List<LocationDO> locationDOS = locationMapper.selectList("area_code", areabasicDOS.get(0));
if (locationDOS != null && locationDOS.size() > 0) {
LocationDO locationDOTemp = locationDOS.get(0);
transactionCreateReqVO.setLocationCode(locationDOTemp.getCode());
transactionCreateReqVO.setLocationGroupCode(locationDOTemp.getLocationGroupCode());
transactionCreateReqVO.setAreaCode(locationDOTemp.getAreaCode());
}
}
}
} else {
transactionCreateReqVO.setLocationCode(productreceiptRecordDetailDO.getToLocationCode());
}
LocationDO locationDOTransaction = locationService.queryByCode(productreceiptRecordDetailDO.getToLocationCode());
transactionCreateReqVO.setLocationGroupCode(locationDOTransaction.getLocationGroupCode());
transactionCreateReqVO.setAreaCode(locationDOTransaction.getAreaCode());
transactionCreateReqVO.setWarehouseCode(locationDOTransaction.getWarehouseCode());
transactionCreateReqVO.setArriveDate(LocalDateTime.now());
transactionCreateReqVO.setProduceDate(productreceiptRecordDetailDO.getProduceDate());
transactionCreateReqVO.setExpireDate(productreceiptRecordDetailDO.getExpireDate());
transactionCreateReqVO.setActiveTime(LocalDateTime.now());
// 根据 库位 获取 库区DO
AreabasicDO areabasicDO = jobUtils.getAreabasicDO(transactionCreateReqVO.getLocationCode());
transactionCreateReqVO.setAreaType(areabasicDO.getType());
transactionCreateReqVO.setAreaCode(areabasicDO.getCode());
// 按照实际扫描箱码 查询 包装信息 获取包装规格和标包数
PackageDO packageDO = packageService.getPackageByNumber(transactionCreateReqVO.getPackingNumber());
if (packageDO == null) {
transactionCreateReqVO.setPackUnit(null);
transactionCreateReqVO.setPackQty(BigDecimal.ZERO);
} else {
transactionCreateReqVO.setPackUnit(packageDO.getPackUnit());
transactionCreateReqVO.setPackQty(packageDO.getPackQty());
}
transactionCreateReqVO.setSiteId(productreceiptRecordDetailDO.getSiteId());
transactionCreateReqVOList.add(transactionCreateReqVO);
// 判断物料是否为器具
if (isContainer) {
// 库存事务 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOOut);
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setBusinessType(productreceiptRecordMainDO.getBusinessType());
transactionCreateReqVOOut.setOwnerCode(productreceiptRecordDetailDO.getToOwnerCode());
transactionCreateReqVOOut.setRecordNumber(productreceiptRecordDetailDO.getNumber());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setPackingNumber(productreceiptRecordDetailDO.getPackingNumber());
transactionCreateReqVOOut.setBatch(productreceiptRecordDetailDO.getBatch());
transactionCreateReqVOOut.setContainerNumber(productreceiptRecordDetailDO.getContainerNumber());
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setWarehouseCode(productreceiptRecordMainDO.getToWarehouseCode());
BusinesstypeDO businesstypeDO1 = businesstypeService.selectBusinesstypeExist(productreceiptRecordMainDO.getBusinessType());
String inAreaTypes = businesstypeDO1.getInAreaTypes();
if (org.apache.commons.lang3.StringUtils.isNotEmpty(inAreaTypes)) {
String[] areaTypeArray = inAreaTypes.split(",");
List<String> areaTypeList = Arrays.asList(areaTypeArray);
QueryWrapper<AreabasicDO> areabasicDOQueryWrapper = new QueryWrapper<>();
areabasicDOQueryWrapper.in("type", areaTypeList);
List<AreabasicDO> areabasicDOS = areabasicMapper.selectList(areabasicDOQueryWrapper);
if (areabasicDOS != null && areabasicDOS.size() > 0) {
List<LocationDO> locationDOS = locationMapper.selectList("area_code", areabasicDOS.get(0));
if (locationDOS != null && locationDOS.size() > 0) {
LocationDO locationDOTemp = locationDOS.get(0);
transactionCreateReqVOOut.setLocationCode(locationDOTemp.getCode());
transactionCreateReqVOOut.setLocationGroupCode(locationDOTemp.getLocationGroupCode());
transactionCreateReqVOOut.setAreaCode(locationDOTemp.getAreaCode());
}
}
}
transactionCreateReqVOOut.setArriveDate(LocalDateTime.now());
transactionCreateReqVOOut.setProduceDate(productreceiptRecordDetailDO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(productreceiptRecordDetailDO.getExpireDate());
transactionCreateReqVOOut.setActiveTime(LocalDateTime.now());
// 根据 库位 获取 库区DO
AreabasicDO areabasicDOOut = jobUtils.getAreabasicDO(transactionCreateReqVOOut.getLocationCode());
transactionCreateReqVOOut.setAreaType(areabasicDOOut.getType());
transactionCreateReqVOOut.setAreaCode(areabasicDOOut.getCode());
// 按照实际扫描箱码 查询 包装信息 获取包装规格和标包数
PackageDO packageDOOut = packageService.getPackageByNumber(transactionCreateReqVOOut.getPackingNumber());
if (packageDOOut == null) {
transactionCreateReqVOOut.setPackUnit(null);
transactionCreateReqVOOut.setPackQty(BigDecimal.ZERO);
} else {
transactionCreateReqVOOut.setPackUnit(packageDOOut.getPackUnit());
transactionCreateReqVOOut.setPackQty(packageDOOut.getPackQty());
}
transactionCreateReqVOOut.setSiteId(productreceiptRecordDetailDO.getSiteId());
transactionCreateReqVOList.add(transactionCreateReqVOOut);
}
}
// 增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
// 移除预计入
expectinService.deleteExpectinByJobNumber(productreceiptRecordMainDO.getJobNumber());
// 变更记录
trendsApi.createTrends(productreceiptRecordMainDO.getId(), "job_productreceipt_main", "执行了制品收货任务", TrendsTypeEnum.JOB_EXECUTE, String.valueOf(getLoginUserId()));
// 根据单据开关判断是否创建 回冲记录
SwitchDO switchDOBack = switchService.selectSwitchExist("CreateBackflushRecordAfterProductreceiptRecordCreated");
if (switchDOBack.getEffectiveSetValue().equals("TRUE")) {
// 创建 回冲记录(record_productreceipt_detailb)
this.generateProductreceiptRecordByBom(productreceiptRecordMainDO, detailDOList);
}
// 根据单据开关判断是否创建 QAD接口数据
if (switchService.selectSwitchExist("PostQAD").getEffectiveSetValue().equals("TRUE")) {
this.createInterfaceInfo(productreceiptRecordMainDO, detailDOList);
}
LambdaUpdateWrapper<ProductreceiptRecordDetailDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.set(ProductreceiptRecordDetailDO::getReceiveStatus, HoldReceiveTypeEnum.RECEIVED.getCode());
lambdaUpdateWrapper.eq(ProductreceiptRecordDetailDO::getMasterId,productreceiptRecordMainDO.getId());
productreceiptRecordDetailMapper.update(new ProductreceiptRecordDetailDO(),lambdaUpdateWrapper);
return true;
}
@Override
@Transactional
public boolean refuse(Long id) {
ProductreceiptRecordMainDO productreceiptRecordMainDO = validateProductreceiptRecordMainExists(id);
LambdaUpdateWrapper<ProductreceiptRecordDetailDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.set(ProductreceiptRecordDetailDO::getReceiveStatus, HoldReceiveTypeEnum.REJECTED.getCode());
lambdaUpdateWrapper.eq(ProductreceiptRecordDetailDO::getMasterId,productreceiptRecordMainDO.getId());
productreceiptRecordDetailMapper.update(new ProductreceiptRecordDetailDO(),lambdaUpdateWrapper);
return true;
}
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierinvoiceRecord/SupplierinvoiceRecordMainService.java

@ -104,4 +104,11 @@ public interface SupplierinvoiceRecordMainService {
PageResult<SupplierinvoiceRecordMainPrintVO> pageByIds(String ids, Integer pageNo, Integer pageSize);
int reverse(SupplierinvoiceRecordMainUpdateReqVO createReqVO);
/**
* 根据记录id把未读变已读 admin需要提示不能修改
* @param id
* @return
*/
int discreteIsRead(Long id);
}

21
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierinvoiceRecord/SupplierinvoiceRecordMainServiceImpl.java

@ -36,6 +36,7 @@ import com.win.module.wms.dal.mysql.supplierinvoiceRecord.SupplierinvoiceRecordM
import com.win.module.wms.dal.mysql.supplierinvoiceRequest.SupplierinvoiceRequestDetailMapper;
import com.win.module.wms.dal.mysql.supplierinvoiceRequest.SupplierinvoiceRequestMainMapper;
import com.win.module.wms.dal.mysql.supplierinvoiceinvoiced.SupplierinvoiceInvoicedMapper;
import com.win.module.wms.enums.common.ConstantDataInfo;
import com.win.module.wms.service.interfaceinfo.InterfaceInfoService;
import com.win.module.wms.service.interfaceinfo.dto.SupplierinvoiceDTO;
import com.win.module.wms.util.LocalDateTimeAdapter;
@ -51,8 +52,7 @@ import java.util.stream.Collectors;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.PLEASE_DO_NOT_RESUBMIT;
import static com.win.module.wms.enums.ErrorCodeConstants.SUPPLIERINVOICE_RECORD_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 供应商发票记录主 Service 实现类
@ -302,4 +302,21 @@ public class SupplierinvoiceRecordMainServiceImpl implements SupplierinvoiceReco
trendsApi.createTrends(supplierinvoiceRecordMainDO.getId(), "record_supplierinvoice_main", "供应商发票回转", TrendsTypeEnum.REQUEST_HANDLE, String.valueOf(getLoginUserId()));
return i;
}
@Override
public int discreteIsRead(Long id) {
int i = 0 ;
Long userId = getLoginUserId();
if (!ConstantDataInfo.ADMIN_LIST.contains(userId)) {//非admin
SupplierinvoiceRecordMainDO recordMainDO = supplierinvoiceRecordMainMapper.selectOne("id", id);
recordMainDO.setIsRead("1");
i = supplierinvoiceRecordMainMapper.updateById(recordMainDO);
trendsApi.createTrends(id, "record_supplierinvoice_main", "离散订单发票记录未读变已读", TrendsTypeEnum.REQUEST_HANDLE, String.valueOf(getLoginUserId()));
}else{
//提示admin不能修改状态
throw exception(SUPPLIERINVOICE_ADMIN_NOT_UPDATE_ISREAD);
}
return i;
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java

@ -251,7 +251,7 @@ public class TransactionServiceImpl implements TransactionService {
String businessType = "";
// 20240906 cxm 入库到线边优先填平负库存8个9的批次处理
createReqVOList = this.inBalanceToLineByFillNegativeInventory(createReqVOList);
//createReqVOList = this.inBalanceToLineByFillNegativeInventory(createReqVOList);
for (TransactionCreateReqVO createReqVO : createReqVOList) {
if (createReqVO.getExpireDate() == null) {

Loading…
Cancel
Save