新购验收绑定修改
This commit is contained in:
parent
022052d82b
commit
3fa849fa98
|
|
@ -15,10 +15,11 @@ public enum PurchaseTaskStatusEnum {
|
|||
TO_CHECK(2, "待验收", PurchaseTaskStageEnum.CHECK.getCode()),
|
||||
TO_BIND(3, "待绑定", PurchaseTaskStageEnum.BIND.getCode()),
|
||||
TO_STORE(4, "待入库", PurchaseTaskStageEnum.STORE.getCode()),
|
||||
TO_CHECK_AFTER_REJECT(12, "待验收(驳回后)", PurchaseTaskStageEnum.CHECK.getCode()),
|
||||
TO_BIND_AFTER_REJECT(13, "待绑定(驳回后)", PurchaseTaskStageEnum.BIND.getCode()),
|
||||
TO_STORE_AFTER_REJECT(14, "待入库(驳回后)", PurchaseTaskStageEnum.STORE.getCode()),
|
||||
TO_CHECK_AFTER_REJECT(12, "验收(被驳回)", PurchaseTaskStageEnum.MANAGE.getCode()),
|
||||
TO_BIND_AFTER_REJECT(13, "绑定(被驳回)", PurchaseTaskStageEnum.CHECK.getCode()),
|
||||
TO_STORE_AFTER_REJECT(14, "入库(被驳回)", PurchaseTaskStageEnum.BIND.getCode()),
|
||||
IN_STORE(19, "已入库", PurchaseTaskStageEnum.STORE.getCode()),
|
||||
|
||||
TASK_IN_PROGRESS(21, "入库进行中", PurchaseTaskStageEnum.STORE.getCode()),
|
||||
TASK_FINISHED(22, "入库已完成", PurchaseTaskStageEnum.STORE.getCode());
|
||||
|
||||
|
|
@ -34,26 +35,32 @@ public enum PurchaseTaskStatusEnum {
|
|||
}
|
||||
|
||||
// 判断任务状态是否为此阶段所属状态
|
||||
public static boolean isStatusOfStage(Integer status, PurchaseTaskStageEnum stageEnum) {
|
||||
PurchaseTaskStatusEnum findEnum = null;
|
||||
for (PurchaseTaskStatusEnum statusEnum : values()) {
|
||||
if (statusEnum.status.equals(status)) {
|
||||
findEnum = statusEnum;
|
||||
break;
|
||||
}
|
||||
public static boolean isStatusOfStage(Integer status, PurchaseTaskStageEnum stageEnum, Integer manageType) {
|
||||
if (status == null || stageEnum == null || manageType == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (findEnum == null || stageEnum == null) {
|
||||
PurchaseTaskStatusEnum findEnum = PurchaseTaskStatusEnum.getByStatus(status);
|
||||
|
||||
if (findEnum == null) {
|
||||
return true;
|
||||
} else {
|
||||
}
|
||||
|
||||
// 如果是最后的入库完成状态,那么说明流程已走完,不需要再对比状态了
|
||||
if (Objects.equals(findEnum.getStatus(), TASK_FINISHED.getStatus()) || Objects.equals(findEnum.getStatus(), IN_STORE.getStatus())) {
|
||||
return false;
|
||||
}
|
||||
return findEnum.getStage().equals(stageEnum.getCode());
|
||||
|
||||
// 如果是验收阶段, 并且是数量管理的物资,那么入库被驳回的也要判断为未完成,因为计数管理不需要绑定,直接从验收到入库
|
||||
if (stageEnum == PurchaseTaskStageEnum.CHECK) {
|
||||
if (Objects.equals(findEnum, PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT) && Objects.equals(manageType, 1)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return findEnum.getStage().equals(stageEnum.getCode());
|
||||
}
|
||||
|
||||
public static PurchaseTaskStatusEnum getByStatus(Integer status) {
|
||||
for (PurchaseTaskStatusEnum statusEnum : values()) {
|
||||
if (statusEnum.status.equals(status)) {
|
||||
|
|
|
|||
|
|
@ -64,6 +64,13 @@ public interface MachineMapper
|
|||
*/
|
||||
int deleteMachineByMaId(Long maId);
|
||||
|
||||
/**
|
||||
* 根据maCode,typeId 删除机具设备
|
||||
*
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteMachineByMaCodeAndTypeId(@Param("maCode") String maCode, @Param("typeId") Long typeId);
|
||||
|
||||
/**
|
||||
* 批量删除机具设备管理
|
||||
*
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
@ -77,7 +78,7 @@ public class PurchaseBindController extends BaseController {
|
|||
@PreventRepeatSubmit
|
||||
@RequiresPermissions("purchase:bind:reject")
|
||||
@PostMapping("/reject")
|
||||
public AjaxResult reject(@RequestBody PurchaseDto dto) {
|
||||
public AjaxResult reject(@RequestBody @NotNull(message = "参数不能为空") PurchaseDto dto) {
|
||||
return purchaseBindService.reject(dto);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ public class PurchaseCheckInfoController extends BaseController {
|
|||
//@RequiresPermissions("purchase:info:edit")
|
||||
@SysLog(title = "新购验收任务", businessType = OperaType.UPDATE, module = "物资新购->修改新购验收任务")
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody PurchaseCheckDto purchaseCheckDto) {
|
||||
public AjaxResult edit(@RequestBody @NotNull(message = "请求参数不能为空") @Valid PurchaseCheckDto purchaseCheckDto) {
|
||||
try {
|
||||
return toAjax(purchaseCheckInfoService.updatePurchaseCheckInfo(purchaseCheckDto));
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -8,14 +8,7 @@ import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
|||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.bonus.common.log.annotation.SysLog;
|
||||
import com.bonus.material.purchase.domain.PurchaseMacodeInfo;
|
||||
import com.bonus.material.purchase.service.IPurchaseMacodeInfoService;
|
||||
|
|
@ -111,10 +104,10 @@ public class PurchaseMacodeInfoController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "删除新购验收编号管理")
|
||||
@PreventRepeatSubmit
|
||||
@RequiresPermissions("purchase:info:remove")
|
||||
// @RequiresPermissions("purchase:info:remove")
|
||||
@SysLog(title = "新购验收编号管理", businessType = OperaType.DELETE, logType = 1,module = "仓储管理->删除新购验收编号管理")
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
@PostMapping("/un_bind")
|
||||
public AjaxResult unBind(@RequestBody List<Integer> ids) {
|
||||
return toAjax(purchaseMacodeInfoService.deletePurchaseMacodeInfoByIds(ids));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public class PurchaseNoticePersonController extends BaseController {
|
|||
@ApiOperation(value = "导出新购短信通知人员列表")
|
||||
@PreventRepeatSubmit
|
||||
@RequiresPermissions("purchase:person:notice")
|
||||
@SysLog(title = "新购短信通知人员", businessType = OperaType.EXPORT, module = "物资新购->导出新购短信通知人员")
|
||||
@SysLog(title = "新购短信管理", businessType = OperaType.EXPORT, module = "物资新购->导出新购短信通知人员")
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, PurchaseNoticePerson purchaseNoticePerson) {
|
||||
List<PurchaseNoticePerson> list = purchaseNoticePersonService.selectPurchaseNoticePersonList(purchaseNoticePerson);
|
||||
|
|
@ -137,7 +137,7 @@ public class PurchaseNoticePersonController extends BaseController {
|
|||
@ApiOperation(value = "修改新购短信通知人员")
|
||||
@PreventRepeatSubmit
|
||||
@RequiresPermissions("purchase:person:notice")
|
||||
@SysLog(title = "新购短信通知人员", businessType = OperaType.UPDATE, module = "物资新购->修改新购短信通知人员")
|
||||
@SysLog(title = "新购短信管理", businessType = OperaType.UPDATE, module = "物资新购->修改新购短信通知人员")
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody PurchaseNoticePerson purchaseNoticePerson) {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import lombok.Data;
|
|||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import com.bonus.common.core.web.domain.BaseEntity;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 新购验收任务详细对象 purchase_check_details
|
||||
|
|
@ -20,6 +21,7 @@ import com.bonus.common.core.web.domain.BaseEntity;
|
|||
@EqualsAndHashCode(callSuper = false)
|
||||
@Data
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
public class PurchaseCheckDetails extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
|
|
|||
|
|
@ -15,11 +15,10 @@ import java.util.Date;
|
|||
* @author xsheng
|
||||
* @date 2024-10-16
|
||||
*/
|
||||
|
||||
|
||||
@Data
|
||||
@ToString
|
||||
public class PurchaseMacodeInfo extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键id */
|
||||
|
|
@ -59,6 +58,8 @@ public class PurchaseMacodeInfo extends BaseEntity {
|
|||
@Excel(name = "状态", readConverterExp = "0=,待入库,1=,已入库")
|
||||
private String status;
|
||||
|
||||
private String keyWord;
|
||||
|
||||
/** 数据所属组织 */
|
||||
@Excel(name = "数据所属组织")
|
||||
@ApiModelProperty(value = "数据所属组织")
|
||||
|
|
|
|||
|
|
@ -57,7 +57,9 @@ public interface PurchaseMacodeInfoMapper {
|
|||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deletePurchaseMacodeInfoByIds(Long[] ids);
|
||||
public int deletePurchaseMacodeInfoByIds(@Param("ids") List<Integer> ids);
|
||||
|
||||
public int updatePurchaseMacodeInfoByIds(@Param("ids") List<Integer> ids);
|
||||
|
||||
public int getPurchaseMaCodeCount(@Param("taskId") Long taskId, @Param("typeId") Long typeId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public interface IPurchaseMacodeInfoService {
|
|||
* @param ids 需要删除的新购验收编号管理主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deletePurchaseMacodeInfoByIds(Long[] ids);
|
||||
public int deletePurchaseMacodeInfoByIds(List<Integer> ids);
|
||||
|
||||
/**
|
||||
* 删除新购验收编号管理信息
|
||||
|
|
|
|||
|
|
@ -232,35 +232,32 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult reject(PurchaseDto dto) {
|
||||
//一级页面驳回
|
||||
int result = 0;
|
||||
if (dto.getTaskId() != null) {
|
||||
//一级页面驳回
|
||||
//根据任务id查询详细信息
|
||||
List<PurchaseVo> list = purchaseBindMapper.getDetails(dto);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
for (PurchaseVo purchaseVo : list) {
|
||||
//更新状态为已驳回
|
||||
if (purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND.getStatus()) ||
|
||||
purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())) {
|
||||
purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), purchaseVo.getPurchaseId());
|
||||
if (purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND.getStatus()) || purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())) {
|
||||
result += purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), purchaseVo.getPurchaseId());
|
||||
}
|
||||
}
|
||||
}
|
||||
//result += tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, dto.getTaskId());
|
||||
}
|
||||
} else if (dto.getPurchaseId() != null) {
|
||||
// 二级页面驳回
|
||||
if (dto.getPurchaseId() != null) {
|
||||
List<String> idList = Arrays.asList(dto.getPurchaseId().split(","));
|
||||
String[] idList = dto.getPurchaseId().split(",");
|
||||
for (String purchaseId : idList) {
|
||||
result += purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), purchaseId);
|
||||
}
|
||||
|
||||
}
|
||||
if (result > 0) {
|
||||
return AjaxResult.success("操作成功");
|
||||
}
|
||||
} else {
|
||||
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import java.util.*;
|
|||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import com.bonus.common.biz.constant.BmConfigItems;
|
||||
import com.bonus.common.biz.enums.MaTypeManageTypeEnum;
|
||||
import com.bonus.common.biz.enums.PurchaseTaskStageEnum;
|
||||
|
|
@ -30,7 +29,6 @@ import com.bonus.material.purchase.mapper.PurchaseMacodeInfoMapper;
|
|||
import com.bonus.material.task.domain.TmTask;
|
||||
import com.bonus.material.task.mapper.TmTaskMapper;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.bonus.material.purchase.mapper.PurchaseCheckInfoMapper;
|
||||
|
|
@ -50,7 +48,7 @@ import static com.bonus.common.biz.constant.MaterialConstants.PURCHASE_TASK_TYPE
|
|||
@Service
|
||||
public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||
|
||||
@Autowired
|
||||
@Resource
|
||||
private IBmConfigService bmConfigService;
|
||||
|
||||
@Resource
|
||||
|
|
@ -59,7 +57,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
@Resource
|
||||
private PurchaseCheckDetailsMapper purchaseCheckDetailsMapper;
|
||||
|
||||
@Autowired
|
||||
@Resource
|
||||
private PurchaseMacodeInfoMapper purchaseMacodeInfoMapper;
|
||||
|
||||
@Resource
|
||||
|
|
@ -87,20 +85,35 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId());
|
||||
if (purchaseCheckInfo != null) {
|
||||
purchaseCheckDtoResult.setPurchaseCheckInfo(purchaseCheckInfo);
|
||||
boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
|
||||
List<PurchaseCheckDetails> purchaseCheckDetailsList;
|
||||
if (isAllowPartTransfer) {
|
||||
purchaseCheckDetailsList = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
|
||||
if (purchaseQueryDto.getStatusList().contains(PurchaseTaskStatusEnum.TO_STORE.getStatus())) {
|
||||
purchaseCheckDetailsList = purchaseCheckDetailsList.stream()
|
||||
.filter(o -> MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(o.getManageType()) ||
|
||||
MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(o.getManageType()) && getPurchaseMaCodeCount(o.getTaskId(), o.getTypeId()) > 0)
|
||||
.collect(Collectors.toList());
|
||||
// boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
|
||||
List<PurchaseCheckDetails> purchaseCheckDetailsList = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
|
||||
if (purchaseQueryDto.getTaskStage() != null) {
|
||||
// 根据阶段来过滤详情数据
|
||||
switch (purchaseQueryDto.getTaskStage()) {
|
||||
case PURCHASE_TASK_STAGE_MANAGE:
|
||||
// 新购管理阶段展示全部任务、不进行过滤
|
||||
break;
|
||||
case PURCHASE_TASK_STAGE_CHECK:
|
||||
purchaseCheckDetailsList = purchaseCheckDetailsList.stream().filter(o -> !PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus())).collect(Collectors.toList());
|
||||
purchaseCheckDetailsList = purchaseCheckDetailsList.stream().filter(o -> !PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus())).collect(Collectors.toList());
|
||||
break;
|
||||
case PURCHASE_TASK_STAGE_BIND:
|
||||
purchaseCheckDetailsList = purchaseCheckDetailsList.stream().filter(o ->
|
||||
!PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus()) &&
|
||||
!PurchaseTaskStatusEnum.TO_CHECK.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus().equals(o.getStatus())
|
||||
).collect(Collectors.toList());
|
||||
break;
|
||||
case PURCHASE_TASK_STAGE_STORE:
|
||||
purchaseCheckDetailsList = purchaseCheckDetailsList.stream().filter(o -> PurchaseTaskStatusEnum.IN_STORE.getStatus().equals(o.getStatus()) ||
|
||||
PurchaseTaskStatusEnum.TO_STORE.getStatus().equals(o.getStatus()) || PurchaseTaskStatusEnum.TASK_FINISHED.getStatus().equals(o.getStatus())
|
||||
).collect(Collectors.toList());
|
||||
break;
|
||||
default:
|
||||
System.err.println("未知的新购任务阶段:" + purchaseQueryDto.getTaskStage());
|
||||
}
|
||||
} else {
|
||||
purchaseQueryDto.setStatusList(null);
|
||||
purchaseCheckDetailsList = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
|
||||
}
|
||||
|
||||
|
||||
//针对于app查询可能存在的验收图片
|
||||
extractedFile(purchaseCheckDetailsList);
|
||||
purchaseCheckDtoResult.setPurchaseCheckDetailsList(purchaseCheckDetailsList);
|
||||
|
|
@ -110,7 +123,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
|
||||
/**
|
||||
* 提取app新购验收文件信息
|
||||
* @param purchaseCheckDetailsList
|
||||
* @param purchaseCheckDetailsList 新购验收明细列表
|
||||
*/
|
||||
private void extractedFile(List<PurchaseCheckDetails> purchaseCheckDetailsList) {
|
||||
if (!CollectionUtils.isEmpty(purchaseCheckDetailsList)) {
|
||||
|
|
@ -169,19 +182,19 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
break;
|
||||
case PURCHASE_TASK_STAGE_CHECK:
|
||||
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus())).collect(Collectors.toList());
|
||||
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus())).collect(Collectors.toList());
|
||||
break;
|
||||
case PURCHASE_TASK_STAGE_BIND:
|
||||
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o ->
|
||||
!PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus()) &&
|
||||
!PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus()) &&
|
||||
!PurchaseTaskStatusEnum.TO_CHECK.getStatus().equals(o.getStatus()) &&
|
||||
!PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus())
|
||||
!PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus().equals(o.getStatus())
|
||||
).collect(Collectors.toList());
|
||||
break;
|
||||
case PURCHASE_TASK_STAGE_STORE:
|
||||
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o ->
|
||||
!PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_CHECK.getStatus().equals(o.getStatus()) &&
|
||||
!PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_BIND.getStatus().equals(o.getStatus()) &&
|
||||
!PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus().equals(o.getStatus())
|
||||
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> PurchaseTaskStatusEnum.IN_STORE.getStatus().equals(o.getStatus()) ||
|
||||
PurchaseTaskStatusEnum.TO_STORE.getStatus().equals(o.getStatus()) || PurchaseTaskStatusEnum.TASK_FINISHED.getStatus().equals(o.getStatus())
|
||||
).collect(Collectors.toList());
|
||||
break;
|
||||
default:
|
||||
|
|
@ -203,7 +216,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
throw new IllegalArgumentException("采购数量和价格必须为非负数");
|
||||
}
|
||||
if (!isIncludeStage) {
|
||||
isIncludeStage = PurchaseTaskStatusEnum.isStatusOfStage(detail.getStatus(), PurchaseTaskStageEnum.getByCode(purchaseQueryDto.getTaskStage()));
|
||||
isIncludeStage = PurchaseTaskStatusEnum.isStatusOfStage(detail.getStatus(), PurchaseTaskStageEnum.getByCode(purchaseQueryDto.getTaskStage()), detail.getManageType());
|
||||
}
|
||||
|
||||
// 更新 purchaseMaTotalNumber
|
||||
|
|
@ -309,11 +322,13 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
if (!CollectionUtils.isEmpty(purchaseCheckDetailsList)) {
|
||||
for (PurchaseCheckDetails details : purchaseCheckDetailsList) {
|
||||
details.setTaskId(taskId);
|
||||
details.setStatus(PurchaseTaskStatusEnum.TO_NOTICE.getStatus());
|
||||
details.setStatus(Objects.equals(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus(), details.getStatus()) ?
|
||||
PurchaseTaskStatusEnum.TO_CHECK.getStatus() :
|
||||
PurchaseTaskStatusEnum.TO_NOTICE.getStatus());
|
||||
details.setInputStatus("0");
|
||||
List<BmFileInfo> bmFileInfos = details.getBmFileInfos();
|
||||
if (!CollectionUtils.isEmpty(bmFileInfos)) {
|
||||
bmFileInfos.stream().forEach(o -> o.setTaskId(taskId));
|
||||
bmFileInfos.forEach(o -> o.setTaskId(taskId));
|
||||
bmFileInfoMapper.insertBmFileInfos(bmFileInfos);
|
||||
}
|
||||
}
|
||||
|
|
@ -341,13 +356,13 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
|
||||
List<PurchaseCheckDetails> codeList = purchaseCheckDetails.stream().filter(o -> MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(o.getManageType())).collect(Collectors.toList());
|
||||
List<PurchaseCheckDetails> numList = purchaseCheckDetails.stream().filter(o -> MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(o.getManageType())).collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(codeList) && codeList.size() > 0) {
|
||||
if (!CollectionUtils.isEmpty(codeList)) {
|
||||
for (PurchaseCheckDetails details : codeList) {
|
||||
details.setStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus());
|
||||
updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details);
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(numList) && numList.size() > 0) {
|
||||
if (!CollectionUtils.isEmpty(numList)) {
|
||||
for (PurchaseCheckDetails details : numList) {
|
||||
details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus());
|
||||
updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details);
|
||||
|
|
@ -367,6 +382,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
AjaxResult result = new AjaxResult();
|
||||
if (!CollectionUtils.isEmpty(purchaseVerifyVo.getPurchaseCheckDetailsList())) {
|
||||
if (BooleanUtils.isTrue(purchaseVerifyVo.getVerifyPass())) {
|
||||
// 验收通过处理流程
|
||||
for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) {
|
||||
if (MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(details.getManageType())) {
|
||||
details.setStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus());
|
||||
|
|
@ -377,8 +393,9 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
extractedFile(details);
|
||||
}
|
||||
} else {
|
||||
// 验收驳回处理流程
|
||||
for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) {
|
||||
details.setStatus(PurchaseTaskStatusEnum.TO_NOTICE.getStatus());
|
||||
details.setStatus(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus());
|
||||
result = purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details) > 0 ? AjaxResult.success("detail验证驳回成功") : AjaxResult.error("details无验证信息");
|
||||
tmTaskMapper.updateTmTask(new TmTask()
|
||||
.setTaskId(details.getTaskId())
|
||||
|
|
@ -396,7 +413,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
|
||||
/**
|
||||
* app新购验收图片上传方法抽取
|
||||
* @param details
|
||||
* @param details 详情
|
||||
*/
|
||||
private void extractedFile(PurchaseCheckDetails details) {
|
||||
if (!CollectionUtils.isEmpty(details.getBmFileInfos())) {
|
||||
|
|
@ -458,6 +475,14 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
public boolean updatePurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto) {
|
||||
purchaseCheckDto.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate());
|
||||
purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername());
|
||||
if (!CollectionUtils.isEmpty(purchaseCheckDto.getPurchaseCheckDetailsList())) {
|
||||
purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(Objects::isNull);
|
||||
purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(o -> Objects.isNull(o.getStatus()));
|
||||
purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(o ->
|
||||
!Objects.equals(o.getStatus(), PurchaseTaskStatusEnum.TO_NOTICE.getStatus()) &&
|
||||
!Objects.equals(o.getStatus(), PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus())
|
||||
);
|
||||
}
|
||||
try {
|
||||
Long[] ids = new Long[]{purchaseCheckDto.getPurchaseCheckInfo().getId()};
|
||||
purchaseCheckDetailsMapper.deletePurchaseCheckDetailsByParentIds(ids);
|
||||
|
|
|
|||
|
|
@ -1,13 +1,20 @@
|
|||
package com.bonus.material.purchase.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import com.bonus.common.core.exception.ServiceException;
|
||||
import com.bonus.common.core.utils.DateUtils;
|
||||
import com.bonus.material.ma.mapper.MachineMapper;
|
||||
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
||||
import com.bonus.material.purchase.mapper.PurchaseCheckDetailsMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.bonus.material.purchase.mapper.PurchaseMacodeInfoMapper;
|
||||
import com.bonus.material.purchase.domain.PurchaseMacodeInfo;
|
||||
import com.bonus.material.purchase.service.IPurchaseMacodeInfoService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 新购验收编号管理Service业务层处理
|
||||
|
|
@ -17,9 +24,16 @@ import com.bonus.material.purchase.service.IPurchaseMacodeInfoService;
|
|||
*/
|
||||
@Service
|
||||
public class PurchaseMacodeInfoServiceImpl implements IPurchaseMacodeInfoService {
|
||||
|
||||
@Autowired
|
||||
private PurchaseMacodeInfoMapper purchaseMacodeInfoMapper;
|
||||
|
||||
@Resource
|
||||
private MachineMapper machineMapper;
|
||||
|
||||
@Resource
|
||||
private PurchaseCheckDetailsMapper purchaseCheckDetailsMapper;
|
||||
|
||||
/**
|
||||
* 查询新购验收编号管理
|
||||
*
|
||||
|
|
@ -81,8 +95,34 @@ public class PurchaseMacodeInfoServiceImpl implements IPurchaseMacodeInfoService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deletePurchaseMacodeInfoByIds(Long[] ids) {
|
||||
return purchaseMacodeInfoMapper.deletePurchaseMacodeInfoByIds(ids);
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int deletePurchaseMacodeInfoByIds(List<Integer> ids) {
|
||||
for (Integer id : ids) {
|
||||
PurchaseMacodeInfo purchaseMacodeInfo = purchaseMacodeInfoMapper.selectPurchaseMacodeInfoById(Long.valueOf(id));
|
||||
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsList(new PurchaseCheckDetails()
|
||||
.setTaskId(purchaseMacodeInfo.getTaskId()).setTypeId(purchaseMacodeInfo.getTypeId()));
|
||||
|
||||
if (!purchaseCheckDetails.isEmpty()) {
|
||||
purchaseCheckDetailsMapper.updatePurchaseCheckDetails(new PurchaseCheckDetails()
|
||||
.setId(purchaseCheckDetails.get(0).getId())
|
||||
.setBindNum(purchaseCheckDetails.get(0).getBindNum().subtract(BigDecimal.ONE))
|
||||
);
|
||||
} else {
|
||||
throw new ServiceException("未找到对应验收详情数据,请检查数据是否正确");
|
||||
}
|
||||
|
||||
int delSize = machineMapper.deleteMachineByMaCodeAndTypeId(purchaseMacodeInfo.getMaCode(), purchaseMacodeInfo.getTypeId());
|
||||
if (delSize != 1) {
|
||||
throw new ServiceException("机具物资表删除失败,物资清除:" + delSize + "条,数据已回滚");
|
||||
}
|
||||
}
|
||||
int delTotal = purchaseMacodeInfoMapper.updatePurchaseMacodeInfoByIds(ids);
|
||||
if (delTotal != ids.size()) {
|
||||
throw new ServiceException("删除失败,解绑:" + (ids.size() - delTotal) + "条,数据已回滚");
|
||||
}
|
||||
|
||||
|
||||
return delTotal;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -72,13 +72,6 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
|
|||
@Override
|
||||
@Transactional
|
||||
public AjaxResult batchSendSms(PurchaseNoticePersonDto purchaseNoticePersonDto) {
|
||||
|
||||
// for (String phoneNumber : purchaseNoticePersonDto.getPhoneNumbers()) {
|
||||
// if (phoneNumber != null && phoneNumber.length() != 11) {
|
||||
// String decrypted = Sm4Utils.decrypt(phoneNumber);
|
||||
// }
|
||||
// }
|
||||
|
||||
for (int i = 0; i < purchaseNoticePersonDto.getPhoneNumbers().size(); i++) {
|
||||
String phoneNumber = purchaseNoticePersonDto.getPhoneNumbers().get(i);
|
||||
if (phoneNumber != null && phoneNumber.length() != 11) {
|
||||
|
|
@ -86,9 +79,6 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
|
|||
purchaseNoticePersonDto.getPhoneNumbers().set(i, decrypted);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
String splitPhoneNumber = String.join(",", purchaseNoticePersonDto.getPhoneNumbers());
|
||||
try {
|
||||
String sendResult = SmsUtils.smsToken(splitPhoneNumber, purchaseNoticePersonDto.getContent(),"");
|
||||
|
|
@ -99,13 +89,8 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
|
|||
.setTaskType(TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId())
|
||||
.setTaskStatus(PurchaseTaskStatusEnum.TASK_IN_PROGRESS.getStatus())
|
||||
);
|
||||
|
||||
// 修改采购明细的任务状态
|
||||
purchaseCheckDetailsService.batchUpdateDetailsTaskStatus(
|
||||
purchaseNoticePersonDto.getTaskId(),
|
||||
PurchaseTaskStatusEnum.TO_CHECK.getStatus(), ""
|
||||
);
|
||||
|
||||
purchaseCheckDetailsService.batchUpdateDetailsTaskStatus(purchaseNoticePersonDto.getTaskId(), PurchaseTaskStatusEnum.TO_CHECK.getStatus(), "");
|
||||
return AjaxResult.success("短信发送成功:" + sendResult);
|
||||
} else {
|
||||
return AjaxResult.error("短信发送失败,发送结果为空");
|
||||
|
|
|
|||
|
|
@ -297,6 +297,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
delete from ma_machine where ma_id = #{maId}
|
||||
</delete>
|
||||
|
||||
|
||||
<delete id="deleteMachineByMaIds" parameterType="String">
|
||||
delete from ma_machine where ma_id in
|
||||
<foreach item="maId" collection="array" open="(" separator="," close=")">
|
||||
|
|
@ -370,4 +371,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
ma.ma_id
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
<delete id="deleteMachineByMaCodeAndTypeId">
|
||||
delete from ma_machine where ma_code = #{maCode} and type_id = #{typeId}
|
||||
and ma_status = '0'
|
||||
</delete>
|
||||
</mapper>
|
||||
|
|
@ -98,7 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
UPDATE purchase_check_details
|
||||
SET `status` = #{updatedStatus}
|
||||
WHERE
|
||||
id = #{id}
|
||||
id = #{id} and status = '3' or status = '14'
|
||||
</update>
|
||||
|
||||
<update id="updateStorageNum">
|
||||
|
|
|
|||
|
|
@ -38,7 +38,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</resultMap>
|
||||
|
||||
<sql id="selectPurchaseCheckDetailsVo">
|
||||
select id, task_id, type_id, purchase_price, purchase_tax_price, purchase_num, check_num, bind_num, check_result, supplier_id, status, create_by, production_time, create_time, update_by, update_time, remark, check_url_name, check_url, input_num, input_status, input_time, file_name, file_url, company_id, fix_code from purchase_check_details
|
||||
select id, task_id, type_id, purchase_price, purchase_tax_price, purchase_num, check_num, bind_num, check_result,
|
||||
supplier_id, status, create_by, production_time, create_time, update_by, update_time, remark, check_url_name,
|
||||
check_url, input_num, input_status, input_time, file_name, file_url, company_id, fix_code
|
||||
from purchase_check_details
|
||||
</sql>
|
||||
|
||||
<sql id="selectPurchaseCheckDetailsJoinVo">
|
||||
|
|
@ -224,6 +227,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
delete from purchase_check_details where id = #{id}
|
||||
</delete>
|
||||
|
||||
<!-- 限制条件 严格匹配字典表及枚举类中定义的状态码 -->
|
||||
<delete id="deletePurchaseCheckDetailsByParentIds" parameterType="Long">
|
||||
delete from purchase_check_details where task_id in (
|
||||
select task_id
|
||||
|
|
@ -233,7 +237,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
)
|
||||
) and status = 1 or status = 12
|
||||
</delete>
|
||||
|
||||
<delete id="deletePurchaseCheckDetailsByIds" parameterType="String">
|
||||
|
|
@ -312,6 +316,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 这里的status限制是待通知或验收被驳回后对应的字典值 -->
|
||||
<update id="batchUpdateDetailsTaskStatus">
|
||||
update
|
||||
purchase_check_details
|
||||
|
|
@ -319,6 +324,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
`status` = #{newTaskStatus}, check_result = #{checkResult}
|
||||
where
|
||||
task_id = #{taskId}
|
||||
and
|
||||
`status` = 1 or `status` = 12
|
||||
</update>
|
||||
|
||||
<!-- <update id="updatePurchaseDetails">-->
|
||||
|
|
@ -340,10 +347,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
update
|
||||
purchase_check_details
|
||||
<set>
|
||||
`status` = #{status},
|
||||
check_result = #{checkResult},
|
||||
check_num = purchase_num,
|
||||
check_time = NOW(),
|
||||
`status` = #{status},check_result = #{checkResult},check_num = purchase_num,check_time = NOW(),
|
||||
<if test="warnDocuments != null and warnDocuments != ''">
|
||||
warn_documents = #{warnDocuments},
|
||||
</if>
|
||||
|
|
@ -351,14 +355,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
reason = #{reason}
|
||||
</if>
|
||||
</set>
|
||||
where
|
||||
1=1
|
||||
<where>
|
||||
<if test="taskId != null">
|
||||
and task_id = #{taskId}
|
||||
</if>
|
||||
<if test="typeId != null">
|
||||
and type_id = #{typeId}
|
||||
</if>
|
||||
</where>
|
||||
</update>
|
||||
|
||||
<select id="getCountOfNoneThisStatus" resultType="Integer">
|
||||
|
|
|
|||
|
|
@ -26,13 +26,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</resultMap>
|
||||
|
||||
<sql id="selectPurchaseMacodeInfoVo">
|
||||
select pmi.id, pmi.task_id, pmi.type_id, pmi.ma_code, pmi.qr_code, pmi.status,
|
||||
select pmi.id, pmi.task_id, pmi.type_id, pmi.ma_code, pmi.qr_code, if(mm.ma_status = '0' or mm.ma_status = '5' or mm.ma_status = '9', 0, 1) as status,
|
||||
pmi.create_by, pmi.create_time, pmi.update_by, pmi.update_time, pmi.remark, pmi.company_id, pmi.out_fac_code,
|
||||
mt.type_name, mt.unit_name, mtp.type_name as ma_type_name, pcd.production_time
|
||||
from bm_qrcode_info pmi
|
||||
left join ma_type mt on pmi.type_id = mt.type_id
|
||||
left join ma_type mtp on mt.parent_id = mtp.type_id
|
||||
left join purchase_check_details pcd on pmi.task_id = pcd.task_id and pmi.type_id = pcd.type_id
|
||||
left join ma_machine mm on pmi.type_id = mm.type_id and pmi.ma_code = mm.ma_code
|
||||
</sql>
|
||||
|
||||
<select id="selectPurchaseMacodeInfoList" parameterType="com.bonus.material.purchase.domain.PurchaseMacodeInfo" resultMap="PurchaseMacodeInfoResult">
|
||||
|
|
@ -47,6 +48,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="codeType != null and codeType != ''"> and pmi.code_type = #{codeType}</if>
|
||||
<if test="status != null and status != ''"> and pmi.status = #{status}</if>
|
||||
<if test="companyId != null "> and pmi.company_id = #{companyId}</if>
|
||||
<if test="keyWord != null and keyWord != ''">
|
||||
and (pmi.ma_code like concat('%', #{keyWord}, '%') or pmi.qr_code like concat('%', #{keyWord}, '%'))
|
||||
</if>
|
||||
and pmi.ma_code is not null
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
|
@ -118,11 +123,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<delete id="deletePurchaseMacodeInfoByIds" parameterType="String">
|
||||
delete from bm_qrcode_info where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
<foreach item="id" collection="ids" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<update id="updatePurchaseMacodeInfoByIds" parameterType="String">
|
||||
update bm_qrcode_info set ma_code = null where id in
|
||||
<foreach item="id" collection="ids" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="getPurchaseMaCodeCount" resultType="Integer">
|
||||
select count(1) from bm_qrcode_info where task_id = #{taskId} and type_id = #{typeId}
|
||||
</select>
|
||||
|
|
|
|||
Loading…
Reference in New Issue