Merge remote-tracking branch 'origin/master'

This commit is contained in:
jjLv 2024-11-11 09:12:00 +08:00
commit e9bca0c1f4
27 changed files with 410 additions and 320 deletions

View File

@ -14,6 +14,7 @@ public class BmConfigItems {
public static final String BACK_TASK_AUDIT_ROLE_IDS = "back_task_audit_role_ids";
/** 物资状态流转: 【】允许一个新购单的部分物资提前流转到下一个阶段 */
public static final String BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER = "allow_purchase_part_transfer";
}

View File

@ -19,16 +19,6 @@ public class MaterialConstants {
// 树的根节点ID
public static final Long TREE_ROOT_ID = 0L;
/**
* 领料任务类型
*/
public static final Long LEASE_TASK_TYPE = 2L;
/**
* 退料任务类型
*/
public static final Long BACK_TASK_TYPE = 3L;
/**
* XLS
*/
@ -54,62 +44,9 @@ public class MaterialConstants {
*/
public static final String LATITUDE_PATTERN = "^(-?(90(\\.0+)?|[1-8]?\\d(\\.\\d{1,6})?))$";
/**
* 待提交
*/
public static final Integer ZERO_CONSTANT = 0;
/**
* 待通知
*/
public static final Integer ONE_CONSTANT = 1;
/**
* 待验收
*/
public static final Integer TWO_CONSTANT = 2;
/**
* 待绑定
*/
public static final Integer THREE_CONSTANT = 3;
/**
* 待入库
*/
public static final Integer FOUR_CONSTANT = 4;
/**
* 已完成
*/
public static final Integer FIVE_CONSTANT = 5;
/**
* 待验收(驳回后)
*/
public static final Integer SIX_CONSTANT = 6;
/**
* 待绑定(驳回后)
*/
public static final Integer SEVEN_CONSTANT = 7;
/**
* 待入库(驳回后)
*/
public static final Integer EIGHT_CONSTANT = 8;
/**
* 入库进行中
*/
public static final Integer NINE_CONSTANT = 9;
/**
* 未完成
*/
public static final Integer TEN_CONSTANT = 10;
// 物资厂家管理任务类型 TASK_TYPE
public static final Long TASK_TYPE_WUZI_CHANGJIA = 9L;
}

View File

@ -0,0 +1,17 @@
package com.bonus.common.biz.enums;
import lombok.Getter;
@Getter
public enum MaTypeManageTypeEnum {
CODE_DEVICE(0, "编码设备"),
NUMBER_DEVICE(1, "数量设备"),;
private final Integer typeId;
private final String typeName;
MaTypeManageTypeEnum(Integer typeId, String typeName) {
this.typeId = typeId;
this.typeName = typeName;
}
}

View File

@ -0,0 +1,26 @@
package com.bonus.common.biz.enums;
import lombok.Getter;
@Getter
public enum PurchaseTaskStatusEnum {
TO_NOTICE(1, "待通知"),
TO_CHECK(2, "待验收"),
TO_BIND(3, "待绑定"),
TO_STORE(4, "待入库"),
TO_CHECK_AFTER_REJECT(12, "待验收(驳回后)"),
TO_BIND_AFTER_REJECT(13, "待绑定(驳回后)"),
TO_STORE_AFTER_REJECT(14, "待入库(驳回后)"),
IN_STORE(19, "已入库"),
TASK_NOT_START(20, "入库未开始"),
TASK_IN_PROGRESS(21, "入库进行中"),
TASK_FINISHED(22, "入库已完成");
private final Integer status;
private final String statusName;
PurchaseTaskStatusEnum(Integer status, String statusName) {
this.status = status;
this.statusName = statusName;
}
}

View File

@ -0,0 +1,26 @@
package com.bonus.common.biz.enums;
import lombok.Getter;
@Getter
public enum TmTaskTypeEnum {
TM_TASK_PURCHASE(0, "新购"),
TM_TASK_PURCHASE_PART(1, "新购配件任务"),
TM_TASK_LEASE(2, "领料任务"),
TM_TASK_BACK(3, "退料任务"),
TM_TASK_REPAIR(4, "维修任务"),
TM_TASK_REPAIR_STORAGE(5, "修试后入库任务"),
TM_TASK_SCRAP(6, "报废任务"),
TM_TASK_SETTLEMENT(7, "结算任务"),
TM_TASK_CHECK(8, "检验任务"),
TM_TASK_FACTORY_MANAGEMENT(9, "物资厂家管理任务");
private final Integer taskTypeId;
private final String taskTypeName;
TmTaskTypeEnum(Integer taskTypeId, String taskTypeName) {
this.taskTypeId = taskTypeId;
this.taskTypeName = taskTypeName;
}
}

View File

@ -27,7 +27,7 @@ public class BmFileInfo extends BaseEntity
/** 任务类型, 参考数据字典 tm_task_type */
@Excel(name = "任务类型")
@ApiModelProperty(value = "任务类型")
private Long taskType;
private Integer taskType;
/** 任务id */
@Excel(name = "任务id")

View File

@ -68,7 +68,13 @@ public interface IBmConfigService
*/
public int deleteBmConfigById(Long id);
public List<String> getLeaseTaskAuditRoleIds();
public boolean isBmConfigEnabledWithDefaultFalse(String itemName);
public List<String> getBackTaskAuditRoleIds();
public boolean isBmConfigEnabledWithDefaultTrue(String itemName);
public List<String> getBmConfigResultAsList(String itemName);
// public List<String> getLeaseTaskAuditRoleIds();
//
// public List<String> getBackTaskAuditRoleIds();
}

View File

@ -8,6 +8,7 @@ import java.util.Objects;
import com.bonus.common.biz.constant.BmConfigItems;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bonus.material.basic.mapper.BmConfigMapper;
@ -72,6 +73,7 @@ public class BmConfigServiceImpl implements IBmConfigService
public int insertBmConfig(BmConfig bmConfig)
{
bmConfig.setCreateTime(DateUtils.getNowDate());
bmConfig.setCreateBy(SecurityUtils.getUsername());
bmConfigMapper.deleteBmConfigByName(bmConfig.getItemName());
return bmConfigMapper.insertBmConfig(bmConfig);
}
@ -121,10 +123,33 @@ public class BmConfigServiceImpl implements IBmConfigService
}
}
/**获取所设定的库管员role ids*/
public List<String> getKuGuanRoleIds() {
public boolean isBmConfigEnabledWithDefaultFalse(String itemName) {
boolean result = false;
BmConfig bmConfig = bmConfigMapper.selectBmConfigByItemName(itemName);
if (Objects.nonNull(bmConfig)) {
String value = getValueWithDefault(bmConfig.getItemValue(), "0");
if (StringUtils.isNotEmpty(value)) {
result = "1".equals(value) ? true : false;
}
}
return result;
}
public boolean isBmConfigEnabledWithDefaultTrue(String itemName) {
boolean result = false;
BmConfig bmConfig = bmConfigMapper.selectBmConfigByItemName(itemName);
if (Objects.nonNull(bmConfig)) {
String value = getValueWithDefault(bmConfig.getItemValue(), "1");
if (StringUtils.isNotEmpty(value)) {
result = "1".equals(value) ? true : false;
}
}
return result;
}
public List<String> getBmConfigResultAsList(String itemName) {
List<String> list = new ArrayList();
BmConfig bmConfig = bmConfigMapper.selectBmConfigByItemName(BmConfigItems.KU_GUAN_ROLE_IDS);
BmConfig bmConfig = bmConfigMapper.selectBmConfigByItemName(itemName);
if (Objects.nonNull(bmConfig)) {
String value = getValueWithDefault(bmConfig.getItemValue(), "");
if (StringUtils.isNotEmpty(value)) {
@ -134,42 +159,29 @@ public class BmConfigServiceImpl implements IBmConfigService
return list;
}
/**获取所设定的维修员role ids*/
public List<String> getWeiXiuRoleIds() {
List<String> list = new ArrayList();
BmConfig bmConfig = bmConfigMapper.selectBmConfigByItemName(BmConfigItems.WEI_XIU_ROLE_IDS);
if (Objects.nonNull(bmConfig)) {
String value = getValueWithDefault(bmConfig.getItemValue(), "");
if (StringUtils.isNotEmpty(value)) {
list = Arrays.asList(value.split(","));
}
}
return list;
}
/**获取所设定的领料审核角色列表*/
public List<String> getLeaseTaskAuditRoleIds() {
List<String> list = new ArrayList();
BmConfig bmConfig = bmConfigMapper.selectBmConfigByItemName(BmConfigItems.LEASE_TASK_AUDIT_ROLE_IDS);
if (Objects.nonNull(bmConfig)) {
String value = getValueWithDefault(bmConfig.getItemValue(), "");
if (StringUtils.isNotEmpty(value)) {
list = Arrays.asList(value.split(","));
}
}
return list;
}
/**获取所设定的退料审核角色列表*/
public List<String> getBackTaskAuditRoleIds() {
List<String> list = new ArrayList();
BmConfig bmConfig = bmConfigMapper.selectBmConfigByItemName(BmConfigItems.BACK_TASK_AUDIT_ROLE_IDS);
if (Objects.nonNull(bmConfig)) {
String value = getValueWithDefault(bmConfig.getItemValue(), "");
if (StringUtils.isNotEmpty(value)) {
list = Arrays.asList(value.split(","));
}
}
return list;
}
/**获取所设定的选项:领料审核角色列表*/
// public List<String> getLeaseTaskAuditRoleIds() {
// List<String> list = new ArrayList();
// BmConfig bmConfig = bmConfigMapper.selectBmConfigByItemName(BmConfigItems.LEASE_TASK_AUDIT_ROLE_IDS);
// if (Objects.nonNull(bmConfig)) {
// String value = getValueWithDefault(bmConfig.getItemValue(), "");
// if (StringUtils.isNotEmpty(value)) {
// list = Arrays.asList(value.split(","));
// }
// }
// return list;
// }
//
// /**获取所设定的选项:退料审核角色列表*/
// public List<String> getBackTaskAuditRoleIds() {
// List<String> list = new ArrayList();
// BmConfig bmConfig = bmConfigMapper.selectBmConfigByItemName(BmConfigItems.BACK_TASK_AUDIT_ROLE_IDS);
// if (Objects.nonNull(bmConfig)) {
// String value = getValueWithDefault(bmConfig.getItemValue(), "");
// if (StringUtils.isNotEmpty(value)) {
// list = Arrays.asList(value.split(","));
// }
// }
// return list;
// }
}

View File

@ -2,8 +2,7 @@ package com.bonus.material.ma.service.impl;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import com.bonus.common.biz.constant.MaterialConstants;
import com.bonus.common.biz.enums.TmTaskTypeEnum;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.web.domain.AjaxResult;
@ -47,7 +46,7 @@ public class SupplierInfoServiceImpl implements ISupplierInfoService {
SupplierInfo supplierInfo = supplierInfoMapper.selectSupplierInfoBySupplierId(supplierId);
BmFileInfo bmFileInfo = new BmFileInfo();
bmFileInfo.setModelId(supplierInfo.getSupplierId());
bmFileInfo.setTaskType(MaterialConstants.TASK_TYPE_WUZI_CHANGJIA);
bmFileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_FACTORY_MANAGEMENT.getTaskTypeId());
List<BmFileInfo> fileInfos = bmFileInfoMapper.selectBmFileInfoList(bmFileInfo);
supplierInfo.setBmFileInfos(fileInfos);
return supplierInfo;
@ -108,7 +107,7 @@ public class SupplierInfoServiceImpl implements ISupplierInfoService {
if (updatedSupplierInfoResult > 0) {
BmFileInfo bmFileInfoToDelete = new BmFileInfo();
bmFileInfoToDelete.setModelId(supplierInfo.getSupplierId());
bmFileInfoToDelete.setTaskType(MaterialConstants.TASK_TYPE_WUZI_CHANGJIA);
bmFileInfoToDelete.setTaskType(TmTaskTypeEnum.TM_TASK_FACTORY_MANAGEMENT.getTaskTypeId());
bmFileInfoMapper.deleteBmFileInfoByBizInfo(bmFileInfoToDelete);
if (CollectionUtils.isEmpty(supplierInfo.getBmFileInfos())) {
return AjaxResult.success("修改任务成功,无营业执照附件");
@ -140,7 +139,7 @@ public class SupplierInfoServiceImpl implements ISupplierInfoService {
for (int i = 0; i < supplierIds.length; i++) {
bmFileInfoToDelete = new BmFileInfo();
bmFileInfoToDelete.setModelId(supplierIds[i]);
bmFileInfoToDelete.setTaskType(MaterialConstants.TASK_TYPE_WUZI_CHANGJIA);
bmFileInfoToDelete.setTaskType(TmTaskTypeEnum.TM_TASK_FACTORY_MANAGEMENT.getTaskTypeId());
bmFileInfoMapper.deleteBmFileInfoByBizInfo(bmFileInfoToDelete);
}
return supplierInfoMapper.deleteSupplierInfoBySupplierIds(supplierIds);

View File

@ -1,44 +1,44 @@
package com.bonus.material.purchase.config;
import lombok.Getter;
/**
* @author : 阮世耀
* @version : 1.0
* @PackagePath: com.bonus.material.purchase.config
* @CreateTime: 2024-10-21 16:13
* @Description: 新购模块阶段枚举
*/
@Getter
public enum PurchaseModelEnum {
PURCHASE_MODEL_MANAGE("新购管理"),
PURCHASE_MODEL_CONFIRM("新购确认"),
PURCHASE_MODEL_CHECK("新购验收"),
PURCHASE_MODEL_BIND("新购绑定"),
PURCHASE_MODEL_STORE("新购入库");
private final String modelName;
/**
* 定义构造函数
* @param modelName 模块名称
*/
PurchaseModelEnum(String modelName) {
this.modelName = modelName;
}
/**
* 判断传入的参数是否存在于枚举类中
* @return 如果存在返回 true否则返回 false
*/
public static boolean containsModelName(String modelName) {
for (PurchaseModelEnum model : PurchaseModelEnum.values()) {
if (model.getModelName().equals(modelName)) {
return true;
}
}
return false;
}
}
//package com.bonus.material.purchase.config;
//
//import lombok.Getter;
//
///**
// * @author : 阮世耀
// * @version : 1.0
// * @PackagePath: com.bonus.material.purchase.config
// * @CreateTime: 2024-10-21 16:13
// * @Description: 新购模块阶段枚举
// */
//@Getter
//public enum PurchaseModelEnum {
//
// PURCHASE_MODEL_MANAGE("新购管理"),
// PURCHASE_MODEL_CONFIRM("新购确认"),
// PURCHASE_MODEL_CHECK("新购验收"),
// PURCHASE_MODEL_BIND("新购绑定"),
// PURCHASE_MODEL_STORE("新购入库");
//
// private final String modelName;
//
// /**
// * 定义构造函数
// * @param modelName 模块名称
// */
// PurchaseModelEnum(String modelName) {
// this.modelName = modelName;
// }
//
//
// /**
// * 判断传入的参数是否存在于枚举类中
// * @return 如果存在返回 true否则返回 false
// */
// public static boolean containsModelName(String modelName) {
// for (PurchaseModelEnum model : PurchaseModelEnum.values()) {
// if (model.getModelName().equals(modelName)) {
// return true;
// }
// }
// return false;
// }
//}

View File

@ -1,41 +1,41 @@
package com.bonus.material.purchase.config;
import lombok.Getter;
/**
* @author : 阮世耀
* @version : 1.0
* @PackagePath: com.bonus.material.purchase.config
* @CreateTime: 2024-10-22 13:08
* @Description: 新购任务信息枚举
*/
@Getter
public enum PurchaseTaskEnum {
PURCHASE_TASK_STATUS_WAIT_SUBMIT(122, 0, "待提交", "purchase_task_status", 0),
PURCHASE_TASK_STATUS_WAIT_NOTICE(123, 1, "待通知", "purchase_task_status", 0),
PURCHASE_TASK_STATUS_WAIT_CHECK(124, 2,"待验收", "purchase_task_status", 0),
PURCHASE_TASK_STATUS_WAIT_BIND(125, 3,"待绑定", "purchase_task_status", 0),
PURCHASE_TASK_STATUS_WAIT_IN(126, 4,"待入库", "purchase_task_status", 0),
PURCHASE_TASK_STATUS_FINISH_OK(127, 5,"已完成", "purchase_task_status", 0),
PURCHASE_TASK_STATUS_CHECK_NO(128, 6,"待验收(驳回后)", "purchase_task_status", 0),
PURCHASE_TASK_STATUS_BIND_NO(129, 7,"待绑定(驳回后)", "purchase_task_status", 0),
PURCHASE_TASK_STATUS_IN_NO(130, 8,"待入库(驳回后)", "purchase_task_status", 0),
PURCHASE_TASK_STATUS_PART_IN(131, 9,"入库进行中", "purchase_task_status", 0),
PURCHASE_TASK_STATUS_FINISH_NO(132, 10,"未完成", "purchase_task_status", 0);
private final Integer taskStatusCode;
private final Integer taskStatusValue;
private final String taskStatusName;
private final String taskTypeValue;
private final Integer taskTypeId;
PurchaseTaskEnum(Integer taskStatusCode, Integer taskStatusValue, String taskStatusName, String taskTypeValue, Integer taskTypeId) {
this.taskStatusCode = taskStatusCode;
this.taskStatusValue = taskStatusValue;
this.taskStatusName = taskStatusName;
this.taskTypeValue = taskTypeValue;
this.taskTypeId = taskTypeId;
}
}
//package com.bonus.material.purchase.config;
//
//import lombok.Getter;
//
///**
// * @author : 阮世耀
// * @version : 1.0
// * @PackagePath: com.bonus.material.purchase.config
// * @CreateTime: 2024-10-22 13:08
// * @Description: 新购任务信息枚举
// */
//@Getter
//public enum PurchaseTaskEnum {
//
// PURCHASE_TASK_STATUS_WAIT_SUBMIT(122, 0, "待提交", "purchase_task_status", 0),
// PURCHASE_TASK_STATUS_WAIT_NOTICE(123, 1, "待通知", "purchase_task_status", 0),
// PURCHASE_TASK_STATUS_WAIT_CHECK(124, 2,"待验收", "purchase_task_status", 0),
// PURCHASE_TASK_STATUS_WAIT_BIND(125, 3,"待绑定", "purchase_task_status", 0),
// PURCHASE_TASK_STATUS_WAIT_IN(126, 4,"待入库", "purchase_task_status", 0),
// PURCHASE_TASK_STATUS_FINISH_OK(127, 5,"已完成", "purchase_task_status", 0),
// PURCHASE_TASK_STATUS_CHECK_NO(128, 6,"待验收(驳回后)", "purchase_task_status", 0),
// PURCHASE_TASK_STATUS_BIND_NO(129, 7,"待绑定(驳回后)", "purchase_task_status", 0),
// PURCHASE_TASK_STATUS_IN_NO(130, 8,"待入库(驳回后)", "purchase_task_status", 0),
// PURCHASE_TASK_STATUS_PART_IN(131, 9,"入库进行中", "purchase_task_status", 0),
// PURCHASE_TASK_STATUS_FINISH_NO(132, 10,"未完成", "purchase_task_status", 0);
//
//
// private final Integer taskStatusCode;
// private final Integer taskStatusValue;
// private final String taskStatusName;
// private final String taskTypeValue;
// private final Integer taskTypeId;
//
// PurchaseTaskEnum(Integer taskStatusCode, Integer taskStatusValue, String taskStatusName, String taskTypeValue, Integer taskTypeId) {
// this.taskStatusCode = taskStatusCode;
// this.taskStatusValue = taskStatusValue;
// this.taskStatusName = taskStatusName;
// this.taskTypeValue = taskTypeValue;
// this.taskTypeId = taskTypeId;
// }
//}

View File

@ -5,7 +5,6 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import com.bonus.common.log.enums.OperaType;
import com.bonus.material.common.annotation.PreventRepeatSubmit;
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
@ -43,9 +42,9 @@ public class PurchaseCheckInfoController extends BaseController {
@ApiOperation(value = "查询新购验收任务列表")
//@RequiresPermissions("purchase:info:list")
@GetMapping("/list")
public TableDataInfo list(PurchaseCheckInfo purchaseCheckInfo) {
public TableDataInfo list(PurchaseQueryDto purchaseQueryDto) {
startPage();
List<PurchaseCheckInfo> list = purchaseCheckInfoService.selectPurchaseCheckInfoList(purchaseCheckInfo);
List<PurchaseCheckInfo> list = purchaseCheckInfoService.selectPurchaseCheckInfoList(purchaseQueryDto);
return getDataTable(list);
}
@ -153,8 +152,8 @@ public class PurchaseCheckInfoController extends BaseController {
//@RequiresPermissions("purchase:info:export")
@SysLog(title = "新购验收任务", businessType = OperaType.EXPORT, module = "物资新购->导出新购验收任务")
@PostMapping("/export")
public void export(HttpServletResponse response, PurchaseCheckInfo purchaseCheckInfo) {
List<PurchaseCheckInfo> list = purchaseCheckInfoService.selectPurchaseCheckInfoList(purchaseCheckInfo);
public void export(HttpServletResponse response, PurchaseQueryDto purchaseQueryDto) {
List<PurchaseCheckInfo> list = purchaseCheckInfoService.selectPurchaseCheckInfoList(purchaseQueryDto);
ExcelUtil<PurchaseCheckInfo> util = new ExcelUtil<PurchaseCheckInfo>(PurchaseCheckInfo.class);
util.exportExcel(response, list, "新购验收任务数据");
}

View File

@ -34,7 +34,7 @@ public class PurchaseCheckInfo extends BaseEntity {
private Long taskId;
@ApiModelProperty(value = "任务状态")
private String taskStatus;
private Integer taskStatus;
@ApiModelProperty(value = "采购单号")
private String code;

View File

@ -1,10 +1,15 @@
package com.bonus.material.purchase.domain.dto;
import com.bonus.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @author : 阮世耀
@ -25,10 +30,12 @@ public class PurchaseQueryDto {
private String code;
@ApiModelProperty(value = "开始时间")
private String startTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
@ApiModelProperty(value = "任务状态")
private Integer taskStatus;
@ -46,4 +53,33 @@ public class PurchaseQueryDto {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date productionTime;
/** 采购日期 */
@ApiModelProperty(value = "采购日期")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date purchaseTime;
/** 到货日期 */
@ApiModelProperty(value = "到货日期")
@NotNull(message = "到货日期不能为空")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "到货日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date arrivalTime;
/** 采购员 */
@Excel(name = "采购员")
@ApiModelProperty(value = "采购员")
private Long purchaser;
/**
* 税率
*/
@ApiModelProperty(value = "税率 0~100")
@Size(max = 100, message = "税率长度必须介于 0 和 100 之间")
private BigDecimal taxRate;
/**
* 子任务状态列表, 比如待验收2,12 待绑定3,13 待入库4,14, 参考 PurchaseTaskStatusEnum.java
*/
@ApiModelProperty(value = "子任务状态列表")
private List<Integer> status;
}

View File

@ -20,7 +20,7 @@ public interface PurchaseCheckDetailsMapper {
* @param taskId * @param type 1-验收2-入库
* @return String类型多个物资类型根据逗号分割
*/
String selectMaTypeNameByTaskId(@Param("taskId") Long taskId, @Param("status") String status);
String selectMaTypeNameByTaskId(@Param("taskId") Long taskId, @Param("status") Integer status);
/**
@ -35,7 +35,7 @@ public interface PurchaseCheckDetailsMapper {
* 根据任务id查询新购验收任务详细列表--Join查询
* @param taskId 任务id
*/
List<PurchaseCheckDetails> selectPurchaseCheckDetailsListByTaskId(@Param("taskId") Long taskId, @Param("status") String status);
List<PurchaseCheckDetails> selectPurchaseCheckDetailsListByTaskId(@Param("taskId") Long taskId, @Param("status") Integer status);
/**
* 根据任务id查询新购验收任务详细列表--Join查询
@ -84,7 +84,7 @@ public interface PurchaseCheckDetailsMapper {
int updatePurchaseDetails(PurchaseCheckDetails details);
int getCountOfNoneThisStatus(@Param("taskId") Long taskId, @Param("newTaskStatus") Integer newTaskStatus);
int getCountOfNoneThisStatus(@Param("taskId") Long taskId, @Param("status") Integer status);
/**
* 删除新购验收任务详细

View File

@ -2,6 +2,7 @@ package com.bonus.material.purchase.mapper;
import java.util.List;
import com.bonus.material.purchase.domain.PurchaseCheckInfo;
import com.bonus.material.purchase.domain.dto.PurchaseQueryDto;
import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;
/**
@ -30,10 +31,10 @@ public interface PurchaseCheckInfoMapper {
/**
* 查询新购验收任务列表--多表关联查询
*
* @param purchaseCheckInfo 新购验收任务
* @param purchaseQueryDto 新购验收任务
* @return 新购验收任务集合
*/
List<PurchaseCheckInfo> selectPurchaseCheckInfoJoinList(PurchaseCheckInfo purchaseCheckInfo);
List<PurchaseCheckInfo> selectPurchaseCheckInfoJoinList(PurchaseQueryDto purchaseQueryDto);
/**
* 根据任务id查询任务单外层信息

View File

@ -27,10 +27,10 @@ public interface IPurchaseCheckInfoService {
/**
* 查询新购验收任务列表
*
* @param purchaseCheckInfo 新购验收任务
* @param purchaseQueryDto 新购验收任务
* @return 新购验收任务集合
*/
List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseCheckInfo purchaseCheckInfo);
List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseQueryDto purchaseQueryDto);
List<PurchaseCheckDetails> selectPurchaseCheckDetailsList(PurchaseCheckInfo purchaseCheckInfo);

View File

@ -5,8 +5,9 @@ import com.bonus.common.biz.config.DateTimeHelper;
import com.bonus.common.biz.config.QrCodeUtils;
import com.bonus.common.biz.constant.MaterialConstants;
import com.bonus.common.biz.enums.HttpCodeEnum;
import com.bonus.common.biz.enums.MaTypeManageTypeEnum;
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.purchase.config.RemoteConfig;
@ -20,7 +21,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
@ -63,7 +63,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
// 检查是否全部为 1
boolean allOnes = true;
for (String manageType : split) {
if (!MaterialConstants.ONE_CONSTANT.equals(manageType.trim())) {
if (!MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(manageType.trim())) {
allOnes = false;
// 发现不是 1跳出循环
break;
@ -194,10 +194,10 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
if (CollectionUtils.isNotEmpty(voList)) {
for (PurchaseVo purchaseVo : voList) {
if (purchaseVo.getBindNum().equals(purchaseVo.getCheckNum())) {
purchaseBindMapper.updateStatusById(MaterialConstants.FOUR_CONSTANT, purchaseVo.getPurchaseId());
purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), purchaseVo.getPurchaseId());
}
if (purchaseVo.getBindNum() < purchaseVo.getCheckNum()) {
purchaseBindMapper.updateStatusById(MaterialConstants.THREE_CONSTANT, purchaseVo.getPurchaseId());
purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND.getStatus(), purchaseVo.getPurchaseId());
}
}
}
@ -225,13 +225,13 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
* @return
*/
private int updateTaskStatus(Integer taskId, List<Integer> statusList) {
if (statusList.contains(MaterialConstants.EIGHT_CONSTANT) ||
statusList.contains(MaterialConstants.THREE_CONSTANT)) {
if (statusList.contains(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus()) ||
statusList.contains(PurchaseTaskStatusEnum.TO_BIND.getStatus())) {
return tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, taskId.toString());
} else if (!statusList.contains(MaterialConstants.EIGHT_CONSTANT) &&
!statusList.contains(MaterialConstants.THREE_CONSTANT) &&
statusList.contains(MaterialConstants.FOUR_CONSTANT)) {
return tmTaskMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, taskId.toString());
} else if (!statusList.contains(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus()) &&
!statusList.contains(PurchaseTaskStatusEnum.TO_BIND.getStatus()) &&
statusList.contains(PurchaseTaskStatusEnum.TO_STORE.getStatus())) {
return tmTaskMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), taskId.toString());
}
return 0;
}
@ -280,8 +280,9 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
if (CollectionUtils.isNotEmpty(list)) {
for (PurchaseVo purchaseVo : list) {
//更新状态为已驳回
if (purchaseVo.getStatus().equals(MaterialConstants.THREE_CONSTANT) || purchaseVo.getStatus().equals(MaterialConstants.SEVEN_CONSTANT)) {
purchaseBindMapper.updateStatusById(MaterialConstants.SEVEN_CONSTANT, purchaseVo.getPurchaseId());
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());
}
}
}
@ -291,7 +292,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
if (dto.getPurchaseId() != null) {
List<String> idList = Arrays.asList(dto.getPurchaseId().split(","));
for (String purchaseId : idList) {
purchaseBindMapper.updateStatusById(MaterialConstants.SEVEN_CONSTANT, purchaseId);
purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), purchaseId);
}
for (String id : idList) {
//根据二级页面驳回状态更新任务状态
@ -329,11 +330,12 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
.mapToInt(entry -> {
Integer taskId = entry.getKey();
List<Integer> statusList = entry.getValue();
if (statusList.contains(MaterialConstants.SEVEN_CONSTANT) || statusList.contains(MaterialConstants.THREE_CONSTANT)) {
if (statusList.contains(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus()) ||
statusList.contains(PurchaseTaskStatusEnum.TO_BIND.getStatus())) {
return tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, taskId.toString());
} else if (!statusList.contains(MaterialConstants.SEVEN_CONSTANT) && !statusList.contains(MaterialConstants.THREE_CONSTANT)
&& statusList.contains(MaterialConstants.FOUR_CONSTANT)) {
return tmTaskMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, taskId.toString());
} else if (!statusList.contains(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus()) && !statusList.contains(PurchaseTaskStatusEnum.TO_BIND.getStatus())
&& statusList.contains(PurchaseTaskStatusEnum.TO_STORE.getStatus())) {
return tmTaskMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), taskId.toString());
}
return 0;
}).sum();

View File

@ -2,20 +2,20 @@ package com.bonus.material.purchase.service.impl;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.*;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
import com.bonus.common.biz.constant.BmConfigItems;
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
import com.bonus.common.biz.enums.TmTaskTypeEnum;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.basic.domain.BmFileInfo;
import com.bonus.material.basic.mapper.BmFileInfoMapper;
import com.bonus.material.purchase.config.PurchaseTaskEnum;
import com.bonus.material.basic.service.IBmConfigService;
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
import com.bonus.material.purchase.domain.dto.PurchaseCheckDto;
import com.bonus.material.purchase.domain.dto.PurchaseDto;
@ -30,7 +30,6 @@ import org.springframework.stereotype.Service;
import com.bonus.material.purchase.mapper.PurchaseCheckInfoMapper;
import com.bonus.material.purchase.domain.PurchaseCheckInfo;
import com.bonus.material.purchase.service.IPurchaseCheckInfoService;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
@ -46,7 +45,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
public static final String TASK_TYPE_LABEL = "XG";
@Autowired
private PlatformTransactionManager transactionManager;
private IBmConfigService bmConfigService;
@Resource
private PurchaseCheckInfoMapper purchaseCheckInfoMapper;
@ -69,43 +68,47 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
@Override
public PurchaseCheckDto selectPurchaseCheckInfoById(PurchaseQueryDto purchaseQueryDto) {
PurchaseCheckDto purchaseCheckDtoResult = new PurchaseCheckDto();
PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId());
if (purchaseCheckInfo != null) {
purchaseCheckDtoResult.setPurchaseCheckInfo(purchaseCheckInfo);
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
if (purchaseCheckDetails != null) {
purchaseCheckDtoResult.setPurchaseCheckDetailsList(purchaseCheckDetails);
}
boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
List<PurchaseCheckDetails> purchaseCheckDetails;
if (isAllowPartTransfer) {
purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
} else {
purchaseQueryDto.setTaskStatus(null);
purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto);
}
purchaseCheckDtoResult.setPurchaseCheckDetailsList(purchaseCheckDetails);
return purchaseCheckDtoResult;
}
/**
* 查询新购验收任务列表
*
* @param purchaseCheckInfo 新购验收任务请求参数
*
* @param purchaseQueryDto 新购验收任务请求参数
* @return 新购验收任务
*/
@Override
public List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseCheckInfo purchaseCheckInfo) {
public List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseQueryDto purchaseQueryDto) {
List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseQueryDto);
List<PurchaseCheckInfo> purchaseCheckInfoResult = new ArrayList<>();
List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseCheckInfo)
.stream()
.filter(Objects::nonNull)
.filter(purchaseInfo -> purchaseInfo.getTaskId() != null)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(purchaseCheckInfos)) {
return purchaseCheckInfoResult;
}
boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
// TODO 下一行需要前端传1后删除
purchaseQueryDto.setTaskStatus(Objects.isNull(purchaseQueryDto.getTaskStatus()) ? PurchaseTaskStatusEnum.TO_NOTICE.getStatus() : purchaseQueryDto.getTaskStatus());
for (PurchaseCheckInfo purchaseInfo : purchaseCheckInfos) {
String purchaseMaName = purchaseCheckDetailsMapper.selectMaTypeNameByTaskId(purchaseInfo.getTaskId(), purchaseCheckInfo.getTaskStatus());
purchaseInfo.setPurchaseMaTypeName(purchaseMaName != null ? purchaseMaName : "");
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(purchaseInfo.getTaskId(), purchaseCheckInfo.getTaskStatus())
.stream()
.filter(Objects::nonNull)
.collect(Collectors.toList());
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(purchaseInfo.getTaskId(), null);
OptionalInt minStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).min();
OptionalInt maxStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).max();
if (isAllowPartTransfer) {
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> purchaseQueryDto.getTaskStatus().equals(o.getStatus())).collect(Collectors.toList());
purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskId(purchaseInfo.getTaskId(), purchaseQueryDto.getTaskStatus()));
} else {
purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskId(purchaseInfo.getTaskId(), null));
}
if (!CollectionUtils.isEmpty(purchaseCheckDetails)) {
AtomicLong purchaseMaTotalNumber = new AtomicLong(0L);
AtomicReference<BigDecimal> purchaseMaTotalPrice = new AtomicReference<>(BigDecimal.ZERO);
// 执行for循环统计采购物资数量价格
for (PurchaseCheckDetails detail : purchaseCheckDetails) {
if (detail.getPurchaseNum() == null || detail.getPurchasePrice() == null) {
continue;
@ -119,11 +122,21 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
purchaseInfo.setPurchaseMaNumber(purchaseMaTotalNumber.get());
purchaseInfo.setPurchasePrice(purchaseMaTotalPrice.get());
if (purchaseInfo.getTaxRate() != null && purchaseInfo.getPurchasePrice() != null) {
purchaseInfo.setPurchaseTaxPrice(
calculateTaxPrice(purchaseMaTotalPrice.get(), purchaseInfo.getTaxRate())
);
purchaseInfo.setPurchaseTaxPrice(calculateTaxPrice(purchaseMaTotalPrice.get(), purchaseInfo.getTaxRate()));
}
if (maxStatus.isPresent() && maxStatus.getAsInt() == PurchaseTaskStatusEnum.TO_NOTICE.getStatus()) {
purchaseInfo.setTaskStatus(PurchaseTaskStatusEnum.TASK_NOT_START.getStatus()); // 外层任务未开始
} else if (minStatus.isPresent() && minStatus.getAsInt() == PurchaseTaskStatusEnum.IN_STORE.getStatus()) {
purchaseInfo.setTaskStatus(PurchaseTaskStatusEnum.TASK_FINISHED.getStatus()); // 外层任务已完成
} else {
purchaseInfo.setTaskStatus(PurchaseTaskStatusEnum.TASK_IN_PROGRESS.getStatus()); //外层任务进行中
}
if (isAllowPartTransfer) {
purchaseCheckInfoResult.add(purchaseInfo);
} else if (minStatus.isPresent() && Integer.valueOf(minStatus.getAsInt()).equals(purchaseQueryDto.getTaskStatus())) {
// 当不允许部分物资状态流转时例如内部状态含(2,3)其中最小的状态值(2),当等于传入的状态值(2)才显示外面的列表
purchaseCheckInfoResult.add(purchaseInfo);
}
purchaseCheckInfoResult.add(purchaseInfo);
}
}
return purchaseCheckInfoResult;
@ -164,12 +177,14 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate());
purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getUsername());
try {
// 查询新购任务当月最大单号
Integer thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), Long.valueOf(PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_NOTICE.getTaskTypeId()));
// 查询出的单号值进行必要性校正
thisMonthMaxOrder = Optional.ofNullable(thisMonthMaxOrder).orElse(0);
// 生成单号
TmTask tmTask = genderTaskCode(purchaseCheckInfo, thisMonthMaxOrder);
int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId());
String taskCode = genderTaskCode(purchaseCheckInfo, thisMonthMaxOrder);
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId(),
PurchaseTaskStatusEnum.TO_NOTICE.getStatus(),
purchaseCheckInfo.getPurchaseCheckInfo().getCompanyId(), "1", thisMonthMaxOrder + 1, taskCode);
//tmTask.setMonthOrder(thisMonthMaxOrder);
//tmTask.setCode(genderTaskCode(purchaseCheckInfo, thisMonthMaxOrder));
tmTask.setCreateTime(DateUtils.getNowDate());
tmTaskMapper.insertTmTask(tmTask);
Long taskId = tmTask.getTaskId();
purchaseCheckInfo.getPurchaseCheckInfo().setTaskId(taskId);
@ -190,6 +205,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
if (!CollectionUtils.isEmpty(purchaseCheckDetailsList)) {
for (PurchaseCheckDetails details : purchaseCheckDetailsList) {
details.setTaskId(taskId);
details.setStatus(PurchaseTaskStatusEnum.TO_NOTICE.getStatus());
details.setInputStatus("0");
List<BmFileInfo> bmFileInfos = details.getBmFileInfos();
if (!CollectionUtils.isEmpty(bmFileInfos)) {
@ -284,15 +300,8 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
* @param thisMonthMaxOrder 当月最大单号
* @return 任务对象
*/
private static TmTask genderTaskCode(PurchaseCheckDto purchaseCheckInfo, Integer thisMonthMaxOrder) {
String taskCode = TASK_TYPE_LABEL + DateUtils.getCurrentYear() + DateUtils.getCurrentMonth() + String.format("%06d", thisMonthMaxOrder + 1);
// 构造函数创建任务对象
return new TmTask(null,
PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_NOTICE.getTaskTypeId(),
PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_NOTICE.getTaskStatusValue(),
taskCode, purchaseCheckInfo.getPurchaseCheckInfo().getCompanyId(), "1", thisMonthMaxOrder + 1
);
private static String genderTaskCode(PurchaseCheckDto purchaseCheckInfo, Integer thisMonthMaxOrder) {
return TASK_TYPE_LABEL + DateUtils.getCurrentYear() + DateUtils.getCurrentMonth() + String.format("%06d", thisMonthMaxOrder + 1);
}
/**
@ -326,6 +335,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
@Override
@Transactional
public int deletePurchaseCheckInfoByIds(Long[] ids) {
tmTaskMapper.deleteTmTaskByPurchaseIds(ids);
purchaseCheckDetailsMapper.deletePurchaseCheckDetailsByParentIds(ids);
return purchaseCheckInfoMapper.deletePurchaseCheckInfoByIds(ids);
}

View File

@ -1,12 +1,12 @@
package com.bonus.material.purchase.service.impl;
import java.util.List;
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
import com.bonus.common.biz.enums.TmTaskTypeEnum;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.sms.SmsUtils;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.purchase.config.PurchaseTaskEnum;
import com.bonus.material.purchase.domain.dto.PurchaseNoticePersonDto;
import com.bonus.material.task.domain.TmTask;
import com.bonus.material.task.mapper.TmTaskMapper;
@ -78,14 +78,14 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
// 发送短信后修改任务状态
tmTaskMapper.updateTmTask(new TmTask()
.setTaskId(purchaseNoticePersonDto.getTaskId())
.setTaskType(PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_CHECK.getTaskTypeId())
.setTaskStatus(PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_CHECK.getTaskStatusValue())
.setTaskType(TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId())
.setTaskStatus(PurchaseTaskStatusEnum.TO_CHECK.getStatus())
);
// 修改采购明细的任务状态
purchaseCheckDetailsService.batchUpdateDetailsTaskStatus(
purchaseNoticePersonDto.getTaskId(),
PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_CHECK.getTaskStatusValue(), ""
PurchaseTaskStatusEnum.TO_CHECK.getStatus(), ""
);
return AjaxResult.success("短信发送成功:" + sendResult);

View File

@ -1,8 +1,9 @@
package com.bonus.material.purchase.service.impl;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.bonus.common.biz.constant.MaterialConstants;
import com.bonus.common.biz.enums.HttpCodeEnum;
import com.bonus.common.biz.enums.MaTypeManageTypeEnum;
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.ma.mapper.MachineMapper;
@ -15,16 +16,12 @@ import com.bonus.material.purchase.domain.vo.PurchaseVo;
import com.bonus.material.task.mapper.TmTaskMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.bonus.common.biz.constant.MaterialConstants.ONE_CONSTANT;
import static com.bonus.common.biz.constant.MaterialConstants.ZERO_CONSTANT;
/**
* 新购入库实现层
* @Author ma_sh
@ -164,7 +161,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
* @return
*/
private AjaxResult rejectByPurchaseIds(PurchaseDto purchaseDto) {
purchaseDto.setStatus(MaterialConstants.EIGHT_CONSTANT);
purchaseDto.setStatus(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus());
int result = 0;
try {
List<PurchaseVo> details = purchaseBindMapper.getDetails(purchaseDto);
@ -188,7 +185,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
* @return
*/
private int updateRejectAndStatus(int purchaseId) {
return purchaseStorageMapper.updateStatusById(MaterialConstants.EIGHT_CONSTANT, purchaseId);
return purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus(), purchaseId);
}
/**
@ -205,8 +202,8 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
List<PurchaseVo> details;
details = purchaseBindMapper.getDetails(dto);
for (PurchaseVo purchaseVo : details) {
if (purchaseVo.getStatus().equals(MaterialConstants.EIGHT_CONSTANT) || purchaseVo.getStatus().equals(MaterialConstants.FOUR_CONSTANT)) {
result += purchaseStorageMapper.updateStatusById(MaterialConstants.EIGHT_CONSTANT, Integer.parseInt(purchaseVo.getPurchaseId()));
if (purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus()) || purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_STORE.getStatus())) {
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus(), Integer.parseInt(purchaseVo.getPurchaseId()));
}
}
details = purchaseBindMapper.getDetails(dto);
@ -227,7 +224,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
* @return
*/
private AjaxResult processByPurchaseIds(PurchaseDto purchaseDto) {
purchaseDto.setStatus(MaterialConstants.FIVE_CONSTANT);
purchaseDto.setStatus(PurchaseTaskStatusEnum.IN_STORE.getStatus());
int result = 0;
try {
List<PurchaseVo> details = purchaseBindMapper.getDetails(purchaseDto);
@ -252,10 +249,10 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
* @return
*/
private int updatePurchaseInfoAndDetails(PurchaseVo detail, int purchaseId) {
int result = purchaseStorageMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, purchaseId);
if (ZERO_CONSTANT.equals(Integer.valueOf(detail.getManageType()))) {
int result = purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), purchaseId);
if (MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(Integer.valueOf(detail.getManageType()))) {
result += purchaseStorageMapper.insertMachine(detail);
} else if (ONE_CONSTANT.equals(Integer.valueOf(detail.getManageType()))) {
} else if (MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(Integer.valueOf(detail.getManageType()))) {
result += purchaseStorageMapper.updateStorageNum(detail.getBindNum(), detail.getTypeId());
}
return result + purchaseStorageMapper.updateNum(detail.getPurchaseId(), detail.getBindNum());
@ -296,10 +293,10 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
return details.stream()
.mapToInt(detail -> {
int result = purchaseStorageMapper.updateNum(detail.getPurchaseId(), detail.getBindNum());
result += purchaseStorageMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, Integer.parseInt(detail.getPurchaseId()));
if (ZERO_CONSTANT.equals(Integer.valueOf(detail.getManageType()))) {
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Integer.parseInt(detail.getPurchaseId()));
if (MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(Integer.valueOf(detail.getManageType()))) {
result += purchaseStorageMapper.insertMachine(detail);
} else if (ONE_CONSTANT.equals(Integer.valueOf(detail.getManageType()))) {
} else if (MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(Integer.valueOf(detail.getManageType()))) {
result += purchaseStorageMapper.updateStorageNum(detail.getBindNum(), detail.getTypeId());
}
return result;
@ -322,11 +319,11 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
.mapToInt(entry -> {
Integer id = entry.getKey();
List<Integer> statusList = entry.getValue();
if (statusList.contains(MaterialConstants.FOUR_CONSTANT) || statusList.contains(MaterialConstants.EIGHT_CONSTANT)) {
if (statusList.contains(PurchaseTaskStatusEnum.TO_STORE.getStatus()) || statusList.contains(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus())) {
return tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, id.toString());
} else if (!statusList.contains(MaterialConstants.FOUR_CONSTANT) && !statusList.contains(MaterialConstants.EIGHT_CONSTANT)
&& statusList.contains(MaterialConstants.FIVE_CONSTANT)) {
return tmTaskMapper.updateStatusById(MaterialConstants.FIVE_CONSTANT, id.toString());
} else if (!statusList.contains(PurchaseTaskStatusEnum.TO_STORE.getStatus()) && !statusList.contains(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus())
&& statusList.contains(PurchaseTaskStatusEnum.IN_STORE.getStatus())) {
return tmTaskMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), id.toString());
}
return 0;
}).sum();

View File

@ -1,6 +1,7 @@
package com.bonus.material.task.domain;
import com.bonus.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -8,6 +9,8 @@ import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 任务对象 tm_task
* @author syruan
@ -51,14 +54,14 @@ public class TmTask extends BaseEntity {
@ApiModelProperty(value = "任务当月序号 例如:1 插入及查询时请携带任务类型")
private Integer monthOrder;
public TmTask(Long taskId, Integer taskType, Integer taskStatus, String code, Long companyId, String status, Integer monthOrder) {
public TmTask(Long taskId, Integer taskType, Integer taskStatus, Long companyId, String status, Integer monthOrder, String code) {
this.taskId = taskId;
this.taskType = taskType;
this.taskStatus = taskStatus;
this.code = code;
this.companyId = companyId;
this.status = status;
this.monthOrder = monthOrder;
this.code = code;
}
public TmTask() {}

View File

@ -23,9 +23,9 @@ public interface TmTaskMapper {
* 查询当年当月最大任务序号用于生成任务编号 by 分类型查询
* @param year
* @param month
* @param type 任务类型字典表中获取例如新购是:16
* @param taskType 任务类型字典表中获取例如新购是:16
*/
Integer getMonthMaxOrderByDate(@Param("year") String year, @Param("month") String month, @Param("type") Long type);
int getMonthMaxOrderByDate(@Param("year") String year, @Param("month") String month, @Param("taskType") Integer taskType);
/**
* 查询任务列表
@ -82,4 +82,6 @@ public interface TmTaskMapper {
* @return
*/
int updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") String id);
int deleteTmTaskByPurchaseIds(Long[] ids);
}

View File

@ -3,7 +3,8 @@ package com.bonus.material.task.service.impl;
import java.util.ArrayList;
import java.util.List;
import com.bonus.common.biz.constant.MaterialConstants;
import com.bonus.common.biz.constant.BmConfigItems;
import com.bonus.common.biz.enums.TmTaskTypeEnum;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.material.basic.service.IBmConfigService;
@ -117,10 +118,10 @@ public class TmTaskAuditLogServiceImpl implements ITmTaskAuditLogService {
public TmTaskAuditResult getAuditResult(TmTaskAuditLog tmTaskAuditLog) {
List<String> needRoles = new ArrayList<>();
if (MaterialConstants.LEASE_TASK_TYPE.equals(tmTaskAuditLog.getTaskType())) {
needRoles = bmConfigService.getLeaseTaskAuditRoleIds();
} else if (MaterialConstants.BACK_TASK_TYPE.equals(tmTaskAuditLog.getTaskType())) {
needRoles = bmConfigService.getBackTaskAuditRoleIds();
if (TmTaskTypeEnum.TM_TASK_LEASE.getTaskTypeId().equals(tmTaskAuditLog.getTaskType())) {
needRoles = bmConfigService.getBmConfigResultAsList(BmConfigItems.LEASE_TASK_AUDIT_ROLE_IDS);
} else if (TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId().equals(tmTaskAuditLog.getTaskType())) {
needRoles = bmConfigService.getBmConfigResultAsList(BmConfigItems.BACK_TASK_AUDIT_ROLE_IDS);
} //TODO, add more tasks logic to get needRoles
if (CollectionUtils.isEmpty(needRoles)) {

View File

@ -301,8 +301,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from
purchase_check_details
where
`status` != #{newTaskStatus}
and del_flag = '0'
`status` != #{status}
and (del_flag = '0' or del_flag is null)
and task_id = #{taskId}
</select>
</mapper>

View File

@ -134,7 +134,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="taskId != null "> and pci.task_id = #{taskId}</if>
<if test="purchaseTime != null "> and pci.purchase_time = #{purchaseTime}</if>
<if test="arrivalTime != null "> and pci.arrival_time = #{arrivalTime}</if>
<if test="startTime != null "> and date_format(pci.arrival_time,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')</if>
<if test="endTime != null "> and date_format(pci.arrival_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')</if>
<if test="purchaser != null "> and pci.purchaser = #{purchaser}</if>
<if test="supplierId != null "> and pci.supplier_id = #{supplierId}</if>
<if test="taxRate != null "> and pci.tax_rate = #{taxRate}</if>

View File

@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectTmTaskVo">
select task_id, task_type, task_status, code, create_by, create_time,
update_by, update_time, remark, company_id, status , month_order
update_by, update_time, remark, company_id, status, month_order
from tm_task
</sql>
@ -31,6 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskType != null "> and task_type = #{taskType}</if>
<if test="taskStatus != null "> and task_status = #{taskStatus}</if>
<if test="code != null and code != ''"> and code = #{code}</if>
<if test="monthOrder != null and code != ''"> and month_order = #{monthOrder}</if>
<if test="companyId != null "> and company_id = #{companyId}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
</where>
@ -47,6 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskType != null">task_type,</if>
<if test="taskStatus != null">task_status,</if>
<if test="code != null">`code`,</if>
<if test="monthOrder != null">month_order,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
@ -59,6 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskType != null">#{taskType},</if>
<if test="taskStatus != null">#{taskStatus},</if>
<if test="code != null">#{code},</if>
<if test="monthOrder != null">#{monthOrder},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
@ -75,6 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskType != null">task_type = #{taskType},</if>
<if test="taskStatus != null">task_status = #{taskStatus},</if>
<if test="code != null">code = #{code},</if>
<if test="monthOrder != null">month_order = #{monthOrder},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
@ -105,8 +109,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select max(month_order) from tm_task
where
month(create_time) = #{month} and year(create_time) = #{year}
<if test="type != null and type !=''">
and task_type = #{type}
<if test="taskType != null and taskType !=''">
and task_type = #{taskType}
</if>
</select>
@ -114,4 +118,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update tm_task set task_status = #{newTaskStatus}
where task_id = #{taskId}
</update>
<delete id="deleteTmTaskByPurchaseIds" parameterType="String">
delete from tm_task where task_id in
(
select task_id from purchase_check_info where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
)
</delete>
</mapper>