供应链-采购管理

This commit is contained in:
gaowdong 2025-07-02 09:30:56 +08:00
parent c8e3ca6f11
commit 5b2e614af3
5 changed files with 65 additions and 27 deletions

View File

@ -1,9 +1,11 @@
package com.bonus.canteen.core.ims.controller; package com.bonus.canteen.core.ims.controller;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import cn.hutool.core.collection.CollUtil;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractAdd; import com.bonus.canteen.core.ims.domain.param.PurchaseContractAdd;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractQuery; import com.bonus.canteen.core.ims.domain.param.PurchaseContractQuery;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractUpdate; import com.bonus.canteen.core.ims.domain.param.PurchaseContractUpdate;
@ -92,9 +94,7 @@ public class PurchaseContractController extends BaseController {
@PostMapping @PostMapping
public AjaxResult add(@RequestBody @Valid PurchaseContractAdd purchaseContractAdd) { public AjaxResult add(@RequestBody @Valid PurchaseContractAdd purchaseContractAdd) {
try { try {
PurchaseContract purchaseContract = new PurchaseContract(); return toAjax(purchaseContractService.insertPurchaseContract(purchaseContractAdd));
BeanUtils.copyProperties(purchaseContractAdd, purchaseContract);
return toAjax(purchaseContractService.insertPurchaseContract(purchaseContract));
} catch (Exception e) { } catch (Exception e) {
return error(e.getMessage()); return error(e.getMessage());
} }
@ -110,9 +110,7 @@ public class PurchaseContractController extends BaseController {
@PostMapping("/edit") @PostMapping("/edit")
public AjaxResult edit(@RequestBody @Valid PurchaseContractUpdate purchaseContractUpdate) { public AjaxResult edit(@RequestBody @Valid PurchaseContractUpdate purchaseContractUpdate) {
try { try {
PurchaseContract purchaseContract = new PurchaseContract(); return toAjax(purchaseContractService.updatePurchaseContract(purchaseContractUpdate));
BeanUtils.copyProperties(purchaseContractUpdate, purchaseContract);
return toAjax(purchaseContractService.updatePurchaseContract(purchaseContract));
} catch (Exception e) { } catch (Exception e) {
return error(e.getMessage()); return error(e.getMessage());
} }

View File

@ -60,5 +60,8 @@ public class PurchaseContractDetailAdd implements Serializable {
@ApiModelProperty(value = "计量单位名称") @ApiModelProperty(value = "计量单位名称")
private String unitName; private String unitName;
@ApiModelProperty(value = "备注")
private String remark;
} }

View File

@ -60,5 +60,7 @@ public class PurchaseContractDetailUpdate implements Serializable {
@ApiModelProperty(value = "计量单位名称") @ApiModelProperty(value = "计量单位名称")
private String unitName; private String unitName;
@ApiModelProperty(value = "备注")
private String remark;
} }

View File

@ -2,6 +2,8 @@ package com.bonus.canteen.core.ims.service;
import java.util.List; import java.util.List;
import com.bonus.canteen.core.ims.domain.PurchaseContract; import com.bonus.canteen.core.ims.domain.PurchaseContract;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractAdd;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractUpdate;
import com.bonus.canteen.core.ims.domain.vo.PurchaseContractVO; import com.bonus.canteen.core.ims.domain.vo.PurchaseContractVO;
/** /**
@ -30,18 +32,18 @@ public interface IPurchaseContractService {
/** /**
* 新增采购合同主 * 新增采购合同主
* *
* @param purchaseContract 采购合同主 * @param purchaseContractAdd 采购合同主
* @return 结果 * @return 结果
*/ */
public int insertPurchaseContract(PurchaseContract purchaseContract); public int insertPurchaseContract(PurchaseContractAdd purchaseContractAdd);
/** /**
* 修改采购合同主 * 修改采购合同主
* *
* @param purchaseContract 采购合同主 * @param purchaseContractUpdate 采购合同主
* @return 结果 * @return 结果
*/ */
public int updatePurchaseContract(PurchaseContract purchaseContract); public int updatePurchaseContract(PurchaseContractUpdate purchaseContractUpdate);
/** /**
* 批量删除采购合同主 * 批量删除采购合同主

View File

@ -9,6 +9,11 @@ import cn.hutool.core.collection.CollUtil;
import com.bonus.canteen.core.ims.domain.PurchaseContractDetail; import com.bonus.canteen.core.ims.domain.PurchaseContractDetail;
import com.bonus.canteen.core.ims.domain.constants.ApproveStatusEnum; import com.bonus.canteen.core.ims.domain.constants.ApproveStatusEnum;
import com.bonus.canteen.core.ims.domain.constants.PurchaseContractStatusEnum; import com.bonus.canteen.core.ims.domain.constants.PurchaseContractStatusEnum;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractAdd;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractDetailAdd;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractDetailUpdate;
import com.bonus.canteen.core.ims.domain.param.PurchaseContractUpdate;
import com.bonus.canteen.core.ims.domain.vo.PurchaseContractDetailVO;
import com.bonus.canteen.core.ims.domain.vo.PurchaseContractVO; import com.bonus.canteen.core.ims.domain.vo.PurchaseContractVO;
import com.bonus.canteen.core.ims.service.IPurchaseContractDetailService; import com.bonus.canteen.core.ims.service.IPurchaseContractDetailService;
import com.bonus.canteen.core.ims.utils.NoGenerateUtils; import com.bonus.canteen.core.ims.utils.NoGenerateUtils;
@ -49,10 +54,20 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
if(Objects.nonNull(purchaseContract)) { if(Objects.nonNull(purchaseContract)) {
PurchaseContractDetail purchaseContractDetail = new PurchaseContractDetail(); PurchaseContractDetail purchaseContractDetail = new PurchaseContractDetail();
purchaseContractDetail.setContractId(contractId); purchaseContractDetail.setContractId(contractId);
purchaseContract.setPurchaseContractDetailList(inspectGoodsDetailService.selectPurchaseContractDetailList(purchaseContractDetail)); List<PurchaseContractDetail> purchaseContractDetails = inspectGoodsDetailService.selectPurchaseContractDetailList(purchaseContractDetail);
purchaseContract.setPurchaseContractDetailList(purchaseContractDetails);
calContractStatus(purchaseContract); calContractStatus(purchaseContract);
purchaseContractVO = new PurchaseContractVO(); purchaseContractVO = new PurchaseContractVO();
BeanUtils.copyProperties(purchaseContract, purchaseContractVO); BeanUtils.copyProperties(purchaseContract, purchaseContractVO);
if(CollUtil.isNotEmpty(purchaseContractDetails)) {
List<PurchaseContractDetailVO> purchaseContractDetailVOList = new ArrayList<>();
purchaseContractDetails.forEach(detail -> {
PurchaseContractDetailVO purchaseContractDetailVO = new PurchaseContractDetailVO();
BeanUtils.copyProperties(detail, purchaseContractDetailVO);
purchaseContractDetailVOList.add(purchaseContractDetailVO);
});
purchaseContractVO.setPurchaseContractDetailList(purchaseContractDetailVOList);
}
} }
return purchaseContractVO; return purchaseContractVO;
} }
@ -71,10 +86,20 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
for(PurchaseContract contract : purchaseContracts) { for(PurchaseContract contract : purchaseContracts) {
PurchaseContractDetail purchaseContractDetail = new PurchaseContractDetail(); PurchaseContractDetail purchaseContractDetail = new PurchaseContractDetail();
purchaseContractDetail.setContractId(contract.getContractId()); purchaseContractDetail.setContractId(contract.getContractId());
contract.setPurchaseContractDetailList(inspectGoodsDetailService.selectPurchaseContractDetailList(purchaseContractDetail)); List<PurchaseContractDetail> purchaseContractDetailList = inspectGoodsDetailService.selectPurchaseContractDetailList(purchaseContractDetail);
contract.setPurchaseContractDetailList(purchaseContractDetailList);
calContractStatus(contract); calContractStatus(contract);
PurchaseContractVO purchaseContractVO = new PurchaseContractVO(); PurchaseContractVO purchaseContractVO = new PurchaseContractVO();
BeanUtils.copyProperties(contract, purchaseContractVO); BeanUtils.copyProperties(contract, purchaseContractVO);
if(CollUtil.isNotEmpty(purchaseContractDetailList)) {
List<PurchaseContractDetailVO> purchaseContractDetailVOList = new ArrayList<>();
purchaseContractDetailList.forEach(detail -> {
PurchaseContractDetailVO purchaseContractDetailVO = new PurchaseContractDetailVO();
BeanUtils.copyProperties(detail, purchaseContractDetailVO);
purchaseContractDetailVOList.add(purchaseContractDetailVO);
});
purchaseContractVO.setPurchaseContractDetailList(purchaseContractDetailVOList);
}
purchaseContractVOList.add(purchaseContractVO); purchaseContractVOList.add(purchaseContractVO);
} }
} }
@ -99,12 +124,14 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
/** /**
* 新增采购合同主 * 新增采购合同主
* *
* @param purchaseContract 采购合同主 * @param purchaseContractAdd 采购合同主
* @return 结果 * @return 结果
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int insertPurchaseContract(PurchaseContract purchaseContract) { public int insertPurchaseContract(PurchaseContractAdd purchaseContractAdd) {
PurchaseContract purchaseContract = new PurchaseContract();
BeanUtils.copyProperties(purchaseContractAdd, purchaseContract);
purchaseContract.setContractId(null); purchaseContract.setContractId(null);
purchaseContract.setCreateTime(DateUtils.getNowDate()); purchaseContract.setCreateTime(DateUtils.getNowDate());
purchaseContract.setCreateBy(SecurityUtils.getUsername()); purchaseContract.setCreateBy(SecurityUtils.getUsername());
@ -113,12 +140,14 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
purchaseContract.setContractCode(contractCode); purchaseContract.setContractCode(contractCode);
purchaseContract.setApproveStatus(ApproveStatusEnum.APPROVED.getKey()); purchaseContract.setApproveStatus(ApproveStatusEnum.APPROVED.getKey());
int result = purchaseContractMapper.insertPurchaseContract(purchaseContract); int result = purchaseContractMapper.insertPurchaseContract(purchaseContract);
List<PurchaseContractDetail> purchaseContractDetails = purchaseContract.getPurchaseContractDetailList(); List<PurchaseContractDetailAdd> purchaseContractDetails = purchaseContractAdd.getPurchaseContractDetailList();
if(CollUtil.isNotEmpty(purchaseContractDetails)) { if(CollUtil.isNotEmpty(purchaseContractDetails)) {
for(PurchaseContractDetail purchaseContractDetail : purchaseContractDetails) { for(PurchaseContractDetailAdd purchaseContractDetailAdd : purchaseContractDetails) {
purchaseContractDetail.setContractId(purchaseContract.getContractId()); PurchaseContractDetail purchaseDetailContract = new PurchaseContractDetail();
purchaseContractDetail.setContractCode(contractCode); BeanUtils.copyProperties(purchaseContractDetailAdd, purchaseDetailContract);
inspectGoodsDetailService.insertPurchaseContractDetail(purchaseContractDetail); purchaseDetailContract.setContractId(purchaseContract.getContractId());
purchaseDetailContract.setContractCode(contractCode);
inspectGoodsDetailService.insertPurchaseContractDetail(purchaseDetailContract);
} }
} }
return result; return result;
@ -130,12 +159,14 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
/** /**
* 修改采购合同主 * 修改采购合同主
* *
* @param purchaseContract 采购合同主 * @param purchaseContractUpdate 采购合同主
* @return 结果 * @return 结果
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updatePurchaseContract(PurchaseContract purchaseContract) { public int updatePurchaseContract(PurchaseContractUpdate purchaseContractUpdate) {
PurchaseContract purchaseContract = new PurchaseContract();
BeanUtils.copyProperties(purchaseContractUpdate, purchaseContract);
if(Objects.isNull(purchaseContract.getContractId())) { if(Objects.isNull(purchaseContract.getContractId())) {
throw new ServiceException("采购合同ID不能为空"); throw new ServiceException("采购合同ID不能为空");
} }
@ -150,12 +181,14 @@ public class PurchaseContractServiceImpl implements IPurchaseContractService {
purchaseContract.setUpdateBy(SecurityUtils.getUsername()); purchaseContract.setUpdateBy(SecurityUtils.getUsername());
try { try {
inspectGoodsDetailService.deletePurchaseContractDetailByContractId(purchaseContract.getContractId()); inspectGoodsDetailService.deletePurchaseContractDetailByContractId(purchaseContract.getContractId());
List<PurchaseContractDetail> purchaseContractDetails = purchaseContract.getPurchaseContractDetailList(); List<PurchaseContractDetailUpdate> purchaseContractDetailsUpdate = purchaseContractUpdate.getPurchaseContractDetailList();
if(CollUtil.isNotEmpty(purchaseContractDetails)) { if(CollUtil.isNotEmpty(purchaseContractDetailsUpdate)) {
for(PurchaseContractDetail purchaseContractDetail : purchaseContractDetails) { for(PurchaseContractDetailUpdate purchaseContractDetailUpdate : purchaseContractDetailsUpdate) {
purchaseContractDetail.setContractId(purchaseContract.getContractId()); PurchaseContractDetail purchaseDetailContract = new PurchaseContractDetail();
purchaseContractDetail.setContractCode(purchaseContractVO.getContractCode()); BeanUtils.copyProperties(purchaseContractDetailUpdate, purchaseDetailContract);
inspectGoodsDetailService.insertPurchaseContractDetail(purchaseContractDetail); purchaseDetailContract.setContractId(purchaseContract.getContractId());
purchaseDetailContract.setContractCode(purchaseContractVO.getContractCode());
inspectGoodsDetailService.insertPurchaseContractDetail(purchaseDetailContract);
} }
} }
return purchaseContractMapper.updatePurchaseContract(purchaseContract); return purchaseContractMapper.updatePurchaseContract(purchaseContract);