|
|
@ -1,24 +1,34 @@ |
|
|
|
package com.win.module.wms.service.inspectRequest; |
|
|
|
|
|
|
|
import cn.hutool.core.exceptions.UtilException; |
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
import com.win.module.infra.api.trends.TrendsApi; |
|
|
|
import com.win.module.infra.enums.TrendsTypeEnum; |
|
|
|
import com.win.module.system.api.dict.DictDataApi; |
|
|
|
import com.win.module.system.api.dict.dto.DictDataRespDTO; |
|
|
|
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailExportReqVO; |
|
|
|
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailPageReqVO; |
|
|
|
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailUpdateReqVO; |
|
|
|
import com.win.module.wms.convert.inspectRequest.InspectRequestDetailConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; |
|
|
|
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; |
|
|
|
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestMainMapper; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.service.location.LocationService; |
|
|
|
import com.win.module.wms.util.JobUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import javax.annotation.Resource; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
|
|
|
|
import com.win.module.wms.convert.inspectRequest.InspectRequestDetailConvert; |
|
|
|
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestDetailMapper; |
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.*; |
|
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.INSPECT_REQUEST_DETAIL_NOT_EXISTS; |
|
|
|
|
|
|
|
/** |
|
|
|
* 检验申请子 Service 实现类 |
|
|
@ -31,37 +41,57 @@ public class InspectRequestDetailServiceImpl implements InspectRequestDetailServ |
|
|
|
|
|
|
|
@Resource |
|
|
|
private InspectRequestDetailMapper inspectRequestDetailMapper; |
|
|
|
@Resource |
|
|
|
private InspectRequestMainMapper inspectRequestMainMapper; |
|
|
|
@Resource |
|
|
|
private ItembasicService itembasicService; |
|
|
|
@Resource |
|
|
|
private DictDataApi dictDataApi; |
|
|
|
@Resource |
|
|
|
private JobUtils jobUtils; |
|
|
|
@Resource |
|
|
|
private LocationService locationService; |
|
|
|
@Resource |
|
|
|
private TrendsApi trendsApi; |
|
|
|
|
|
|
|
@Override |
|
|
|
public Long createInspectRequestDetail(InspectRequestDetailCreateReqVO createReqVO) { |
|
|
|
// 插入
|
|
|
|
InspectRequestDetailDO inspectRequestDetail = InspectRequestDetailConvert.INSTANCE.convert(createReqVO); |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); |
|
|
|
InspectRequestMainDO mainDO = inspectRequestMainMapper.selectById(createReqVO.getMasterId()); |
|
|
|
this.validatorDetail(inspectRequestDetail, mainDO, businesstypeDO); |
|
|
|
inspectRequestDetailMapper.insert(inspectRequestDetail); |
|
|
|
trendsApi.createTrends(inspectRequestDetail.getId(), "inspectRequestDetail", "增加了到货检验子表", TrendsTypeEnum.CREATE); |
|
|
|
// 返回
|
|
|
|
return inspectRequestDetail.getId(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateInspectRequestDetail(InspectRequestDetailUpdateReqVO updateReqVO) { |
|
|
|
public int updateInspectRequestDetail(InspectRequestDetailUpdateReqVO updateReqVO) { |
|
|
|
// 校验存在
|
|
|
|
validateInspectRequestDetailExists(updateReqVO.getId()); |
|
|
|
// 更新
|
|
|
|
InspectRequestDetailDO updateObj = InspectRequestDetailConvert.INSTANCE.convert(updateReqVO); |
|
|
|
inspectRequestDetailMapper.updateById(updateObj); |
|
|
|
trendsApi.createTrends(updateObj.getId(), "inspectRequestDetail", updateObj.toString(), TrendsTypeEnum.UPDATE); |
|
|
|
return inspectRequestDetailMapper.updateById(updateObj); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void deleteInspectRequestDetail(Long id) { |
|
|
|
public int deleteInspectRequestDetail(Long id) { |
|
|
|
// 校验存在
|
|
|
|
validateInspectRequestDetailExists(id); |
|
|
|
InspectRequestDetailDO inspectRequestDetailDO = validateInspectRequestDetailExists(id); |
|
|
|
trendsApi.createTrends(id, "purchasereceiptRequestDetail", inspectRequestDetailDO.toString(), TrendsTypeEnum.DELETE); |
|
|
|
// 删除
|
|
|
|
inspectRequestDetailMapper.deleteById(id); |
|
|
|
return inspectRequestDetailMapper.deleteById(id); |
|
|
|
} |
|
|
|
|
|
|
|
private void validateInspectRequestDetailExists(Long id) { |
|
|
|
if (inspectRequestDetailMapper.selectById(id) == null) { |
|
|
|
private InspectRequestDetailDO validateInspectRequestDetailExists(Long id) { |
|
|
|
InspectRequestDetailDO inspectRequestDetailDO = inspectRequestDetailMapper.selectById(id); |
|
|
|
if (inspectRequestDetailDO == null) { |
|
|
|
throw exception(INSPECT_REQUEST_DETAIL_NOT_EXISTS); |
|
|
|
} |
|
|
|
return inspectRequestDetailDO; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -70,8 +100,8 @@ public class InspectRequestDetailServiceImpl implements InspectRequestDetailServ |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<InspectRequestDetailDO> getInspectRequestDetailList(Collection<Long> ids) { |
|
|
|
return inspectRequestDetailMapper.selectBatchIds(ids); |
|
|
|
public List<InspectRequestDetailDO> selectList(Long masterId) { |
|
|
|
return inspectRequestDetailMapper.selectList(masterId); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -84,9 +114,55 @@ public class InspectRequestDetailServiceImpl implements InspectRequestDetailServ |
|
|
|
return inspectRequestDetailMapper.selectSenior(conditions); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<InspectRequestDetailDO> getInspectRequestDetailList(InspectRequestDetailExportReqVO exportReqVO) { |
|
|
|
return inspectRequestDetailMapper.selectList(exportReqVO); |
|
|
|
//校验子表公共方法(适用于新增/修改)
|
|
|
|
private void validatorDetail(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { |
|
|
|
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); |
|
|
|
detailDo.setItemDesc1(itembasicDO.getDesc1()); |
|
|
|
detailDo.setItemDesc2(itembasicDO.getDesc2()); |
|
|
|
detailDo.setItemName(itembasicDO.getName()); |
|
|
|
detailDo.setProjectCode(itembasicDO.getProject()); |
|
|
|
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); |
|
|
|
validatorIfInType(itembasicDO.getType(), businesstypeDO); |
|
|
|
validatorLocation(detailDo.getFromLocationCode()); |
|
|
|
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); |
|
|
|
validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO); |
|
|
|
validatorLocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus()); |
|
|
|
} |
|
|
|
|
|
|
|
private ItembasicDO validatorItembasic(String itemCode) { |
|
|
|
return itembasicService.selectItembasic(itemCode); |
|
|
|
} |
|
|
|
|
|
|
|
//判断导入单位是否正确
|
|
|
|
private void ifUomSuccess(String itemUom, String uom) { |
|
|
|
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(uom); |
|
|
|
if (dictDataRespDTO != null) { |
|
|
|
if (!itemUom.equals(dictDataRespDTO.getLabel())) { |
|
|
|
throw new UtilException("提示单位" + uom + "错误,应该是" + itemUom); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO) { |
|
|
|
jobUtils.ifInType(itemType, businesstypeDO); |
|
|
|
} |
|
|
|
|
|
|
|
private void validatorLocation(String fromLocationCode) { |
|
|
|
locationService.selectLocation(fromLocationCode); |
|
|
|
} |
|
|
|
|
|
|
|
private void validatorIfOutInventoryStatuses(String inventoryStatus, BusinesstypeDO businesstypeDO) { |
|
|
|
jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO); |
|
|
|
} |
|
|
|
|
|
|
|
private void validatorIfInFromLocationType(String fromLocationCode, BusinesstypeDO businesstypeDO) { |
|
|
|
jobUtils.ifInFromLocationType(fromLocationCode, businesstypeDO); |
|
|
|
} |
|
|
|
|
|
|
|
private void validatorLocationReturnManagementAccuracy(String itemCode, String packingNumber, String batch, String fromLocationCode, String inventoryStatu) { |
|
|
|
ArrayList<String> inventoryStatus = new ArrayList<>(); |
|
|
|
inventoryStatus.add(inventoryStatu); |
|
|
|
jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber, batch, fromLocationCode, inventoryStatus); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|