Browse Source

完善采购收货任务执行。

master
刘忱 2 years ago
parent
commit
664e13d719
  1. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java
  2. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusState.java
  3. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java
  4. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java
  5. 70
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java
  6. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java

@ -149,7 +149,7 @@ public class PurchasereceiptJobMainController {
PurchasereceiptJobMainRespVO result = PurchasereceiptJobMainConvert.INSTANCE.convert(purchasereceiptJobMain);
if (result == null) {
return success(result);
};
}
List<PurchasereceiptJobDetailDO> purchasereceiptJobDetailList = purchasereceiptJobDetailService.selectList(result.getId());
List<PurchasereceiptJobDetailExcelVO> purchasereceiptJobDetailExcelVOS = PurchasereceiptJobDetailConvert.INSTANCE.convertList02(purchasereceiptJobDetailList);
result.setSubList(purchasereceiptJobDetailExcelVOS);
@ -171,19 +171,27 @@ public class PurchasereceiptJobMainController {
return success(countByStatus);
}
@GetMapping(value = "/accept")
@Operation(summary = "承接任务")
@PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:accept')")
@PostMapping(value = "/accept/{id}")
public CommonResult<Boolean> acceptPurchasereceiptJobMain(@PathVariable("id") Long id) {
public CommonResult<Boolean> acceptPurchasereceiptJobMain(@RequestParam("id") Long id) {
int result = purchasereceiptJobMainService.acceptPurchasereceiptJobMain(id);
return success(result > 0);
}
@Operation(summary = "取消承接任务")
@PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:cancel-accept')")
@PostMapping(value = "/cancelAccept/{id}")
public CommonResult<Boolean> cancelAcceptPurchasereceiptJobMain(@PathVariable("id") Long id) {
int result = purchasereceiptJobMainService.cancelAcceptPurchasereceiptJobMain(id);
@GetMapping(value = "/abandon")
@Operation(summary = "放弃任务")
@PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:abandon')")
public CommonResult<Boolean> abandonPurchasereceiptJobMain(@RequestParam("id") Long id) {
int result = purchasereceiptJobMainService.abandonPurchasereceiptJobMain(id);
return success(result > 0);
}
@GetMapping(value = "/close")
@Operation(summary = "关闭任务")
@PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:close')")
public CommonResult<Boolean> closePurchasereceiptJobMain(@RequestParam("id") Long id) {
int result = purchasereceiptJobMainService.closePurchasereceiptJobMain(id);
return success(result > 0);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusState.java

@ -59,6 +59,19 @@ public class JobStatusState {
}
}
/**
* 关闭
* @return
*/
public boolean close() {
if(this.jobStatusEnum.getCode().equals(JobStatusEnum.PENDING.getCode())) {
this.jobStatusEnum = JobStatusEnum.CLOSED;
return Boolean.TRUE;
} else {
return Boolean.FALSE;
}
}
/**
* 执行
* @return

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java

@ -384,6 +384,9 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO();
BeanUtils.copyProperties(inspectJobDetailDO, expectoutCreateReqVO);
expectoutCreateReqVO.setJobNumber(number);
expectoutCreateReqVO.setBusinessType(inspectJobMainDO.getBusinessType());
expectoutCreateReqVO.setLocationCode(inspectJobDetailDO.getFromLocationCode());
expectoutCreateReqVO.setOwnerCode(mainDO.getOwnerCode());
expectoutCreateReqVOList.add(expectoutCreateReqVO);
}
inspectJobDetailMapper.insertBatch(inspectJobDetailDOList);

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java

@ -99,7 +99,14 @@ public interface PurchasereceiptJobMainService {
* @param id
* @return
*/
Integer cancelAcceptPurchasereceiptJobMain(Long id);
Integer abandonPurchasereceiptJobMain(Long id);
/**
* 关闭任务
* @param id
* @return
*/
Integer closePurchasereceiptJobMain(Long id);
/**
* 执行任务

70
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java

@ -41,6 +41,7 @@ import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.documentSwitch.SwitchService;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.inspectRequest.InspectRequestMainService;
import com.win.module.wms.service.purchase.PurchaseMainService;
import com.win.module.wms.service.rule.RuleService;
import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService;
import com.win.module.wms.service.transaction.TransactionService;
@ -99,6 +100,8 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
private RuleService ruleService;
@Resource
private ExpectinService expectinService;
@Resource
private PurchaseMainService purchaseMainService;
@Override
public PageResult<PurchasereceiptJobMainDO> getPurchasereceiptJobMainSenior(CustomConditions conditions) {
@ -185,7 +188,7 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
@Override
@Transactional
public Integer cancelAcceptPurchasereceiptJobMain(Long id) {
public Integer abandonPurchasereceiptJobMain(Long id) {
PurchasereceiptJobMainDO purchasereceiptJobMainDO = this.validatePurchasereceiptJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(purchasereceiptJobMainDO.getStatus());
if(!jobStatusState.cancelAccept()) {
@ -199,6 +202,19 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
return purchasereceiptJobMainMapper.updateById(purchasereceiptJobMainDO);
}
@Override
@Transactional
public Integer closePurchasereceiptJobMain(Long id) {
PurchasereceiptJobMainDO purchasereceiptJobMainDO = this.validatePurchasereceiptJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(purchasereceiptJobMainDO.getStatus());
if(!jobStatusState.close()) {
throw exception(PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR);
}
purchasereceiptJobMainDO.setStatus(jobStatusState.getState().getCode());
trendsApi.createTrends(id, "purchasereceiptJob", "关闭了采购收货任务", TrendsTypeEnum.UPDATE);
return purchasereceiptJobMainMapper.updateById(purchasereceiptJobMainDO);
}
@Override
@Transactional
public Integer executePurchasereceiptJobMain(PurchasereceiptJobMainUpdateReqVO purchasereceiptJobMainUpdateReqVO) {
@ -226,16 +242,14 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptRecordMainDO.setNumber(number);
purchasereceiptRecordMainDO.setJobNumber(purchasereceiptJobMainDO.getNumber());
purchasereceiptRecordMainDO.setId(null);
purchasereceiptRecordMainDO.setCreator(null);
purchasereceiptRecordMainDO.setCreateTime(null);
purchasereceiptRecordMainDO.setUpdater(null);
purchasereceiptRecordMainDO.setUpdateTime(null);
purchasereceiptRecordMainMapper.insert(purchasereceiptRecordMainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
List<PurchasereceiptJobDetailUpdateReqVO> purchasereceiptJobDetailUpdateReqVOList = purchasereceiptJobMainUpdateReqVO.getSubList();
//收货记录子
List<PurchasereceiptRecordDetailDO> purchasereceiptRecordDetailDOList = new ArrayList<>();
//缺货记录
List<PurchaseshortageDetailDO> purchaseshortageDetailDOList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for(PurchasereceiptJobDetailDO purchasereceiptJobDetailDO : subList) {
boolean isExists = false;
PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVOTemp = null;
@ -258,11 +272,9 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptRecordDetailDO.setToPackingNumber(purchasereceiptJobDetailUpdateReqVOTemp.getToPackingNumber());
purchasereceiptRecordDetailDO.setQty(purchasereceiptJobDetailUpdateReqVOTemp.getHandleQty());
purchasereceiptRecordDetailDO.setId(null);
purchasereceiptRecordDetailDO.setCreator(null);
purchasereceiptRecordDetailDO.setCreateTime(null);
purchasereceiptRecordDetailDO.setUpdater(null);
purchasereceiptRecordDetailDO.setUpdateTime(null);
purchasereceiptRecordDetailDOList.add(purchasereceiptRecordDetailDO);
//更新采购订单明细的收货数量
purchaseMainService.updateOrderPurchaseReceivedQty(purchasereceiptRecordDetailDO.getPoNumber(), purchasereceiptRecordDetailDO.getPoLine(), purchasereceiptRecordDetailDO.getItemCode(), purchasereceiptRecordDetailDO.getQty());
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVO);
@ -272,9 +284,11 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(purchasereceiptRecordMainDO.getBusinessType());
transactionCreateReqVO.setLocationCode(purchasereceiptJobDetailDO.getFromLocationCode());
transactionCreateReqVO.setOwnerCode(purchasereceiptRecordDetailDO.getFromOwnerCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVO);
} else {//生成缺货记录
PurchaseshortageDetailDO purchaseshortageDetailDO = new PurchaseshortageDetailDO();
@ -283,10 +297,6 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchaseshortageDetailDO.setNumber(number);
purchaseshortageDetailDO.setJobDetailId(String.valueOf(purchasereceiptJobDetailDO.getId()));
purchaseshortageDetailDO.setId(null);
purchaseshortageDetailDO.setCreator(null);
purchaseshortageDetailDO.setCreateTime(null);
purchaseshortageDetailDO.setUpdater(null);
purchaseshortageDetailDO.setUpdateTime(null);
purchaseshortageDetailDOList.add(purchaseshortageDetailDO);
}
}
@ -309,16 +319,24 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode());
purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO);
}
SwitchDO switchDO = switchService.selectSwitchExist("CreateInspectRequestAfterPurchaseReceiptRecordCreated");
//需要增加到货检验申请
if(switchDO.getEffectiveSetValue().equals("TRUE")) {
RuleRespVO ruleRespVO = ruleService.inspect(purchasereceiptRecordMainDO.getSupplierCode(), null);
//上架申请子
List<InspectRequestDetailCreateReqVO> inspectRequestDetailCreateReqVOList = new ArrayList<>();
JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration());
//生成到货检验申请
if(!"EXAMPT".equals(String.valueOf(jsonObject.get("InspectType")))) {
SwitchDO switchDO1 = switchService.selectSwitchExist("CreateInspectRequestAfterPurchaseReceiptRecordCreated");
SwitchDO switchDO2 = switchService.selectSwitchExist("ExemptItemCreatePutawayRequestAfterPurchaseReceiptRecordCreated");
//采购收货记录 生成后 创建 到货检验申请
if(switchDO1.getEffectiveSetValue().equals("TRUE") && !"EXAMPT".equals(String.valueOf(jsonObject.get("InspectType")))) {
//按零件号和批次分组
Map<String, List<PurchasereceiptRecordDetailDO>> listMap = new HashMap<>();
for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : purchasereceiptRecordDetailDOList) {
//采购收货记录 生成后免检物品 创建 上架申请
if(switchDO2.getEffectiveSetValue().equals("TRUE")) {
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = new InspectRequestDetailCreateReqVO();
BeanUtils.copyProperties(purchasereceiptRecordDetailDO, inspectRequestDetailCreateReqVO);
inspectRequestDetailCreateReqVO.setId(null);
inspectRequestDetailCreateReqVOList.add(inspectRequestDetailCreateReqVO);
}
String key = purchasereceiptRecordDetailDO.getItemCode() + "_" + purchasereceiptRecordDetailDO.getFromBatch();
List<PurchasereceiptRecordDetailDO> list = listMap.get(key);
if(list == null) {
@ -343,7 +361,6 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
inspectRequestMainCreateReqVO.setPoLine(recordDetailDO.getPoLine());
inspectRequestMainCreateReqVO.setUom(recordDetailDO.getUom());
inspectRequestMainCreateReqVO.setReceiveQty(recordDetailDO.getQty());
List<InspectRequestDetailCreateReqVO> inspectRequestDetailCreateReqVOList = new ArrayList<>();
//创建子表信息
for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : purchasereceiptRecordDetailDOList1) {
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = new InspectRequestDetailCreateReqVO();
@ -365,9 +382,14 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
inspectRequestMainCreateReqVO.setSubList(inspectRequestDetailCreateReqVOList);
inspectRequestMainService.createInspectRequestMain(inspectRequestMainCreateReqVO);
}
} else {//免检,生成上架申请
}
//采购收货记录 生成后免检物品 创建 上架申请
if(switchDO2.getEffectiveSetValue().equals("TRUE") && "EXAMPT".equals(String.valueOf(jsonObject.get("InspectType")))) {
InspectRequestMainCreateReqVO inspectRequestMainCreateReqVO = new InspectRequestMainCreateReqVO();
BeanUtils.copyProperties(purchasereceiptRecordMainDO, inspectRequestMainCreateReqVO);
inspectRequestMainCreateReqVO.setId(null);
inspectRequestMainCreateReqVO.setSubList(inspectRequestDetailCreateReqVOList);
inspectRequestMainService.createInspectRequestMain(inspectRequestMainCreateReqVO);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

@ -526,6 +526,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
purchasereceiptJobMainDO.setStatus(JobStatusEnum.PENDING.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_JOB.getCode());
purchasereceiptJobMainDO.setNumber(number);
purchasereceiptJobMainDO.setId(null);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptJob");
purchasereceiptJobMainDO.setBusinessType(businesstypeDO.getCode());
@ -535,11 +536,15 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
PurchasereceiptJobDetailDO purchasereceiptJobDetailDO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptJobDetailCreateReqVO);
purchasereceiptJobDetailDO.setNumber(number);
purchasereceiptJobDetailDO.setMasterId(purchasereceiptJobMainDO.getId());
purchasereceiptJobDetailDO.setId(null);
purchasereceiptJobDetailDOList.add(purchasereceiptJobDetailDO);
//预计入
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO();
BeanUtils.copyProperties(purchasereceiptJobDetailDO, expectinCreateReqVO);
expectinCreateReqVO.setJobNumber(number);
expectinCreateReqVO.setBusinessType(purchasereceiptJobMainDO.getBusinessType());
expectinCreateReqVO.setLocationCode(purchasereceiptJobDetailDO.getFromLocationCode());
expectinCreateReqVO.setOwnerCode(purchasereceiptJobDetailDO.getFromOwnerCode());
expectinCreateReqVOList.add(expectinCreateReqVO);
}
purchasereceiptJobDetailMapper.insertBatch(purchasereceiptJobDetailDOList);

Loading…
Cancel
Save