新购优化
This commit is contained in:
parent
d6730c9bf8
commit
366db7dba7
|
|
@ -84,7 +84,7 @@ public class StoreLogAspect {
|
||||||
bmStorageLog.setStatus(200L);
|
bmStorageLog.setStatus(200L);
|
||||||
// 请求的地址
|
// 请求的地址
|
||||||
bmStorageLog.setMethod(StringUtils.substring(Objects.requireNonNull(ServletUtils.getRequest()).getRequestURI(), 0, 255));
|
bmStorageLog.setMethod(StringUtils.substring(Objects.requireNonNull(ServletUtils.getRequest()).getRequestURI(), 0, 255));
|
||||||
String username = SecurityUtils.getUsername();
|
String username = SecurityUtils.getLoginUser().getUsername();
|
||||||
R<LoginUser> userInfo = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
|
R<LoginUser> userInfo = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
|
||||||
if (ObjectUtils.isNotEmpty(userInfo))
|
if (ObjectUtils.isNotEmpty(userInfo))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -37,17 +37,21 @@ public class TreeSelect implements Serializable {
|
||||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||||
private List<TreeSelect> children;
|
private List<TreeSelect> children;
|
||||||
|
|
||||||
|
/** 子节点数量 */
|
||||||
|
private Integer number;
|
||||||
|
|
||||||
public TreeSelect() {
|
public TreeSelect() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public TreeSelect(Long id, String label, Long houseId, Integer level, Long parentId, List<TreeSelect> children) {
|
public TreeSelect(Long id, String label, Long houseId, Integer level, Long parentId, List<TreeSelect> children, Integer number) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.label = label;
|
this.label = label;
|
||||||
this.houseId = houseId;
|
this.houseId = houseId;
|
||||||
this.level = level;
|
this.level = level;
|
||||||
this.parentId = parentId;
|
this.parentId = parentId;
|
||||||
this.children = children;
|
this.children = children;
|
||||||
|
this.number = number;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TreeSelect(Long id, String label, Integer level, Long parentId) {
|
public TreeSelect(Long id, String label, Integer level, Long parentId) {
|
||||||
|
|
|
||||||
|
|
@ -45,11 +45,9 @@ public class Type extends BaseEntity {
|
||||||
|
|
||||||
/** 库管员昵称 */
|
/** 库管员昵称 */
|
||||||
@ApiModelProperty(value = "库管员昵称id")
|
@ApiModelProperty(value = "库管员昵称id")
|
||||||
@Excel(name = "库管员昵称id",sort = 8)
|
|
||||||
private String keeperId;
|
private String keeperId;
|
||||||
|
|
||||||
/** 左侧树用户id */
|
/** 左侧树用户id */
|
||||||
@Excel(name = "库管员昵称id")
|
|
||||||
@ApiModelProperty(value = "左侧树用户id")
|
@ApiModelProperty(value = "左侧树用户id")
|
||||||
private List<String> keeperArr;
|
private List<String> keeperArr;
|
||||||
|
|
||||||
|
|
@ -60,12 +58,10 @@ public class Type extends BaseEntity {
|
||||||
|
|
||||||
/** 维修员昵称 */
|
/** 维修员昵称 */
|
||||||
@ApiModelProperty(value = "维修员昵称id")
|
@ApiModelProperty(value = "维修员昵称id")
|
||||||
@Excel(name = "维修员昵称id",sort = 10)
|
|
||||||
private String repairerId;
|
private String repairerId;
|
||||||
private List<String> repairerArr;
|
private List<String> repairerArr;
|
||||||
/** 仓库名称 */
|
/** 仓库名称 */
|
||||||
@ApiModelProperty(value = "物资仓库名称")
|
@ApiModelProperty(value = "物资仓库名称")
|
||||||
@Excel(name = "物资仓库名称", sort = 6)
|
|
||||||
private String houseName;
|
private String houseName;
|
||||||
|
|
||||||
/** 仓库Id */
|
/** 仓库Id */
|
||||||
|
|
@ -116,14 +112,13 @@ public class Type extends BaseEntity {
|
||||||
|
|
||||||
/** 排序 */
|
/** 排序 */
|
||||||
@ApiModelProperty(value = "排序")
|
@ApiModelProperty(value = "排序")
|
||||||
@Excel(name = "排序",sort = 14)
|
|
||||||
private int sortNum;
|
private int sortNum;
|
||||||
|
|
||||||
@ApiModelProperty(value = "最大排序,用于Tree排序")
|
@ApiModelProperty(value = "最大排序,用于Tree排序")
|
||||||
private transient int maxSortPriority;
|
private transient int maxSortPriority;
|
||||||
|
|
||||||
/** 管理方式(0编号 1计数) */
|
/** 管理方式(0编号 1计数) */
|
||||||
@Excel(name = "管理方式(0编号 1计数)",sort = 15)
|
@Excel(name = "管理方式(0编码 1数量)",readConverterExp = "0=编码,1=数量")
|
||||||
@ApiModelProperty(value = "管理方式(0编号 1计数)")
|
@ApiModelProperty(value = "管理方式(0编号 1计数)")
|
||||||
private String manageType;
|
private String manageType;
|
||||||
|
|
||||||
|
|
@ -188,7 +183,6 @@ public class Type extends BaseEntity {
|
||||||
private String holdingTime;
|
private String holdingTime;
|
||||||
|
|
||||||
/** 库存预警数量 */
|
/** 库存预警数量 */
|
||||||
@Excel(name = "库存预警数量",sort = 24)
|
|
||||||
@ApiModelProperty(value = "库存预警数量")
|
@ApiModelProperty(value = "库存预警数量")
|
||||||
private Long warnNum;
|
private Long warnNum;
|
||||||
|
|
||||||
|
|
@ -196,11 +190,9 @@ public class Type extends BaseEntity {
|
||||||
private String delFlag;
|
private String delFlag;
|
||||||
|
|
||||||
/** 是否计划管理(0代表否 1代表是) */
|
/** 是否计划管理(0代表否 1代表是) */
|
||||||
@Excel(name = "是否计划管理", readConverterExp = "0=代表否,1=代表是",sort = 25)
|
|
||||||
private String isPlan;
|
private String isPlan;
|
||||||
|
|
||||||
/** 是否安措费机具(0代表否1代表是) */
|
/** 是否安措费机具(0代表否1代表是) */
|
||||||
@Excel(name = "是否安措费机具", readConverterExp = "0=代表否1代表是",sort = 26)
|
|
||||||
private String isAncuo;
|
private String isAncuo;
|
||||||
|
|
||||||
/** 厂家规格型号 */
|
/** 厂家规格型号 */
|
||||||
|
|
@ -209,7 +201,6 @@ public class Type extends BaseEntity {
|
||||||
private String facModel;
|
private String facModel;
|
||||||
|
|
||||||
/** 左侧树用户id */
|
/** 左侧树用户id */
|
||||||
@Excel(name = "左侧树用户id",sort = 28)
|
|
||||||
@ApiModelProperty(value = "左侧树用户id")
|
@ApiModelProperty(value = "左侧树用户id")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
|
|
@ -217,7 +208,6 @@ public class Type extends BaseEntity {
|
||||||
private Long companyId;
|
private Long companyId;
|
||||||
|
|
||||||
/** 推送智慧工程定义的门类分类机具编码 */
|
/** 推送智慧工程定义的门类分类机具编码 */
|
||||||
@Excel(name = "推送智慧工程定义的门类分类机具编码",sort = 29)
|
|
||||||
@ApiModelProperty(value = "推送智慧工程定义的门类分类机具编码")
|
@ApiModelProperty(value = "推送智慧工程定义的门类分类机具编码")
|
||||||
private String intelligentCode;
|
private String intelligentCode;
|
||||||
|
|
||||||
|
|
@ -232,4 +222,7 @@ public class Type extends BaseEntity {
|
||||||
@ApiModelProperty(value = "抽检比例")
|
@ApiModelProperty(value = "抽检比例")
|
||||||
private String samplingRatio;
|
private String samplingRatio;
|
||||||
|
|
||||||
|
/** 子节点数量 */
|
||||||
|
private Integer number;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -196,4 +196,11 @@ public interface TypeMapper {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<MaTypeVo> getListLevel(MaTypeVo maTypeVo);
|
List<MaTypeVo> getListLevel(MaTypeVo maTypeVo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数量
|
||||||
|
* @param type
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer getCount(Type type);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -302,6 +302,6 @@ public class StandardConfigManageServiceImpl implements StandardConfigManageServ
|
||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
.map(this::convertToTreeSelect)
|
.map(this::convertToTreeSelect)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
return new TreeSelect(type.getId(), type.getConfigName(), null, Integer.valueOf(type.getLevel()), type.getParentId(), children);
|
return new TreeSelect(type.getId(), type.getConfigName(), null, Integer.valueOf(type.getLevel()), type.getParentId(), children, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -585,6 +585,14 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
@Override
|
@Override
|
||||||
public List<TreeSelect> getMaTypeTree(String typeName, String parentId) {
|
public List<TreeSelect> getMaTypeTree(String typeName, String parentId) {
|
||||||
List<Type> maTypes = typeMapper.selectMaTypeTree();
|
List<Type> maTypes = typeMapper.selectMaTypeTree();
|
||||||
|
if (CollectionUtils.isNotEmpty(maTypes)) {
|
||||||
|
// 根据typeId查询子集数量
|
||||||
|
for (Type type : maTypes) {
|
||||||
|
if ("3".equals(type.getLevel())) {
|
||||||
|
type.setNumber(typeMapper.getCount(type));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
List<Type> builtMaTypeList = buildMaTypeTree(maTypes);
|
List<Type> builtMaTypeList = buildMaTypeTree(maTypes);
|
||||||
|
|
||||||
// 查询顶级节点的仓库配置信息
|
// 查询顶级节点的仓库配置信息
|
||||||
|
|
@ -639,7 +647,7 @@ public class TypeServiceImpl implements ITypeService {
|
||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
.map(this::convertToTreeSelect)
|
.map(this::convertToTreeSelect)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
return new TreeSelect(type.getTypeId(), type.getTypeName(), type.getHouseId(), Integer.valueOf(type.getLevel()),type.getParentId(), children);
|
return new TreeSelect(type.getTypeId(), type.getTypeName(), type.getHouseId(), Integer.valueOf(type.getLevel()),type.getParentId(), children, type.getNumber());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -135,4 +135,10 @@ public class PartTypeCheckInfo extends BaseEntity {
|
||||||
@ApiModelProperty(value = "新购模块阶段名称")
|
@ApiModelProperty(value = "新购模块阶段名称")
|
||||||
private String modelName;
|
private String modelName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "新购配件任务状态")
|
||||||
|
private Integer purchaseStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "会签层级 1 代表供应科层级,2 代表技术科层级,3 代表库管班层级")
|
||||||
|
private String signLevel;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
|
||||||
try {
|
try {
|
||||||
AjaxResult result = new AjaxResult();
|
AjaxResult result = new AjaxResult();
|
||||||
if (!CollectionUtils.isEmpty(partChaseVerifyVo.getPurchaseCheckDetailsList())) {
|
if (!CollectionUtils.isEmpty(partChaseVerifyVo.getPurchaseCheckDetailsList())) {
|
||||||
|
Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
||||||
if (BooleanUtils.isTrue(partChaseVerifyVo.getVerifyPass())) {
|
if (BooleanUtils.isTrue(partChaseVerifyVo.getVerifyPass())) {
|
||||||
// 验收通过处理流程
|
// 验收通过处理流程
|
||||||
for (PartTypeCheckDetails details : partChaseVerifyVo.getPurchaseCheckDetailsList()) {
|
for (PartTypeCheckDetails details : partChaseVerifyVo.getPurchaseCheckDetailsList()) {
|
||||||
|
|
@ -66,13 +67,13 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
|
||||||
if (null != details && null != details.getTaskId()) {
|
if (null != details && null != details.getTaskId()) {
|
||||||
// 查询已进行会签的org_id集合
|
// 查询已进行会签的org_id集合
|
||||||
List<PurchaseSignRecord> purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(details.getTaskId());
|
List<PurchaseSignRecord> purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(details.getTaskId());
|
||||||
Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
|
||||||
if (null == loginUserDeptId || 0 == loginUserDeptId) {
|
if (null == loginUserDeptId || 0 == loginUserDeptId) {
|
||||||
return AjaxResult.error("会签失败!,请检查用户部门信息");
|
return AjaxResult.error("会签失败!,请检查用户部门信息");
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isEmpty(purchaseSignRecordList)) {
|
if (CollectionUtils.isEmpty(purchaseSignRecordList)) {
|
||||||
// 如果该任务没有进行过会签,则无需校验 直接进行会签流程
|
// 如果该任务没有进行过会签,则无需校验 直接进行会签流程
|
||||||
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getUserId(), loginUserDeptId));
|
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getLoginUser().getUserid(), loginUserDeptId,
|
||||||
|
details.getCheckResult()));
|
||||||
if (0 < addPurchaseSignResult) {
|
if (0 < addPurchaseSignResult) {
|
||||||
return AjaxResult.success("会签成功");
|
return AjaxResult.success("会签成功");
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -93,11 +94,21 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
|
||||||
configSignOrgSet.removeAll(signedOrgSet);
|
configSignOrgSet.removeAll(signedOrgSet);
|
||||||
if (!CollectionUtils.isEmpty(configSignOrgSet)) {
|
if (!CollectionUtils.isEmpty(configSignOrgSet)) {
|
||||||
// 如果还有需要进行会签的数据,那么进行本次会签
|
// 如果还有需要进行会签的数据,那么进行本次会签
|
||||||
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getUserId(), loginUserDeptId));
|
// 如果还有需要进行会签的数据,那么进行本次会签
|
||||||
|
PurchaseSignRecord purchaseSignRecord = new PurchaseSignRecord();
|
||||||
|
purchaseSignRecord.setTaskId(details.getTaskId());
|
||||||
|
purchaseSignRecord.setUserId(SecurityUtils.getLoginUser().getUserid());
|
||||||
|
purchaseSignRecord.setOrgId(loginUserDeptId);
|
||||||
|
// 审核通过
|
||||||
|
purchaseSignRecord.setAuditStatus("1");
|
||||||
|
purchaseSignRecord.setCreateTime(DateUtils.getNowDate());
|
||||||
|
purchaseSignRecord.setAuditRemark(details.getCheckResult());
|
||||||
|
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(purchaseSignRecord);
|
||||||
if (0 < addPurchaseSignResult) {
|
if (0 < addPurchaseSignResult) {
|
||||||
// 会签成功,对配置的流程进行处理
|
// 会签成功,对配置的流程进行处理
|
||||||
configSignOrgSet.remove(loginUserDeptId);
|
configSignOrgSet.remove(loginUserDeptId);
|
||||||
if (configSignOrgSet.isEmpty()) {
|
// 如果loginUserDeptId包含库管一班、库管二班或者库管三班的任意一个组织id,那么库管班就算审核通过
|
||||||
|
if (loginUserDeptId == 106L || loginUserDeptId == 334L || loginUserDeptId == 335L) {
|
||||||
System.out.println("ONE会签成功,放行进行验收流程!");
|
System.out.println("ONE会签成功,放行进行验收流程!");
|
||||||
} else {
|
} else {
|
||||||
// 如果本次会签完成后还有需要进行会签的,那么本次会签完成,返回前端
|
// 如果本次会签完成后还有需要进行会签的,那么本次会签完成,返回前端
|
||||||
|
|
@ -115,7 +126,7 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
|
||||||
} else {
|
} else {
|
||||||
return AjaxResult.error("detail数据异常,任务ID为空");
|
return AjaxResult.error("detail数据异常,任务ID为空");
|
||||||
}
|
}
|
||||||
details.setCheckUser(SecurityUtils.getUserId());
|
details.setCheckUser(SecurityUtils.getLoginUser().getUserid());
|
||||||
details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus());
|
details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus());
|
||||||
result = 0 < partCheckMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("验收成功") : AjaxResult.error("details无验证信息");
|
result = 0 < partCheckMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("验收成功") : AjaxResult.error("details无验证信息");
|
||||||
extractedFile(details);
|
extractedFile(details);
|
||||||
|
|
@ -124,8 +135,23 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
|
||||||
// 验收驳回处理流程
|
// 验收驳回处理流程
|
||||||
for (PartTypeCheckDetails details : partChaseVerifyVo.getPurchaseCheckDetailsList()) {
|
for (PartTypeCheckDetails details : partChaseVerifyVo.getPurchaseCheckDetailsList()) {
|
||||||
details.setStatus(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus());
|
details.setStatus(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus());
|
||||||
result = 0 < partCheckMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("驳回成功") : AjaxResult.error("details无验证信息");
|
int res = partCheckMapper.updatePurchaseDetails4Check(details);
|
||||||
|
if (res < 1) {
|
||||||
|
return AjaxResult.error("验收驳回失败,请联系管理员");
|
||||||
|
}
|
||||||
extractedFile(details);
|
extractedFile(details);
|
||||||
|
PurchaseSignRecord purchaseSignRecord = new PurchaseSignRecord();
|
||||||
|
purchaseSignRecord.setTaskId(details.getTaskId());
|
||||||
|
purchaseSignRecord.setUserId(SecurityUtils.getLoginUser().getUserid());
|
||||||
|
purchaseSignRecord.setOrgId(loginUserDeptId);
|
||||||
|
// 审核驳回
|
||||||
|
purchaseSignRecord.setAuditStatus("2");
|
||||||
|
purchaseSignRecord.setCreateTime(DateUtils.getNowDate());
|
||||||
|
purchaseSignRecord.setAuditRemark(details.getCheckResult());
|
||||||
|
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(purchaseSignRecord);
|
||||||
|
if (addPurchaseSignResult < 1) {
|
||||||
|
return AjaxResult.error("会签失败,purchase_audit_record表插入0条数据");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<Long> taskIdList = partChaseVerifyVo.getPurchaseCheckDetailsList().stream().
|
List<Long> taskIdList = partChaseVerifyVo.getPurchaseCheckDetailsList().stream().
|
||||||
|
|
@ -170,7 +196,7 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
|
||||||
if (null != bmFileInfo.getTaskType() && Objects.equals(TmTaskTypeEnum.TM_TASK_AGREEMENT_MANAGEMENT.getTaskTypeId(), bmFileInfo.getTaskType())) {
|
if (null != bmFileInfo.getTaskType() && Objects.equals(TmTaskTypeEnum.TM_TASK_AGREEMENT_MANAGEMENT.getTaskTypeId(), bmFileInfo.getTaskType())) {
|
||||||
bmFileInfo.setTaskId(details.getTaskId());
|
bmFileInfo.setTaskId(details.getTaskId());
|
||||||
bmFileInfo.setModelId(details.getId());
|
bmFileInfo.setModelId(details.getId());
|
||||||
bmFileInfo.setCreateBy(SecurityUtils.getUsername());
|
bmFileInfo.setCreateBy(SecurityUtils.getLoginUser().getUsername());
|
||||||
bmFileInfo.setCreateTime(DateUtils.getNowDate());
|
bmFileInfo.setCreateTime(DateUtils.getNowDate());
|
||||||
bmFileInfoMapper.insertBmFileInfo(bmFileInfo);
|
bmFileInfoMapper.insertBmFileInfo(bmFileInfo);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.common.security.utils.SecurityUtils;
|
import com.bonus.common.security.utils.SecurityUtils;
|
||||||
import com.bonus.common.biz.domain.BmFileInfo;
|
import com.bonus.common.biz.domain.BmFileInfo;
|
||||||
import com.bonus.material.basic.mapper.BmFileInfoMapper;
|
import com.bonus.material.basic.mapper.BmFileInfoMapper;
|
||||||
|
import com.bonus.material.countersign.domain.SignProcessVo;
|
||||||
import com.bonus.material.countersign.mapper.SignProcessMapper;
|
import com.bonus.material.countersign.mapper.SignProcessMapper;
|
||||||
import com.bonus.material.part.domain.*;
|
import com.bonus.material.part.domain.*;
|
||||||
import com.bonus.material.part.mapper.PartArrivedMapper;
|
import com.bonus.material.part.mapper.PartArrivedMapper;
|
||||||
|
|
@ -104,7 +105,7 @@ public class PartArrivedServiceImpl implements IPartArrivedService
|
||||||
@Transactional
|
@Transactional
|
||||||
public AjaxResult insertPartTypeCheckInfo(PartTypeCheckDto partTypeCheckDto) {
|
public AjaxResult insertPartTypeCheckInfo(PartTypeCheckDto partTypeCheckDto) {
|
||||||
partTypeCheckDto.getPartTypeCheckInfo().setCreateTime(DateUtils.getNowDate());
|
partTypeCheckDto.getPartTypeCheckInfo().setCreateTime(DateUtils.getNowDate());
|
||||||
partTypeCheckDto.getPartTypeCheckInfo().setCreateBy(SecurityUtils.getUsername());
|
partTypeCheckDto.getPartTypeCheckInfo().setCreateBy(SecurityUtils.getLoginUser().getUsername());
|
||||||
try {
|
try {
|
||||||
final int thisMonthMaxOrder = partArrivedMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PART_TYPE.getTaskTypeId());
|
final int thisMonthMaxOrder = partArrivedMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PART_TYPE.getTaskTypeId());
|
||||||
String taskCode = genderTaskCode(thisMonthMaxOrder);
|
String taskCode = genderTaskCode(thisMonthMaxOrder);
|
||||||
|
|
@ -250,10 +251,46 @@ public class PartArrivedServiceImpl implements IPartArrivedService
|
||||||
partTypeCheckInfos.get(i).setPurchasePrice(purchasePrice);
|
partTypeCheckInfos.get(i).setPurchasePrice(purchasePrice);
|
||||||
partTypeCheckInfos.get(i).setPurchaseTaxPrice(purchaseTaxPrice);
|
partTypeCheckInfos.get(i).setPurchaseTaxPrice(purchaseTaxPrice);
|
||||||
partTypeCheckInfos.get(i).setPurchaseMaTypeName(partName);
|
partTypeCheckInfos.get(i).setPurchaseMaTypeName(partName);
|
||||||
|
// 将purchaseCheckDetails中的status取出来
|
||||||
|
List<Integer> statusList = partTypeCheckDetails.stream().map(PartTypeCheckDetails::getStatus).collect(Collectors.toList());
|
||||||
|
if (!CollectionUtils.isEmpty(statusList)) {
|
||||||
|
if (statusList.contains(PurchaseTaskStatusEnum.TO_BIND.getStatus())
|
||||||
|
|| statusList.contains(PurchaseTaskStatusEnum.TO_STORE.getStatus())
|
||||||
|
|| statusList.contains(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())
|
||||||
|
|| statusList.contains(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus())) {
|
||||||
|
partTypeCheckInfos.get(i).setPurchaseStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus());
|
||||||
|
} else if (statusList.contains(PurchaseTaskStatusEnum.IN_STORE.getStatus())
|
||||||
|
|| statusList.contains(PurchaseTaskStatusEnum.TASK_IN_PROGRESS.getStatus())
|
||||||
|
|| statusList.contains(PurchaseTaskStatusEnum.TASK_FINISHED.getStatus())) {
|
||||||
|
partTypeCheckInfos.get(i).setPurchaseStatus(PurchaseTaskStatusEnum.IN_STORE.getStatus());
|
||||||
|
} else {
|
||||||
|
partTypeCheckInfos.get(i).setPurchaseStatus(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
purchaseCheckInfoResult.add(partTypeCheckInfos.get(i));
|
purchaseCheckInfoResult.add(partTypeCheckInfos.get(i));
|
||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(purchaseCheckInfoResult)) {
|
if (!CollectionUtils.isEmpty(purchaseCheckInfoResult)) {
|
||||||
|
// 根据taskId查询验收任务层级,返回前端,用于验收按钮显示
|
||||||
|
for (PartTypeCheckInfo purchaseCheckInfo : purchaseCheckInfoResult) {
|
||||||
|
// 查询已进行会签的org_id集合
|
||||||
|
List<PurchaseSignRecord> purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(purchaseCheckInfo.getTaskId());
|
||||||
|
// 查询需要进行会签的org_id集合
|
||||||
|
List<SignProcessVo> signProcessVoList = signProcessMapper.getList(new SignProcessVo());
|
||||||
|
if (!CollectionUtils.isEmpty(purchaseSignRecordList) && !CollectionUtils.isEmpty(signProcessVoList)) {
|
||||||
|
// 查询出配置需要会签的org_id集合
|
||||||
|
Set<Long> configSignOrgSet = signProcessVoList.stream().map(SignProcessVo::getOrgId).collect(Collectors.toSet());
|
||||||
|
// 获取已进行会签的org_id集合
|
||||||
|
Set<Long> signedOrgSet = purchaseSignRecordList.stream().map(PurchaseSignRecord::getOrgId).collect(Collectors.toSet());
|
||||||
|
// 移除已会签的org_id
|
||||||
|
configSignOrgSet.removeAll(signedOrgSet);
|
||||||
|
if (signedOrgSet.size() == 1) {
|
||||||
|
purchaseCheckInfo.setSignLevel("2");
|
||||||
|
} else {
|
||||||
|
purchaseCheckInfo.setSignLevel("3");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
String keyWord = partTypeQueryDto.getKeyWord();
|
String keyWord = partTypeQueryDto.getKeyWord();
|
||||||
// 如果关键字不为空,进行过滤
|
// 如果关键字不为空,进行过滤
|
||||||
if (StringUtils.isNotBlank(keyWord)) {
|
if (StringUtils.isNotBlank(keyWord)) {
|
||||||
|
|
@ -339,7 +376,7 @@ public class PartArrivedServiceImpl implements IPartArrivedService
|
||||||
@Transactional
|
@Transactional
|
||||||
public boolean updatePartTypeCheckInfo(PartTypeCheckDto partTypeCheckDto) {
|
public boolean updatePartTypeCheckInfo(PartTypeCheckDto partTypeCheckDto) {
|
||||||
partTypeCheckDto.getPartTypeCheckInfo().setUpdateTime(DateUtils.getNowDate());
|
partTypeCheckDto.getPartTypeCheckInfo().setUpdateTime(DateUtils.getNowDate());
|
||||||
partTypeCheckDto.getPartTypeCheckInfo().setUpdateBy(SecurityUtils.getUsername());
|
partTypeCheckDto.getPartTypeCheckInfo().setUpdateBy(SecurityUtils.getLoginUser().getUsername());
|
||||||
// 先去查是否存在文件信息,存在就删除
|
// 先去查是否存在文件信息,存在就删除
|
||||||
BmFileInfo fileInfo = new BmFileInfo();
|
BmFileInfo fileInfo = new BmFileInfo();
|
||||||
fileInfo.setTaskType(13);
|
fileInfo.setTaskType(13);
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import com.bonus.common.log.enums.OperaType;
|
||||||
import com.bonus.common.security.annotation.RequiresPermissions;
|
import com.bonus.common.security.annotation.RequiresPermissions;
|
||||||
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
import com.bonus.material.common.annotation.PreventRepeatSubmit;
|
||||||
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
||||||
|
import com.bonus.material.purchase.domain.PurchaseSignRecord;
|
||||||
import com.bonus.material.purchase.domain.dto.PurchaseCheckDto;
|
import com.bonus.material.purchase.domain.dto.PurchaseCheckDto;
|
||||||
import com.bonus.material.purchase.domain.dto.PurchaseQueryDto;
|
import com.bonus.material.purchase.domain.dto.PurchaseQueryDto;
|
||||||
import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;
|
import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;
|
||||||
|
|
@ -188,4 +189,16 @@ public class PurchaseCheckInfoController extends BaseController {
|
||||||
ExcelUtil<PurchaseCheckDetails> util = new ExcelUtil<>(PurchaseCheckDetails.class);
|
ExcelUtil<PurchaseCheckDetails> util = new ExcelUtil<>(PurchaseCheckDetails.class);
|
||||||
util.exportExcel(response, list, "新购验收任务详细数据");
|
util.exportExcel(response, list, "新购验收任务详细数据");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据任务id查询会签记录
|
||||||
|
* @param purchaseSignRecord
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation("根据任务id查询会签记录")
|
||||||
|
@GetMapping("/getSignList")
|
||||||
|
public AjaxResult getSignList(PurchaseSignRecord purchaseSignRecord) {
|
||||||
|
List<PurchaseSignRecord> list = purchaseCheckInfoService.getSignList(purchaseSignRecord);
|
||||||
|
return AjaxResult.success(list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,9 @@ public class PurchaseCheckInfo extends BaseEntity {
|
||||||
@ApiModelProperty(value = "出厂日期")
|
@ApiModelProperty(value = "出厂日期")
|
||||||
private String productionTime;
|
private String productionTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "新购任务状态")
|
||||||
|
private Integer purchaseStatus;
|
||||||
|
|
||||||
public String getCheckUser() {
|
public String getCheckUser() {
|
||||||
return checkUser;
|
return checkUser;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,19 +32,29 @@ public class PurchaseSignRecord {
|
||||||
|
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
|
private String deptName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核状态(1 通过,2 驳回)
|
* 审核状态(1 通过,2 驳回)
|
||||||
*/
|
*/
|
||||||
private String auditStatus;
|
private String auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核状态名称(1 通过,2 驳回)
|
||||||
|
*/
|
||||||
|
private String auditStatusName;
|
||||||
|
|
||||||
|
private String auditRemark;
|
||||||
|
|
||||||
@ApiModelProperty(value = "创建时间")
|
@ApiModelProperty(value = "创建时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
public PurchaseSignRecord(Long taskId, Long userId, Long orgId) {
|
public PurchaseSignRecord(Long taskId, Long userId, Long orgId, String auditRemark) {
|
||||||
this.taskId = taskId;
|
this.taskId = taskId;
|
||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
this.orgId = orgId;
|
this.orgId = orgId;
|
||||||
|
this.auditRemark = auditRemark;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PurchaseSignRecord() {
|
public PurchaseSignRecord() {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||||
import com.bonus.common.core.web.domain.AjaxResult;
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
|
||||||
import com.bonus.material.purchase.domain.PurchaseCheckInfo;
|
import com.bonus.material.purchase.domain.PurchaseCheckInfo;
|
||||||
|
import com.bonus.material.purchase.domain.PurchaseSignRecord;
|
||||||
import com.bonus.material.purchase.domain.dto.PurchaseCheckDto;
|
import com.bonus.material.purchase.domain.dto.PurchaseCheckDto;
|
||||||
import com.bonus.material.purchase.domain.dto.PurchaseQueryDto;
|
import com.bonus.material.purchase.domain.dto.PurchaseQueryDto;
|
||||||
import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;
|
import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;
|
||||||
|
|
@ -83,4 +84,11 @@ public interface IPurchaseCheckInfoService {
|
||||||
int deletePurchaseCheckInfoById(Long id);
|
int deletePurchaseCheckInfoById(Long id);
|
||||||
|
|
||||||
List<PurchaseCheckInfo> selectPurchaseCheckUserById(PurchaseQueryDto purchaseQueryDto);
|
List<PurchaseCheckInfo> selectPurchaseCheckUserById(PurchaseQueryDto purchaseQueryDto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询新购验收任务签名列表
|
||||||
|
* @param purchaseSignRecord
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<PurchaseSignRecord> getSignList(PurchaseSignRecord purchaseSignRecord);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;
|
||||||
import com.bonus.material.purchase.mapper.PurchaseMacodeInfoMapper;
|
import com.bonus.material.purchase.mapper.PurchaseMacodeInfoMapper;
|
||||||
import com.bonus.material.task.domain.TmTask;
|
import com.bonus.material.task.domain.TmTask;
|
||||||
import com.bonus.material.task.mapper.TmTaskMapper;
|
import com.bonus.material.task.mapper.TmTaskMapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.BooleanUtils;
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
import org.springframework.dao.DataAccessException;
|
import org.springframework.dao.DataAccessException;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -52,6 +53,7 @@ import static com.bonus.common.biz.constant.MaterialConstants.PURCHASE_TASK_TYPE
|
||||||
* @author syruan
|
* @author syruan
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Slf4j
|
||||||
public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|
@ -92,7 +94,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public PurchaseCheckDto selectPurchaseCheckInfoById(PurchaseQueryDto purchaseQueryDto) {
|
public PurchaseCheckDto selectPurchaseCheckInfoById(PurchaseQueryDto purchaseQueryDto) {
|
||||||
purchaseQueryDto.setUserId(SecurityUtils.getUserId());
|
purchaseQueryDto.setUserId(SecurityUtils.getLoginUser().getUserid());
|
||||||
PurchaseCheckDto purchaseCheckDtoResult = new PurchaseCheckDto();
|
PurchaseCheckDto purchaseCheckDtoResult = new PurchaseCheckDto();
|
||||||
PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId());
|
PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId());
|
||||||
if (null != purchaseCheckInfo) {
|
if (null != purchaseCheckInfo) {
|
||||||
|
|
@ -151,6 +153,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
final List<BmFileInfo> bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(fileInfo);
|
final List<BmFileInfo> bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(fileInfo);
|
||||||
if (!CollectionUtils.isEmpty(bmFileInfoList)) {
|
if (!CollectionUtils.isEmpty(bmFileInfoList)) {
|
||||||
purchaseCheckDetails.setIsExitFile(0);
|
purchaseCheckDetails.setIsExitFile(0);
|
||||||
|
purchaseCheckDetails.setBmFileInfos(bmFileInfoList);
|
||||||
}else {
|
}else {
|
||||||
purchaseCheckDetails.setIsExitFile(1);
|
purchaseCheckDetails.setIsExitFile(1);
|
||||||
}
|
}
|
||||||
|
|
@ -191,7 +194,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
public List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseQueryDto purchaseQueryDto) {
|
public List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseQueryDto purchaseQueryDto) {
|
||||||
final List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseQueryDto);
|
final List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseQueryDto);
|
||||||
if (CollectionUtils.isEmpty(purchaseCheckInfos) ) {return Collections.emptyList();}
|
if (CollectionUtils.isEmpty(purchaseCheckInfos) ) {return Collections.emptyList();}
|
||||||
final AtomicReference<Long> loginUserId = new AtomicReference<>(SecurityUtils.getUserId());
|
final AtomicReference<Long> loginUserId = new AtomicReference<>(SecurityUtils.getLoginUser().getUserid());
|
||||||
if (Objects.isNull(loginUserId.get()) || Objects.isNull(purchaseQueryDto.getTaskStage())) {return Collections.emptyList();}
|
if (Objects.isNull(loginUserId.get()) || Objects.isNull(purchaseQueryDto.getTaskStage())) {return Collections.emptyList();}
|
||||||
|
|
||||||
List<PurchaseCheckInfo> purchaseCheckInfoResult = new ArrayList<>();
|
List<PurchaseCheckInfo> purchaseCheckInfoResult = new ArrayList<>();
|
||||||
|
|
@ -287,6 +290,25 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
if (!isIncludeStage) {continue;}
|
if (!isIncludeStage) {continue;}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 判断purchaseCheckDetails集合里面status状态,对purchaseStatus进行赋值,用于前端展示验收单和入库单
|
||||||
|
if (!CollectionUtils.isEmpty(purchaseCheckDetails)) {
|
||||||
|
// 将purchaseCheckDetails中的status取出来
|
||||||
|
List<Integer> statusList = purchaseCheckDetails.stream().map(PurchaseCheckDetails::getStatus).collect(Collectors.toList());
|
||||||
|
if (!CollectionUtils.isEmpty(statusList)) {
|
||||||
|
if (statusList.contains(PurchaseTaskStatusEnum.TO_BIND.getStatus())
|
||||||
|
|| statusList.contains(PurchaseTaskStatusEnum.TO_STORE.getStatus())
|
||||||
|
|| statusList.contains(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())
|
||||||
|
|| statusList.contains(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus())) {
|
||||||
|
purchaseInfo.setPurchaseStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus());
|
||||||
|
} else if (statusList.contains(PurchaseTaskStatusEnum.IN_STORE.getStatus())
|
||||||
|
|| statusList.contains(PurchaseTaskStatusEnum.TASK_IN_PROGRESS.getStatus())
|
||||||
|
|| statusList.contains(PurchaseTaskStatusEnum.TASK_FINISHED.getStatus())) {
|
||||||
|
purchaseInfo.setPurchaseStatus(PurchaseTaskStatusEnum.IN_STORE.getStatus());
|
||||||
|
} else {
|
||||||
|
purchaseInfo.setPurchaseStatus(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
purchaseInfo.setTaskStatus(tmTask.getTaskStatus());
|
purchaseInfo.setTaskStatus(tmTask.getTaskStatus());
|
||||||
|
|
||||||
// 设置外层任务列表
|
// 设置外层任务列表
|
||||||
|
|
@ -300,6 +322,28 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(purchaseCheckInfoResult)) {
|
if (!CollectionUtils.isEmpty(purchaseCheckInfoResult)) {
|
||||||
|
// 根据taskId查询验收任务层级,返回前端,用于验收按钮显示
|
||||||
|
for (PurchaseCheckInfo purchaseCheckInfo : purchaseCheckInfoResult) {
|
||||||
|
// 查询已进行会签的org_id集合
|
||||||
|
List<PurchaseSignRecord> purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(purchaseCheckInfo.getTaskId());
|
||||||
|
// 查询需要进行会签的org_id集合
|
||||||
|
List<SignProcessVo> signProcessVoList = signProcessMapper.getList(new SignProcessVo());
|
||||||
|
// 获取当前登录人组织id
|
||||||
|
Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
||||||
|
if (!CollectionUtils.isEmpty(purchaseSignRecordList) && !CollectionUtils.isEmpty(signProcessVoList)) {
|
||||||
|
// 查询出配置需要会签的org_id集合
|
||||||
|
Set<Long> configSignOrgSet = signProcessVoList.stream().map(SignProcessVo::getOrgId).collect(Collectors.toSet());
|
||||||
|
// 获取已进行会签的org_id集合
|
||||||
|
Set<Long> signedOrgSet = purchaseSignRecordList.stream().map(PurchaseSignRecord::getOrgId).collect(Collectors.toSet());
|
||||||
|
// 移除已会签的org_id
|
||||||
|
configSignOrgSet.removeAll(signedOrgSet);
|
||||||
|
if (signedOrgSet.size() == 1) {
|
||||||
|
purchaseCheckInfo.setSignLevel("2");
|
||||||
|
} else {
|
||||||
|
purchaseCheckInfo.setSignLevel("3");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
String keyWord = purchaseQueryDto.getKeyWord();
|
String keyWord = purchaseQueryDto.getKeyWord();
|
||||||
// 如果关键字不为空,进行过滤
|
// 如果关键字不为空,进行过滤
|
||||||
if (!StringUtils.isBlank(keyWord)) {
|
if (!StringUtils.isBlank(keyWord)) {
|
||||||
|
|
@ -363,7 +407,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public AjaxResult insertPurchaseCheckInfo(PurchaseCheckDto purchaseCheckInfo) {
|
public AjaxResult insertPurchaseCheckInfo(PurchaseCheckDto purchaseCheckInfo) {
|
||||||
purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate());
|
purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate());
|
||||||
purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getUsername());
|
purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getLoginUser().getUsername());
|
||||||
try {
|
try {
|
||||||
final int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId());
|
final int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId());
|
||||||
String taskCode = genderTaskCode(thisMonthMaxOrder);
|
String taskCode = genderTaskCode(thisMonthMaxOrder);
|
||||||
|
|
@ -403,7 +447,12 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
details.setInputStatus("0");
|
details.setInputStatus("0");
|
||||||
final List<BmFileInfo> bmFileInfos = details.getBmFileInfos();
|
final List<BmFileInfo> bmFileInfos = details.getBmFileInfos();
|
||||||
if (!CollectionUtils.isEmpty(bmFileInfos)) {
|
if (!CollectionUtils.isEmpty(bmFileInfos)) {
|
||||||
bmFileInfos.forEach(o -> o.setTaskId(taskId));
|
bmFileInfos.forEach(o -> {
|
||||||
|
o.setTaskId(taskId);
|
||||||
|
o.setModelId(details.getTypeId());
|
||||||
|
o.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
|
||||||
|
o.setCreateTime(DateUtils.getNowDate());
|
||||||
|
});
|
||||||
bmFileInfoMapper.insertBmFileInfos(bmFileInfos);
|
bmFileInfoMapper.insertBmFileInfos(bmFileInfos);
|
||||||
}
|
}
|
||||||
Type type = new Type();
|
Type type = new Type();
|
||||||
|
|
@ -412,7 +461,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
type.setTypeId(details.getTypeId());
|
type.setTypeId(details.getTypeId());
|
||||||
type.setRentPrice(details.getRentPrice());
|
type.setRentPrice(details.getRentPrice());
|
||||||
type.setUpdateTime(DateUtils.getNowDate());
|
type.setUpdateTime(DateUtils.getNowDate());
|
||||||
type.setUpdateBy(SecurityUtils.getUserId().toString());
|
type.setUpdateBy(SecurityUtils.getLoginUser().getUserid().toString());
|
||||||
typeMapper.updateType(type);
|
typeMapper.updateType(type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -443,14 +492,14 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
if (!CollectionUtils.isEmpty(codeList)) {
|
if (!CollectionUtils.isEmpty(codeList)) {
|
||||||
for (PurchaseCheckDetails details : codeList) {
|
for (PurchaseCheckDetails details : codeList) {
|
||||||
details.setStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus());
|
details.setStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus());
|
||||||
details.setCheckUser(SecurityUtils.getUserId());
|
details.setCheckUser(SecurityUtils.getLoginUser().getUserid());
|
||||||
updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details);
|
updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(numList)) {
|
if (!CollectionUtils.isEmpty(numList)) {
|
||||||
for (PurchaseCheckDetails details : numList) {
|
for (PurchaseCheckDetails details : numList) {
|
||||||
details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus());
|
details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus());
|
||||||
details.setCheckUser(SecurityUtils.getUserId());
|
details.setCheckUser(SecurityUtils.getLoginUser().getUserid());
|
||||||
updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details);
|
updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -467,6 +516,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
try {
|
try {
|
||||||
AjaxResult result = new AjaxResult();
|
AjaxResult result = new AjaxResult();
|
||||||
if (!CollectionUtils.isEmpty(purchaseVerifyVo.getPurchaseCheckDetailsList())) {
|
if (!CollectionUtils.isEmpty(purchaseVerifyVo.getPurchaseCheckDetailsList())) {
|
||||||
|
Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
||||||
if (BooleanUtils.isTrue(purchaseVerifyVo.getVerifyPass())) {
|
if (BooleanUtils.isTrue(purchaseVerifyVo.getVerifyPass())) {
|
||||||
// 验收通过处理流程
|
// 验收通过处理流程
|
||||||
for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) {
|
for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) {
|
||||||
|
|
@ -474,26 +524,18 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
if (null != details && null != details.getTaskId()) {
|
if (null != details && null != details.getTaskId()) {
|
||||||
// 查询已进行会签的org_id集合
|
// 查询已进行会签的org_id集合
|
||||||
List<PurchaseSignRecord> purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(details.getTaskId());
|
List<PurchaseSignRecord> purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(details.getTaskId());
|
||||||
Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
|
||||||
if (null == loginUserDeptId || 0 == loginUserDeptId) {
|
if (null == loginUserDeptId || 0 == loginUserDeptId) {
|
||||||
return AjaxResult.error("会签失败!,请检查用户部门信息");
|
return AjaxResult.error("会签失败!,请检查用户部门信息");
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isEmpty(purchaseSignRecordList)) {
|
if (CollectionUtils.isEmpty(purchaseSignRecordList)) {
|
||||||
// 如果该任务没有进行过会签,则无需校验 直接进行会签流程
|
// 如果该任务没有进行过会签,则无需校验 直接进行会签流程
|
||||||
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getUserId(), loginUserDeptId));
|
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getLoginUser().getUserid(), loginUserDeptId, details.getCheckResult()));
|
||||||
if (0 < addPurchaseSignResult) {
|
if (0 < addPurchaseSignResult) {
|
||||||
return AjaxResult.success("会签成功");
|
return AjaxResult.success("会签成功");
|
||||||
} else {
|
} else {
|
||||||
return AjaxResult.error("会签失败!,插入0条数据");
|
return AjaxResult.error("会签失败!,插入0条数据");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 该任务进行过会签,进行下一步校验
|
|
||||||
|
|
||||||
// 首先判断本账户是否进行过会签,如果进行过 则禁止重复操作 -- 2025.1.23日经需求讨论关闭 by 阮世耀
|
|
||||||
//List<Long> thisIsSignRecord = purchaseSignRecordList.stream().map(PurchaseSignRecord::getUserId).filter(o -> o.equals(SecurityUtils.getUserId())).collect(Collectors.toList());
|
|
||||||
//if (!CollectionUtils.isEmpty(thisIsSignRecord)) {
|
|
||||||
// return AjaxResult.error("操作失败!您已进行过会签 无法重复操作!");
|
|
||||||
//}
|
|
||||||
|
|
||||||
// 查询需要进行会签的org_id集合
|
// 查询需要进行会签的org_id集合
|
||||||
List<SignProcessVo> signProcessVoList = signProcessMapper.getList(new SignProcessVo());
|
List<SignProcessVo> signProcessVoList = signProcessMapper.getList(new SignProcessVo());
|
||||||
|
|
@ -508,11 +550,21 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
configSignOrgSet.removeAll(signedOrgSet);
|
configSignOrgSet.removeAll(signedOrgSet);
|
||||||
if (!CollectionUtils.isEmpty(configSignOrgSet)) {
|
if (!CollectionUtils.isEmpty(configSignOrgSet)) {
|
||||||
// 如果还有需要进行会签的数据,那么进行本次会签
|
// 如果还有需要进行会签的数据,那么进行本次会签
|
||||||
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getUserId(), loginUserDeptId));
|
PurchaseSignRecord purchaseSignRecord = new PurchaseSignRecord();
|
||||||
|
purchaseSignRecord.setTaskId(details.getTaskId());
|
||||||
|
purchaseSignRecord.setUserId(SecurityUtils.getLoginUser().getUserid());
|
||||||
|
purchaseSignRecord.setOrgId(loginUserDeptId);
|
||||||
|
// 审核通过
|
||||||
|
purchaseSignRecord.setAuditStatus("1");
|
||||||
|
purchaseSignRecord.setCreateTime(DateUtils.getNowDate());
|
||||||
|
purchaseSignRecord.setAuditRemark(details.getCheckResult());
|
||||||
|
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(purchaseSignRecord);
|
||||||
if (0 < addPurchaseSignResult) {
|
if (0 < addPurchaseSignResult) {
|
||||||
// 会签成功,对配置的流程进行处理
|
// 会签成功,对配置的流程进行处理
|
||||||
configSignOrgSet.remove(loginUserDeptId);
|
configSignOrgSet.remove(loginUserDeptId);
|
||||||
if (configSignOrgSet.isEmpty()) {
|
// 如果loginUserDeptId包含库管一班、库管二班或者库管三班的任意一个组织id,那么库管班就算审核通过
|
||||||
|
if (loginUserDeptId == 106L || loginUserDeptId == 334L || loginUserDeptId == 335L) {
|
||||||
|
// 库管班审核通过,放行进行验收流程
|
||||||
System.out.println("ONE会签成功,放行进行验收流程!");
|
System.out.println("ONE会签成功,放行进行验收流程!");
|
||||||
} else {
|
} else {
|
||||||
// 如果本次会签完成后还有需要进行会签的,那么本次会签完成,返回前端
|
// 如果本次会签完成后还有需要进行会签的,那么本次会签完成,返回前端
|
||||||
|
|
@ -537,7 +589,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
} else if (MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(details.getManageType())) {
|
} else if (MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(details.getManageType())) {
|
||||||
details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus());
|
details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus());
|
||||||
}
|
}
|
||||||
details.setCheckUser(SecurityUtils.getUserId());
|
details.setCheckUser(SecurityUtils.getLoginUser().getUserid());
|
||||||
result = 0 < purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("验收成功") : AjaxResult.error("details无验证信息");
|
result = 0 < purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("验收成功") : AjaxResult.error("details无验证信息");
|
||||||
extractedFile(details);
|
extractedFile(details);
|
||||||
}
|
}
|
||||||
|
|
@ -545,8 +597,23 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
// 验收驳回处理流程
|
// 验收驳回处理流程
|
||||||
for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) {
|
for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) {
|
||||||
details.setStatus(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus());
|
details.setStatus(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus());
|
||||||
result = 0 < purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("驳回成功") : AjaxResult.error("details无验证信息");
|
int res = purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details);
|
||||||
|
if (res < 1) {
|
||||||
|
return AjaxResult.error("验收驳回失败,请联系管理员");
|
||||||
|
}
|
||||||
extractedFile(details);
|
extractedFile(details);
|
||||||
|
PurchaseSignRecord purchaseSignRecord = new PurchaseSignRecord();
|
||||||
|
purchaseSignRecord.setTaskId(details.getTaskId());
|
||||||
|
purchaseSignRecord.setUserId(SecurityUtils.getLoginUser().getUserid());
|
||||||
|
purchaseSignRecord.setOrgId(loginUserDeptId);
|
||||||
|
// 审核驳回
|
||||||
|
purchaseSignRecord.setAuditStatus("2");
|
||||||
|
purchaseSignRecord.setCreateTime(DateUtils.getNowDate());
|
||||||
|
purchaseSignRecord.setAuditRemark(details.getCheckResult());
|
||||||
|
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(purchaseSignRecord);
|
||||||
|
if (addPurchaseSignResult < 1) {
|
||||||
|
return AjaxResult.error("会签失败,purchase_audit_record表插入0条数据");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -566,7 +633,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
if (null != bmFileInfo.getTaskType() && Objects.equals(TmTaskTypeEnum.TM_TASK_AGREEMENT_MANAGEMENT.getTaskTypeId(), bmFileInfo.getTaskType())) {
|
if (null != bmFileInfo.getTaskType() && Objects.equals(TmTaskTypeEnum.TM_TASK_AGREEMENT_MANAGEMENT.getTaskTypeId(), bmFileInfo.getTaskType())) {
|
||||||
bmFileInfo.setTaskId(details.getTaskId());
|
bmFileInfo.setTaskId(details.getTaskId());
|
||||||
bmFileInfo.setModelId(details.getId());
|
bmFileInfo.setModelId(details.getId());
|
||||||
bmFileInfo.setCreateBy(SecurityUtils.getUsername());
|
bmFileInfo.setCreateBy(SecurityUtils.getLoginUser().getUsername());
|
||||||
bmFileInfo.setCreateTime(DateUtils.getNowDate());
|
bmFileInfo.setCreateTime(DateUtils.getNowDate());
|
||||||
bmFileInfoMapper.insertBmFileInfo(bmFileInfo);
|
bmFileInfoMapper.insertBmFileInfo(bmFileInfo);
|
||||||
}
|
}
|
||||||
|
|
@ -611,9 +678,23 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 执行SQL查询内层信息
|
// 执行SQL查询内层信息
|
||||||
final List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(taskId, null, SecurityUtils.getUserId());
|
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(taskId, null, SecurityUtils.getLoginUser().getUserid());
|
||||||
// 过滤掉空数据
|
// 过滤掉空数据
|
||||||
purchaseCheckDetails.removeIf(Objects::isNull);
|
purchaseCheckDetails.removeIf(Objects::isNull);
|
||||||
|
if (!CollectionUtils.isEmpty(purchaseCheckDetails)) {
|
||||||
|
for (PurchaseCheckDetails purchaseCheckDetail : purchaseCheckDetails) {
|
||||||
|
BmFileInfo fileInfo = new BmFileInfo();
|
||||||
|
fileInfo.setTaskId(taskId);
|
||||||
|
fileInfo.setModelId(purchaseCheckDetail.getTypeId());
|
||||||
|
fileInfo.setTaskType(0);
|
||||||
|
List<BmFileInfo> bmFileInfos = bmFileInfoMapper.selectBmFileInfoList(fileInfo);
|
||||||
|
if (!CollectionUtils.isEmpty(bmFileInfos)) {
|
||||||
|
purchaseCheckDetail.setFileReceiveNum(bmFileInfos.size());
|
||||||
|
} else {
|
||||||
|
purchaseCheckDetail.setFileReceiveNum(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
result.setMaterialList(purchaseCheckDetails);
|
result.setMaterialList(purchaseCheckDetails);
|
||||||
return result;
|
return result;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -644,7 +725,15 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
@Transactional
|
@Transactional
|
||||||
public boolean updatePurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto) {
|
public boolean updatePurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto) {
|
||||||
purchaseCheckDto.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate());
|
purchaseCheckDto.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate());
|
||||||
purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername());
|
purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getLoginUser().getUsername());
|
||||||
|
// 先去查是否存在文件信息,存在就删除
|
||||||
|
BmFileInfo fileInfo = new BmFileInfo();
|
||||||
|
fileInfo.setTaskType(0);
|
||||||
|
fileInfo.setTaskId(purchaseCheckDto.getPurchaseCheckInfo().getTaskId());
|
||||||
|
List<BmFileInfo> bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(fileInfo);
|
||||||
|
if (!CollectionUtils.isEmpty(bmFileInfoList)) {
|
||||||
|
bmFileInfoMapper.deleteBmFileList(purchaseCheckDto.getPurchaseCheckInfo().getTaskId());
|
||||||
|
}
|
||||||
if (!CollectionUtils.isEmpty(purchaseCheckDto.getPurchaseCheckDetailsList())) {
|
if (!CollectionUtils.isEmpty(purchaseCheckDto.getPurchaseCheckDetailsList())) {
|
||||||
purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(Objects::isNull);
|
purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(Objects::isNull);
|
||||||
purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(o -> Objects.isNull(o.getStatus()));
|
purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(o -> Objects.isNull(o.getStatus()));
|
||||||
|
|
@ -693,4 +782,24 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
public List<PurchaseCheckInfo> selectPurchaseCheckUserById(PurchaseQueryDto purchaseQueryDto) {
|
public List<PurchaseCheckInfo> selectPurchaseCheckUserById(PurchaseQueryDto purchaseQueryDto) {
|
||||||
return purchaseCheckInfoMapper.selectPurchaseCheckUserById(purchaseQueryDto);
|
return purchaseCheckInfoMapper.selectPurchaseCheckUserById(purchaseQueryDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取签名列表
|
||||||
|
* @param purchaseSignRecord
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<PurchaseSignRecord> getSignList(PurchaseSignRecord purchaseSignRecord) {
|
||||||
|
List<PurchaseSignRecord> list = signProcessMapper.getPurchaseSignRecordByTask(purchaseSignRecord.getTaskId());
|
||||||
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
|
for (PurchaseSignRecord signRecord : list) {
|
||||||
|
if ("1".equals(signRecord.getAuditStatus())) {
|
||||||
|
signRecord.setAuditStatusName("审核通过");
|
||||||
|
} else if ("2".equals(signRecord.getAuditStatus())) {
|
||||||
|
signRecord.setAuditStatusName("审核驳回");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,19 +3,16 @@ package com.bonus.material.purchase.service.impl;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import cn.hutool.json.JSONObject;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.ah.sbd.SmsTool;
|
|
||||||
import com.ah.sbd.utils.param.SmsParam;
|
|
||||||
import com.bonus.common.biz.constant.BmConfigItems;
|
|
||||||
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
|
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
|
||||||
import com.bonus.common.biz.enums.TmTaskTypeEnum;
|
import com.bonus.common.biz.enums.TmTaskTypeEnum;
|
||||||
import com.bonus.common.core.exception.ServiceException;
|
import com.bonus.common.core.exception.ServiceException;
|
||||||
import com.bonus.common.core.utils.DateUtils;
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
import com.bonus.common.core.utils.encryption.AesCbcUtils;
|
|
||||||
import com.bonus.common.core.utils.encryption.Sm4Utils;
|
import com.bonus.common.core.utils.encryption.Sm4Utils;
|
||||||
import com.bonus.common.core.utils.sms.SmsUtils;
|
import com.bonus.common.core.utils.sms.SmsUtils;
|
||||||
import com.bonus.common.core.web.domain.AjaxResult;
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.common.security.utils.SecurityUtils;
|
import com.bonus.common.security.utils.SecurityUtils;
|
||||||
|
import com.bonus.material.countersign.domain.SignProcessVo;
|
||||||
import com.bonus.material.countersign.mapper.SignProcessMapper;
|
import com.bonus.material.countersign.mapper.SignProcessMapper;
|
||||||
import com.bonus.material.part.mapper.PartCheckMapper;
|
import com.bonus.material.part.mapper.PartCheckMapper;
|
||||||
import com.bonus.material.purchase.domain.PurchaseSignRecord;
|
import com.bonus.material.purchase.domain.PurchaseSignRecord;
|
||||||
|
|
@ -112,8 +109,8 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
|
||||||
String splitPhoneNumber = String.join(",", purchaseNoticePersonDto.getPhoneNumbers());
|
String splitPhoneNumber = String.join(",", purchaseNoticePersonDto.getPhoneNumbers());
|
||||||
try {
|
try {
|
||||||
// 省公司短信发送
|
// 省公司短信发送
|
||||||
JSONObject sendResult = SmsTool.sendSms(new SmsParam(splitPhoneNumber, purchaseNoticePersonDto.getContent()), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
|
//JSONObject sendResult = SmsTool.sendSms(new SmsParam(splitPhoneNumber, purchaseNoticePersonDto.getContent()), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
|
||||||
//String sendResult = SmsUtils.smsToken(splitPhoneNumber, purchaseNoticePersonDto.getContent(),"");
|
String sendResult = SmsUtils.smsToken(splitPhoneNumber, purchaseNoticePersonDto.getContent(),"");
|
||||||
if (sendResult != null) {
|
if (sendResult != null) {
|
||||||
// 发送短信后修改任务状态
|
// 发送短信后修改任务状态
|
||||||
if (purchaseNoticePersonDto.getIsPartFlag() != null && purchaseNoticePersonDto.getIsPartFlag() == 0) {
|
if (purchaseNoticePersonDto.getIsPartFlag() != null && purchaseNoticePersonDto.getIsPartFlag() == 0) {
|
||||||
|
|
@ -133,6 +130,27 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
|
||||||
// 修改采购明细的任务状态
|
// 修改采购明细的任务状态
|
||||||
purchaseCheckDetailsService.batchUpdateDetailsTaskStatus(purchaseNoticePersonDto.getTaskId(), PurchaseTaskStatusEnum.TO_CHECK.getStatus(), "");
|
purchaseCheckDetailsService.batchUpdateDetailsTaskStatus(purchaseNoticePersonDto.getTaskId(), PurchaseTaskStatusEnum.TO_CHECK.getStatus(), "");
|
||||||
}
|
}
|
||||||
|
// 发送验收通知,供应科默认验收通过,将数据存入验收记录表
|
||||||
|
List<SignProcessVo> signProcessVoList = signProcessMapper.getList(new SignProcessVo());
|
||||||
|
Long loginUserDeptId = null;
|
||||||
|
if (CollectionUtil.isNotEmpty(signProcessVoList)) {
|
||||||
|
for (SignProcessVo signProcessVo : signProcessVoList) {
|
||||||
|
if ("供应科".equals(signProcessVo.getOrgName())) {
|
||||||
|
loginUserDeptId = signProcessVo.getOrgId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PurchaseSignRecord purchaseSignRecord = new PurchaseSignRecord();
|
||||||
|
purchaseSignRecord.setTaskId(purchaseNoticePersonDto.getTaskId());
|
||||||
|
purchaseSignRecord.setUserId(SecurityUtils.getLoginUser().getUserid());
|
||||||
|
purchaseSignRecord.setOrgId(loginUserDeptId);
|
||||||
|
// 审核通过
|
||||||
|
purchaseSignRecord.setAuditStatus("1");
|
||||||
|
purchaseSignRecord.setCreateTime(DateUtils.getNowDate());
|
||||||
|
int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(purchaseSignRecord);
|
||||||
|
if (addPurchaseSignResult < 1) {
|
||||||
|
return AjaxResult.error("插入验收通知表数据失败");
|
||||||
|
}
|
||||||
return AjaxResult.success("短信发送成功:" + sendResult);
|
return AjaxResult.success("短信发送成功:" + sendResult);
|
||||||
} else {
|
} else {
|
||||||
return AjaxResult.error("短信发送失败,发送结果为空");
|
return AjaxResult.error("短信发送失败,发送结果为空");
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,8 @@ public class ScrapReasonServiceImpl implements IScrapReasonService
|
||||||
{
|
{
|
||||||
scrapReason.setCreateTime(DateUtils.getNowDate());
|
scrapReason.setCreateTime(DateUtils.getNowDate());
|
||||||
scrapReason.setUpdateTime(DateUtils.getNowDate());
|
scrapReason.setUpdateTime(DateUtils.getNowDate());
|
||||||
scrapReason.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
|
scrapReason.setCreateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid()));
|
||||||
scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
|
scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid()));
|
||||||
try {
|
try {
|
||||||
return scrapReasonMapper.insertScrapReasonInfo(scrapReason);
|
return scrapReasonMapper.insertScrapReasonInfo(scrapReason);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
@ -105,7 +105,7 @@ public class ScrapReasonServiceImpl implements IScrapReasonService
|
||||||
public int updateScrapReasonInfo(ScrapReason scrapReason)
|
public int updateScrapReasonInfo(ScrapReason scrapReason)
|
||||||
{
|
{
|
||||||
scrapReason.setUpdateTime(DateUtils.getNowDate());
|
scrapReason.setUpdateTime(DateUtils.getNowDate());
|
||||||
scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
|
scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid()));
|
||||||
try {
|
try {
|
||||||
// 先根据id查询报修记录,如果存在,修改报修记录的报废原因
|
// 先根据id查询报修记录,如果存在,修改报修记录的报废原因
|
||||||
List<RepairPartDetails> list = scrapReasonMapper.getRepairRecord(scrapReason);
|
List<RepairPartDetails> list = scrapReasonMapper.getRepairRecord(scrapReason);
|
||||||
|
|
|
||||||
|
|
@ -161,17 +161,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="getPurchaseSignRecordByTask" resultType="com.bonus.material.purchase.domain.PurchaseSignRecord">
|
<select id="getPurchaseSignRecordByTask" resultType="com.bonus.material.purchase.domain.PurchaseSignRecord">
|
||||||
select
|
SELECT
|
||||||
id, task_id as taskId, auditor as userId, org_id as orgId
|
par.id,
|
||||||
from
|
par.task_id AS taskId,
|
||||||
purchase_audit_record
|
par.auditor AS userId,
|
||||||
where
|
par.org_id AS orgId,
|
||||||
task_id = #{taskId}
|
par.audit_status AS auditStatus,
|
||||||
|
par.create_time AS createTime,
|
||||||
|
su.nick_name AS userName,
|
||||||
|
sd.dept_name AS deptName,
|
||||||
|
par.audit_remark AS auditRemark
|
||||||
|
FROM
|
||||||
|
purchase_audit_record par
|
||||||
|
LEFT JOIN sys_user su ON par.auditor = su.user_id
|
||||||
|
LEFT JOIN sys_dept sd ON par.org_id = sd.dept_id
|
||||||
|
WHERE
|
||||||
|
par.audit_status = '1' and par.task_id = #{taskId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertPurchaseSignRecord">
|
<insert id="insertPurchaseSignRecord">
|
||||||
insert into purchase_audit_record(task_id, auditor, org_id)
|
insert into purchase_audit_record(task_id, auditor, audit_time, audit_status, org_id, creator, create_time, audit_remark)
|
||||||
values(#{taskId}, #{userId}, #{orgId})
|
values(#{taskId}, #{userId}, #{createTime}, #{auditStatus} ,#{orgId}, #{userId}, #{createTime}, #{auditRemark})
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<select id="getPurchaseSignUrlListByTaskId" resultType="com.bonus.material.purchase.domain.PurchaseSignRecord">
|
<select id="getPurchaseSignUrlListByTaskId" resultType="com.bonus.material.purchase.domain.PurchaseSignRecord">
|
||||||
|
|
@ -179,6 +189,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
su.sign_url as signUrl,su.sign_type as signType
|
su.sign_url as signUrl,su.sign_type as signType
|
||||||
FROM purchase_audit_record par
|
FROM purchase_audit_record par
|
||||||
LEFT JOIN sys_user su ON su.user_id = par.auditor
|
LEFT JOIN sys_user su ON su.user_id = par.auditor
|
||||||
WHERE par.task_id = #{taskId}
|
WHERE par.audit_status = '1' and par.task_id = #{taskId}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -940,4 +940,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
ma_type
|
ma_type
|
||||||
WHERE `level` = '1'
|
WHERE `level` = '1'
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getCount" resultType="java.lang.Integer">
|
||||||
|
SELECT
|
||||||
|
count(1)
|
||||||
|
FROM
|
||||||
|
ma_type
|
||||||
|
WHERE
|
||||||
|
del_flag = '0'
|
||||||
|
AND parent_id = #{typeId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
|
||||||
<select id="selectPartTypeCheckDetailsList" resultType="com.bonus.material.part.domain.PartTypeCheckDetails">
|
<select id="selectPartTypeCheckDetailsList" resultType="com.bonus.material.part.domain.PartTypeCheckDetails">
|
||||||
select part_id as partId,mpt.pa_name as maTypeName,purchase_price as purchasePrice,purchase_tax_price as purchaseTaxPrice,
|
select part_id as partId,mpt.pa_name as maTypeName,purchase_price as purchasePrice,purchase_tax_price as purchaseTaxPrice,
|
||||||
purchase_num as purchaseNum,ppd.status
|
purchase_num as purchaseNum,ppd.status as status
|
||||||
from purchase_part_details ppd
|
from purchase_part_details ppd
|
||||||
left join ma_part_type mpt on ppd.part_id = mpt.pa_id and mpt.del_flag = 0
|
left join ma_part_type mpt on ppd.part_id = mpt.pa_id and mpt.del_flag = 0
|
||||||
where ppd.task_id = #{taskId} and ppd.del_flag = 0
|
where ppd.task_id = #{taskId} and ppd.del_flag = 0
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
scrap_id as scrapId,
|
scrap_id as scrapId,
|
||||||
scrap_reason as scrapReason
|
scrap_reason as scrapReason
|
||||||
FROM
|
FROM
|
||||||
repair_apply_details
|
repair_apply_record
|
||||||
WHERE
|
WHERE
|
||||||
scrap_id = #{id}
|
scrap_id = #{id}
|
||||||
</select>
|
</select>
|
||||||
|
|
@ -157,7 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
|
||||||
<update id="updateRepairRecord">
|
<update id="updateRepairRecord">
|
||||||
update
|
update
|
||||||
repair_apply_details
|
repair_apply_record
|
||||||
set
|
set
|
||||||
scrap_reason = #{scrapReason}
|
scrap_reason = #{scrapReason}
|
||||||
where scrap_id = #{id}
|
where scrap_id = #{id}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue