Browse Source

下线结算记录

master
陈薪名 2 years ago
parent
commit
ece451976e
  1. 57
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/OfflinesettlementRecordMainController.java
  2. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailExportReqVO.java
  3. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailPageReqVO.java
  4. 59
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordMainExcelVO.java
  5. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/offlinesettlementRecord/OfflinesettlementRecordMainConvert.java
  6. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/offlinesettlementRecord/OfflinesettlementRecordDetailDO.java
  7. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordDetailMapper.java
  8. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordMainMapper.java
  9. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailService.java
  10. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailServiceImpl.java
  11. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainService.java
  12. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainServiceImpl.java
  13. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java
  14. 57
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java
  15. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java

57
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/OfflinesettlementRecordMainController.java

@ -1,8 +1,16 @@
package com.win.module.wms.controller.offlinesettlementRecord;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.issueJob.vo.IssueJobMainExcelVO;
import com.win.module.wms.convert.issueJob.IssueJobMainConvert;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO;
import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordDetailDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.offlinesettlementRecord.OfflinesettlementRecordDetailService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -36,6 +44,8 @@ import com.win.module.wms.service.offlinesettlementRecord.OfflinesettlementRecor
@Validated
public class OfflinesettlementRecordMainController {
@Resource
private OfflinesettlementRecordDetailService offlinesettlementRecordDetailService;
@Resource
private OfflinesettlementRecordMainService offlinesettlementRecordMainService;
@ -105,21 +115,54 @@ public class OfflinesettlementRecordMainController {
}
return success(result);
}
private List<OfflinesettlementRecordMainExcelVO> getExcelVo(List<OfflinesettlementRecordMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(21, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(31, uom);
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(17, trueFalse);
List<OfflinesettlementRecordMainExcelVO> resultList = new ArrayList<>();
// 导出
for(OfflinesettlementRecordMainDO mainDO : list) {
List<OfflinesettlementRecordDetailDO> subList = offlinesettlementRecordDetailService.selectList(mainDO.getId());
for(OfflinesettlementRecordDetailDO detailDO : subList) {
OfflinesettlementRecordMainExcelVO vo = OfflinesettlementRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname());
vo.setUpdater(user.getNickname());
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/export-excel")
@Operation(summary = "导出下线结算记录主 Excel")
@Operation(summary = "导出下线结算记录 Excel")
@PreAuthorize("@ss.hasPermission('wms:offlinesettlement-record-main:export')")
@OperateLog(type = EXPORT)
public void exportOfflinesettlementRecordMainExcel(@Valid OfflinesettlementRecordMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<OfflinesettlementRecordMainDO> list = offlinesettlementRecordMainService.getOfflinesettlementRecordMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<OfflinesettlementRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
List<OfflinesettlementRecordMainExcelVO> datas = OfflinesettlementRecordMainConvert.INSTANCE.convertList02(list);
for(OfflinesettlementRecordMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
ExcelUtils.write(response, "下线结算记录.xlsx", "下线结算记录", OfflinesettlementRecordMainExcelVO.class, resultList, mapDropDown);
}
ExcelUtils.write(response, "下线结算记录主.xls", "数据", OfflinesettlementRecordMainExcelVO.class, datas);
@PostMapping("/export-excel-senior")
@Operation(summary = "导出下线结算记录 Excel")
@PreAuthorize("@ss.hasPermission('wms:offlinesettlement-record-main:export')")
@OperateLog(type = EXPORT)
public void exportOfflinesettlementRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<OfflinesettlementRecordMainDO> list = offlinesettlementRecordMainService.getOfflinesettlementRecordMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<OfflinesettlementRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "发料任务.xlsx", "发料任务", OfflinesettlementRecordMainExcelVO.class, resultList, mapDropDown);
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailExportReqVO.java

@ -73,4 +73,7 @@ public class OfflinesettlementRecordDetailExportReqVO {
@Schema(description = "任务明细ID")
private String jobDetailId;
@Schema(description = "主表ID")
private String masterId;
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailPageReqVO.java

@ -75,4 +75,8 @@ public class OfflinesettlementRecordDetailPageReqVO extends PageParam {
@Schema(description = "任务明细ID")
private String jobDetailId;
@Schema(description = "主表ID")
private String masterId;
}

59
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordMainExcelVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.offlinesettlementRecord.vo;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -52,10 +53,6 @@ public class OfflinesettlementRecordMainExcelVO {
@ExcelProperty("部门")
private String departmentCode;
@ExcelProperty(value = "接口类型", converter = DictConvert.class)
@DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String interfaceType;
@ExcelProperty("单据号")
private String number;
@ -71,7 +68,59 @@ public class OfflinesettlementRecordMainExcelVO {
@ExcelProperty("创建者Id")
private String creator;
@ExcelProperty("是否可用")
@ExcelProperty("最后更新时间")
private LocalDateTime updateTime;
@ExcelProperty("最后更新者Id")
private String updater;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String available;
// 子表数据
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("库位代码")
private String locationCode;
@ExcelProperty("库位组代码")
private String locationGroupCode;
@ExcelProperty("库区代码")
private String areaCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private String qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
}

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/offlinesettlementRecord/OfflinesettlementRecordMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.offlinesettlementRecord.vo.Offlinesettlemen
import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordMainExcelVO;
import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordMainRespVO;
import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordMainDO;
@ -34,4 +37,13 @@ public interface OfflinesettlementRecordMainConvert {
List<OfflinesettlementRecordMainExcelVO> convertList02(List<OfflinesettlementRecordMainDO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
OfflinesettlementRecordMainExcelVO convert(OfflinesettlementRecordMainDO mainDO, OfflinesettlementRecordDetailDO detailDO);
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/offlinesettlementRecord/OfflinesettlementRecordDetailDO.java

@ -89,7 +89,7 @@ public class OfflinesettlementRecordDetailDO extends BaseDO {
/**
* 主表ID
*/
private String masterId;
private Long masterId;
/**
* 单据号
*/

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordDetailMapper.java

@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordDetailExportReqVO;
import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordDetailPageReqVO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordDetailDO;
import org.apache.ibatis.annotations.Mapper;
@ -22,6 +23,7 @@ public interface OfflinesettlementRecordDetailMapper extends BaseMapperX<Offline
default PageResult<OfflinesettlementRecordDetailDO> selectPage(OfflinesettlementRecordDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<OfflinesettlementRecordDetailDO>()
.eqIfPresent(OfflinesettlementRecordDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(OfflinesettlementRecordDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(OfflinesettlementRecordDetailDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(OfflinesettlementRecordDetailDO::getBatch, reqVO.getBatch())
@ -48,6 +50,7 @@ public interface OfflinesettlementRecordDetailMapper extends BaseMapperX<Offline
}
default List<OfflinesettlementRecordDetailDO> selectList(OfflinesettlementRecordDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<OfflinesettlementRecordDetailDO>()
.eqIfPresent(OfflinesettlementRecordDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(OfflinesettlementRecordDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(OfflinesettlementRecordDetailDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(OfflinesettlementRecordDetailDO::getBatch, reqVO.getBatch())
@ -70,4 +73,8 @@ public interface OfflinesettlementRecordDetailMapper extends BaseMapperX<Offline
.orderByDesc(OfflinesettlementRecordDetailDO::getId));
}
default List<OfflinesettlementRecordDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<OfflinesettlementRecordDetailDO>()
.eq(OfflinesettlementRecordDetailDO::getMasterId, masterId));
}
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordMainMapper.java

@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordMainExportReqVO;
import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordMainPageReqVO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO;
import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordMainDO;
import org.apache.ibatis.annotations.Mapper;
@ -66,4 +67,7 @@ public interface OfflinesettlementRecordMainMapper extends BaseMapperX<Offlinese
.orderByDesc(OfflinesettlementRecordMainDO::getId));
}
default List<OfflinesettlementRecordMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailService.java

@ -80,4 +80,5 @@ public interface OfflinesettlementRecordDetailService {
*/
List<OfflinesettlementRecordDetailDO> getOfflinesettlementRecordDetailList(OfflinesettlementRecordDetailExportReqVO exportReqVO);
List<OfflinesettlementRecordDetailDO> selectList(Long id);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailServiceImpl.java

@ -88,4 +88,9 @@ public class OfflinesettlementRecordDetailServiceImpl implements Offlinesettleme
return offlinesettlementRecordDetailMapper.selectList(exportReqVO);
}
@Override
public List<OfflinesettlementRecordDetailDO> selectList(Long masterId) {
return offlinesettlementRecordDetailMapper.selectList(masterId);
}
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainService.java

@ -80,4 +80,5 @@ public interface OfflinesettlementRecordMainService {
*/
List<OfflinesettlementRecordMainDO> getOfflinesettlementRecordMainList(OfflinesettlementRecordMainExportReqVO exportReqVO);
List<OfflinesettlementRecordMainDO> getOfflinesettlementRecordMainList(CustomConditions conditions);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainServiceImpl.java

@ -87,4 +87,9 @@ public class OfflinesettlementRecordMainServiceImpl implements Offlinesettlement
return offlinesettlementRecordMainMapper.selectList(exportReqVO);
}
@Override
public List<OfflinesettlementRecordMainDO> getOfflinesettlementRecordMainList(CustomConditions conditions) {
return offlinesettlementRecordMainMapper.selectSeniorList(conditions);
}
}

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java

@ -25,6 +25,7 @@ import com.win.module.wms.dal.dataobject.productionreceiptJob.ProductionreceiptJ
import com.win.module.wms.dal.dataobject.productionreceiptJob.ProductionreceiptJobMainDO;
import com.win.module.wms.dal.dataobject.productionreceiptRecord.ProductionreceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.productionreceiptRecord.ProductionreceiptRecordMainDO;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.onlinesettlementRecord.OnlinesettlementRecordDetailMapper;
import com.win.module.wms.dal.mysql.onlinesettlementRecord.OnlinesettlementRecordMainMapper;
@ -33,6 +34,7 @@ import com.win.module.wms.dal.mysql.productionreceiptRecord.ProductionreceiptRec
import com.win.module.wms.dal.mysql.productionreceiptRecord.ProductionreceiptRecordMainMapper;
import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.production.ProductionMainService;
import com.win.module.wms.service.supplieritem.SupplieritemService;
@ -61,6 +63,8 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*;
@Validated
public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJobMainService {
@Resource
private ItembasicService itembasicService;
@Resource
private OnlinesettlementRecordDetailMapper onlinesettlementRecordDetailMapper;
@Resource
@ -280,6 +284,8 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob
List<ProductionreceiptJobDetailUpdateReqVO> productionreceiptJobDetailUpdateReqVOList = updateReqVO.getSubList();
//发料记录子
List<ProductionreceiptRecordDetailDO> productionreceiptRecordDetailDOList = new ArrayList<>();
// 上线结算 物品
List<ProductionreceiptRecordDetailDO> OnlineDetailDOList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
subList.forEach(subListItem -> {
@ -317,6 +323,10 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob
productionreceiptRecordDetailDO.setUpdater(null);
productionreceiptRecordDetailDO.setUpdateTime(null);
productionreceiptRecordDetailDOList.add(productionreceiptRecordDetailDO);
// 判断 物品 是否为 上线结算物品
if (itembasicService.isOnlines(productionreceiptRecordDetailDO.getItemCode())) {
OnlineDetailDOList.add(productionreceiptRecordDetailDO);
}
//添加库存事务list
// 入动作
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
@ -355,12 +365,13 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob
}
});
});
if(!productionreceiptRecordDetailDOList.isEmpty()) {
if(productionreceiptRecordDetailDOList != null && productionreceiptRecordDetailDOList.size() > 0) {
productionreceiptRecordDetailMapper.insertBatch(productionreceiptRecordDetailDOList);
}
// TODO:判断 物品 是否为 上线结算物品
// 创建 上线结算记录
createOnlinesettlementRecord(productionreceiptRecordMainDO,productionreceiptRecordDetailDOList);
if (OnlineDetailDOList != null && OnlineDetailDOList.size() > 0) {
createOnlinesettlementRecord(productionreceiptRecordMainDO,OnlineDetailDOList);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//移除预计入
@ -415,7 +426,7 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob
onlinesettlementRecordDetailDO.setUpdateTime(null);
onlinesettlementRecordDetailDOList.add(onlinesettlementRecordDetailDO);
});
if(!onlinesettlementRecordDetailDOList.isEmpty()) {
if(onlinesettlementRecordDetailDOList != null && onlinesettlementRecordDetailDOList.size() > 0) {
onlinesettlementRecordDetailMapper.insertBatch(onlinesettlementRecordDetailDOList);
}
}

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

@ -24,6 +24,9 @@ import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordDetailDO;
import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordMainDO;
import com.win.module.wms.dal.dataobject.onlinesettlementRecord.OnlinesettlementRecordDetailDO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobMainDO;
@ -32,9 +35,12 @@ import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptReco
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO;
import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.backflushRequest.BackflushRequestDetailbMapper;
import com.win.module.wms.dal.mysql.offlinesettlementRecord.OfflinesettlementRecordDetailMapper;
import com.win.module.wms.dal.mysql.offlinesettlementRecord.OfflinesettlementRecordMainMapper;
import com.win.module.wms.dal.mysql.productreceiptJob.ProductreceiptJobMainMapper;
import com.win.module.wms.dal.mysql.productreceiptRecord.BackflushRecordDetailbMapper;
import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordDetailMapper;
@ -47,10 +53,12 @@ import com.win.module.wms.service.documentSwitch.SwitchService;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.offlinesettlementRecord.OfflinesettlementRecordMainService;
import com.win.module.wms.service.production.ProductionMainService;
import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestDetailService;
import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestMainService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.supplieritem.SupplieritemService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.service.transactiontype.TransactiontypeService;
import com.win.module.wms.service.workstation.WorkstationService;
@ -79,6 +87,12 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*;
@Validated
public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainService {
@Resource
private OfflinesettlementRecordDetailMapper offlinesettlementRecordDetailMapper;
@Resource
private OfflinesettlementRecordMainMapper offlinesettlementRecordMainMapper;
@Resource
private SupplieritemService supplieritemService;
@Resource
private ItembasicService itembasicService;
@Resource
@ -453,19 +467,19 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
transactionCreateReqVO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVO);
// 判断 物品 是否为 下线结算物品 创建 下线结算记录
// ItembasicDO itembasicDO = itembasicService.s
// if (backflushRecordDetailbDO.getItemCode()) {
//
// }
if (itembasicService.isOfflines(backflushRecordDetailbDO.getItemCode())) {
offlinesettlementRecordList.add(backflushRecordDetailbDO);
}
}
}
backflushRecordDetailbMapper.insertBatch(backflushRecordDetailbDOList);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
// TODO:判断 物品 是否为 下线结算物品 创建 下线结算记录
// 创建 下线结算记录
if (offlinesettlementRecordList != null && offlinesettlementRecordList.size() > 0) {
generateOfflinesettlementRecord(productreceiptRecordMainDO, offlinesettlementRecordList);
}
}
/**
* 创建 下线结算 记录
@ -473,5 +487,38 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
* @param offlinesettlementRecordList
*/
private void generateOfflinesettlementRecord(ProductreceiptRecordMainDO productreceiptRecordMainDO, List<BackflushRecordDetailbDO> offlinesettlementRecordList) {
OfflinesettlementRecordMainDO offlinesettlementRecordMainDO = new OfflinesettlementRecordMainDO();
BeanUtils.copyProperties(productreceiptRecordMainDO,offlinesettlementRecordMainDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.OFFLINE_SETTLEMENT_RECORD.getCode());
offlinesettlementRecordMainDO.setNumber(number);
offlinesettlementRecordMainDO.setProductReceiptRecordNumber(productreceiptRecordMainDO.getNumber());
offlinesettlementRecordMainDO.setBusinessType("");
offlinesettlementRecordMainDO.setInTransactionType("");
offlinesettlementRecordMainDO.setOutTransactionType("");
offlinesettlementRecordMainDO.setId(null);
offlinesettlementRecordMainDO.setCreator(null);
offlinesettlementRecordMainDO.setCreateTime(null);
offlinesettlementRecordMainDO.setUpdater(null);
offlinesettlementRecordMainDO.setUpdateTime(null);
offlinesettlementRecordMainMapper.insert(offlinesettlementRecordMainDO);
//上线结算记录子 集合
List<OfflinesettlementRecordDetailDO> offlinesettlementRecordDetailDOList = new ArrayList<>();
for(BackflushRecordDetailbDO backflushRecordDetailbDO : offlinesettlementRecordList ) {
OfflinesettlementRecordDetailDO offlinesettlementRecordDetailDO = new OfflinesettlementRecordDetailDO();
BeanUtils.copyProperties(backflushRecordDetailbDO,offlinesettlementRecordDetailDO);
offlinesettlementRecordDetailDO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode());
offlinesettlementRecordDetailDO.setLocationGroupCode(backflushRecordDetailbDO.getFromLocationGroupCode());
offlinesettlementRecordDetailDO.setAreaCode(backflushRecordDetailbDO.getFromAreaCode());
offlinesettlementRecordDetailDO.setMasterId(offlinesettlementRecordMainDO.getId());
offlinesettlementRecordDetailDO.setId(null);
offlinesettlementRecordDetailDO.setCreator(null);
offlinesettlementRecordDetailDO.setCreateTime(null);
offlinesettlementRecordDetailDO.setUpdater(null);
offlinesettlementRecordDetailDO.setUpdateTime(null);
offlinesettlementRecordDetailDOList.add(offlinesettlementRecordDetailDO);
}
if(offlinesettlementRecordDetailDOList != null && offlinesettlementRecordDetailDOList.size() > 0) {
offlinesettlementRecordDetailMapper.insertBatch(offlinesettlementRecordDetailDOList);
}
}
}

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java

@ -288,6 +288,9 @@ public class RepleinshJobMainServiceImpl implements RepleinshJobMainService {
repleinshRecordDetailDO.setToLocationCode(recordLstItem.get("toLocationCode"));
repleinshRecordDetailDO.setInventoryStatus(recordLstItem.get("toInventoryStatus"));
repleinshRecordDetailDO.setSupplierCode(recordLstItem.get("supplierCode"));
repleinshRecordDetailDO.setFromPackingNumber(recordLstItem.get("fromPackingNumber")==null?"":recordLstItem.get("fromPackingNumber"));
repleinshRecordDetailDO.setFromContainerNumber(recordLstItem.get("fromContainerNumber")==null?"":recordLstItem.get("fromContainerNumber"));
repleinshRecordDetailDO.setFromBatch(recordLstItem.get("fromBatch")==null?"":recordLstItem.get("fromBatch"));
// 根据 to库位 查询 库位组 库区
LocationDO locationDO = locationService.selectLocation(recordLstItem.get("toLocationCode"));
repleinshRecordDetailDO.setToLocationGroupCode(locationDO.getLocationGroupCode());
@ -326,11 +329,11 @@ public class RepleinshJobMainServiceImpl implements RepleinshJobMainService {
transactionCreateReqVOOut.setOwnerCode(repleinshRecordDetailDO.getFromOwnerCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setPackingNumber(repleinshRecordDetailDO.getToPackingNumber());
transactionCreateReqVOOut.setBatch(repleinshRecordDetailDO.getToBatch());
transactionCreateReqVOOut.setContainerNumber(repleinshRecordDetailDO.getToContainerNumber());
transactionCreateReqVOOut.setPackingNumber(recordLstItem.get("fromPackingNumber")==null?"":recordLstItem.get("fromPackingNumber"));
transactionCreateReqVOOut.setBatch(recordLstItem.get("fromBatch")==null?"":recordLstItem.get("fromBatch"));
transactionCreateReqVOOut.setContainerNumber(recordLstItem.get("fromContainerNumber")==null?"":recordLstItem.get("fromContainerNumber"));
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setLocationCode(recordLstItem.get("toLocationCode").toString());
transactionCreateReqVOOut.setLocationCode(subListItem.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVOOut);
});
}

Loading…
Cancel
Save