新购优化

This commit is contained in:
mashuai 2025-06-14 14:58:13 +08:00
parent d6730c9bf8
commit 366db7dba7
20 changed files with 331 additions and 70 deletions

View File

@ -84,7 +84,7 @@ public class StoreLogAspect {
bmStorageLog.setStatus(200L);
// 请求的地址
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);
if (ObjectUtils.isNotEmpty(userInfo))
{

View File

@ -37,17 +37,21 @@ public class TreeSelect implements Serializable {
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<TreeSelect> children;
/** 子节点数量 */
private Integer number;
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.label = label;
this.houseId = houseId;
this.level = level;
this.parentId = parentId;
this.children = children;
this.number = number;
}
public TreeSelect(Long id, String label, Integer level, Long parentId) {

View File

@ -45,11 +45,9 @@ public class Type extends BaseEntity {
/** 库管员昵称 */
@ApiModelProperty(value = "库管员昵称id")
@Excel(name = "库管员昵称id",sort = 8)
private String keeperId;
/** 左侧树用户id */
@Excel(name = "库管员昵称id")
@ApiModelProperty(value = "左侧树用户id")
private List<String> keeperArr;
@ -60,12 +58,10 @@ public class Type extends BaseEntity {
/** 维修员昵称 */
@ApiModelProperty(value = "维修员昵称id")
@Excel(name = "维修员昵称id",sort = 10)
private String repairerId;
private List<String> repairerArr;
/** 仓库名称 */
@ApiModelProperty(value = "物资仓库名称")
@Excel(name = "物资仓库名称", sort = 6)
private String houseName;
/** 仓库Id */
@ -116,14 +112,13 @@ public class Type extends BaseEntity {
/** 排序 */
@ApiModelProperty(value = "排序")
@Excel(name = "排序",sort = 14)
private int sortNum;
@ApiModelProperty(value = "最大排序用于Tree排序")
private transient int maxSortPriority;
/** 管理方式(0编号 1计数) */
@Excel(name = "管理方式(0编号 1计数)",sort = 15)
@Excel(name = "管理方式(0编码 1数量)",readConverterExp = "0=编码,1=数量")
@ApiModelProperty(value = "管理方式(0编号 1计数)")
private String manageType;
@ -188,7 +183,6 @@ public class Type extends BaseEntity {
private String holdingTime;
/** 库存预警数量 */
@Excel(name = "库存预警数量",sort = 24)
@ApiModelProperty(value = "库存预警数量")
private Long warnNum;
@ -196,11 +190,9 @@ public class Type extends BaseEntity {
private String delFlag;
/** 是否计划管理0代表否 1代表是 */
@Excel(name = "是否计划管理", readConverterExp = "0=代表否,1=代表是",sort = 25)
private String isPlan;
/** 是否安措费机具0代表否1代表是 */
@Excel(name = "是否安措费机具", readConverterExp = "0=代表否1代表是",sort = 26)
private String isAncuo;
/** 厂家规格型号 */
@ -209,7 +201,6 @@ public class Type extends BaseEntity {
private String facModel;
/** 左侧树用户id */
@Excel(name = "左侧树用户id",sort = 28)
@ApiModelProperty(value = "左侧树用户id")
private Long userId;
@ -217,7 +208,6 @@ public class Type extends BaseEntity {
private Long companyId;
/** 推送智慧工程定义的门类分类机具编码 */
@Excel(name = "推送智慧工程定义的门类分类机具编码",sort = 29)
@ApiModelProperty(value = "推送智慧工程定义的门类分类机具编码")
private String intelligentCode;
@ -232,4 +222,7 @@ public class Type extends BaseEntity {
@ApiModelProperty(value = "抽检比例")
private String samplingRatio;
/** 子节点数量 */
private Integer number;
}

View File

@ -196,4 +196,11 @@ public interface TypeMapper {
* @return
*/
List<MaTypeVo> getListLevel(MaTypeVo maTypeVo);
/**
* 查询数量
* @param type
* @return
*/
Integer getCount(Type type);
}

View File

@ -302,6 +302,6 @@ public class StandardConfigManageServiceImpl implements StandardConfigManageServ
.filter(Objects::nonNull)
.map(this::convertToTreeSelect)
.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);
}
}

View File

@ -585,6 +585,14 @@ public class TypeServiceImpl implements ITypeService {
@Override
public List<TreeSelect> getMaTypeTree(String typeName, String parentId) {
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);
// 查询顶级节点的仓库配置信息
@ -639,7 +647,7 @@ public class TypeServiceImpl implements ITypeService {
.filter(Objects::nonNull)
.map(this::convertToTreeSelect)
.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());
}

View File

@ -135,4 +135,10 @@ public class PartTypeCheckInfo extends BaseEntity {
@ApiModelProperty(value = "新购模块阶段名称")
private String modelName;
@ApiModelProperty(value = "新购配件任务状态")
private Integer purchaseStatus;
@ApiModelProperty(value = "会签层级 1 代表供应科层级2 代表技术科层级3 代表库管班层级")
private String signLevel;
}

View File

@ -59,6 +59,7 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
try {
AjaxResult result = new AjaxResult();
if (!CollectionUtils.isEmpty(partChaseVerifyVo.getPurchaseCheckDetailsList())) {
Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
if (BooleanUtils.isTrue(partChaseVerifyVo.getVerifyPass())) {
// 验收通过处理流程
for (PartTypeCheckDetails details : partChaseVerifyVo.getPurchaseCheckDetailsList()) {
@ -66,13 +67,13 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
if (null != details && null != details.getTaskId()) {
// 查询已进行会签的org_id集合
List<PurchaseSignRecord> purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(details.getTaskId());
Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
if (null == loginUserDeptId || 0 == loginUserDeptId) {
return AjaxResult.error("会签失败!,请检查用户部门信息");
}
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) {
return AjaxResult.success("会签成功");
} else {
@ -93,11 +94,21 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
configSignOrgSet.removeAll(signedOrgSet);
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) {
// 会签成功对配置的流程进行处理
configSignOrgSet.remove(loginUserDeptId);
if (configSignOrgSet.isEmpty()) {
// 如果loginUserDeptId包含库管一班库管二班或者库管三班的任意一个组织id那么库管班就算审核通过
if (loginUserDeptId == 106L || loginUserDeptId == 334L || loginUserDeptId == 335L) {
System.out.println("ONE会签成功,放行进行验收流程!");
} else {
// 如果本次会签完成后还有需要进行会签的那么本次会签完成返回前端
@ -115,7 +126,7 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
} else {
return AjaxResult.error("detail数据异常,任务ID为空");
}
details.setCheckUser(SecurityUtils.getUserId());
details.setCheckUser(SecurityUtils.getLoginUser().getUserid());
details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus());
result = 0 < partCheckMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("验收成功") : AjaxResult.error("details无验证信息");
extractedFile(details);
@ -124,8 +135,23 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
// 验收驳回处理流程
for (PartTypeCheckDetails details : partChaseVerifyVo.getPurchaseCheckDetailsList()) {
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);
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().
@ -170,7 +196,7 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService {
if (null != bmFileInfo.getTaskType() && Objects.equals(TmTaskTypeEnum.TM_TASK_AGREEMENT_MANAGEMENT.getTaskTypeId(), bmFileInfo.getTaskType())) {
bmFileInfo.setTaskId(details.getTaskId());
bmFileInfo.setModelId(details.getId());
bmFileInfo.setCreateBy(SecurityUtils.getUsername());
bmFileInfo.setCreateBy(SecurityUtils.getLoginUser().getUsername());
bmFileInfo.setCreateTime(DateUtils.getNowDate());
bmFileInfoMapper.insertBmFileInfo(bmFileInfo);
}

View File

@ -11,6 +11,7 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.common.biz.domain.BmFileInfo;
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.part.domain.*;
import com.bonus.material.part.mapper.PartArrivedMapper;
@ -104,7 +105,7 @@ public class PartArrivedServiceImpl implements IPartArrivedService
@Transactional
public AjaxResult insertPartTypeCheckInfo(PartTypeCheckDto partTypeCheckDto) {
partTypeCheckDto.getPartTypeCheckInfo().setCreateTime(DateUtils.getNowDate());
partTypeCheckDto.getPartTypeCheckInfo().setCreateBy(SecurityUtils.getUsername());
partTypeCheckDto.getPartTypeCheckInfo().setCreateBy(SecurityUtils.getLoginUser().getUsername());
try {
final int thisMonthMaxOrder = partArrivedMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PART_TYPE.getTaskTypeId());
String taskCode = genderTaskCode(thisMonthMaxOrder);
@ -250,10 +251,46 @@ public class PartArrivedServiceImpl implements IPartArrivedService
partTypeCheckInfos.get(i).setPurchasePrice(purchasePrice);
partTypeCheckInfos.get(i).setPurchaseTaxPrice(purchaseTaxPrice);
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));
}
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();
// 如果关键字不为空进行过滤
if (StringUtils.isNotBlank(keyWord)) {
@ -339,7 +376,7 @@ public class PartArrivedServiceImpl implements IPartArrivedService
@Transactional
public boolean updatePartTypeCheckInfo(PartTypeCheckDto partTypeCheckDto) {
partTypeCheckDto.getPartTypeCheckInfo().setUpdateTime(DateUtils.getNowDate());
partTypeCheckDto.getPartTypeCheckInfo().setUpdateBy(SecurityUtils.getUsername());
partTypeCheckDto.getPartTypeCheckInfo().setUpdateBy(SecurityUtils.getLoginUser().getUsername());
// 先去查是否存在文件信息存在就删除
BmFileInfo fileInfo = new BmFileInfo();
fileInfo.setTaskType(13);

View File

@ -12,6 +12,7 @@ import com.bonus.common.log.enums.OperaType;
import com.bonus.common.security.annotation.RequiresPermissions;
import com.bonus.material.common.annotation.PreventRepeatSubmit;
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.PurchaseQueryDto;
import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;
@ -188,4 +189,16 @@ public class PurchaseCheckInfoController extends BaseController {
ExcelUtil<PurchaseCheckDetails> util = new ExcelUtil<>(PurchaseCheckDetails.class);
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);
}
}

View File

@ -145,6 +145,9 @@ public class PurchaseCheckInfo extends BaseEntity {
@ApiModelProperty(value = "出厂日期")
private String productionTime;
@ApiModelProperty(value = "新购任务状态")
private Integer purchaseStatus;
public String getCheckUser() {
return checkUser;
}

View File

@ -32,19 +32,29 @@ public class PurchaseSignRecord {
private String userName;
private String deptName;
/**
* 审核状态(1 通过2 驳回)
*/
private String auditStatus;
/**
* 审核状态名称(1 通过2 驳回)
*/
private String auditStatusName;
private String auditRemark;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
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.userId = userId;
this.orgId = orgId;
this.auditRemark = auditRemark;
}
public PurchaseSignRecord() {

View File

@ -5,6 +5,7 @@ import java.util.List;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
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.PurchaseQueryDto;
import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;
@ -83,4 +84,11 @@ public interface IPurchaseCheckInfoService {
int deletePurchaseCheckInfoById(Long id);
List<PurchaseCheckInfo> selectPurchaseCheckUserById(PurchaseQueryDto purchaseQueryDto);
/**
* 查询新购验收任务签名列表
* @param purchaseSignRecord
* @return
*/
List<PurchaseSignRecord> getSignList(PurchaseSignRecord purchaseSignRecord);
}

View File

@ -34,6 +34,7 @@ import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo;
import com.bonus.material.purchase.mapper.PurchaseMacodeInfoMapper;
import com.bonus.material.task.domain.TmTask;
import com.bonus.material.task.mapper.TmTaskMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;
@ -52,6 +53,7 @@ import static com.bonus.common.biz.constant.MaterialConstants.PURCHASE_TASK_TYPE
* @author syruan
*/
@Service
@Slf4j
public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
@Resource
@ -92,7 +94,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
*/
@Override
public PurchaseCheckDto selectPurchaseCheckInfoById(PurchaseQueryDto purchaseQueryDto) {
purchaseQueryDto.setUserId(SecurityUtils.getUserId());
purchaseQueryDto.setUserId(SecurityUtils.getLoginUser().getUserid());
PurchaseCheckDto purchaseCheckDtoResult = new PurchaseCheckDto();
PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId());
if (null != purchaseCheckInfo) {
@ -151,6 +153,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
final List<BmFileInfo> bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(fileInfo);
if (!CollectionUtils.isEmpty(bmFileInfoList)) {
purchaseCheckDetails.setIsExitFile(0);
purchaseCheckDetails.setBmFileInfos(bmFileInfoList);
}else {
purchaseCheckDetails.setIsExitFile(1);
}
@ -191,7 +194,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
public List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseQueryDto purchaseQueryDto) {
final List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseQueryDto);
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();}
List<PurchaseCheckInfo> purchaseCheckInfoResult = new ArrayList<>();
@ -287,6 +290,25 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
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());
// 设置外层任务列表
@ -300,6 +322,28 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
}
}
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();
// 如果关键字不为空进行过滤
if (!StringUtils.isBlank(keyWord)) {
@ -363,7 +407,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
@Transactional(rollbackFor = Exception.class)
public AjaxResult insertPurchaseCheckInfo(PurchaseCheckDto purchaseCheckInfo) {
purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate());
purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getUsername());
purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getLoginUser().getUsername());
try {
final int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId());
String taskCode = genderTaskCode(thisMonthMaxOrder);
@ -403,7 +447,12 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
details.setInputStatus("0");
final List<BmFileInfo> bmFileInfos = details.getBmFileInfos();
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);
}
Type type = new Type();
@ -412,7 +461,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
type.setTypeId(details.getTypeId());
type.setRentPrice(details.getRentPrice());
type.setUpdateTime(DateUtils.getNowDate());
type.setUpdateBy(SecurityUtils.getUserId().toString());
type.setUpdateBy(SecurityUtils.getLoginUser().getUserid().toString());
typeMapper.updateType(type);
}
}
@ -443,14 +492,14 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
if (!CollectionUtils.isEmpty(codeList)) {
for (PurchaseCheckDetails details : codeList) {
details.setStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus());
details.setCheckUser(SecurityUtils.getUserId());
details.setCheckUser(SecurityUtils.getLoginUser().getUserid());
updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details);
}
}
if (!CollectionUtils.isEmpty(numList)) {
for (PurchaseCheckDetails details : numList) {
details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus());
details.setCheckUser(SecurityUtils.getUserId());
details.setCheckUser(SecurityUtils.getLoginUser().getUserid());
updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details);
}
}
@ -467,6 +516,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
try {
AjaxResult result = new AjaxResult();
if (!CollectionUtils.isEmpty(purchaseVerifyVo.getPurchaseCheckDetailsList())) {
Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
if (BooleanUtils.isTrue(purchaseVerifyVo.getVerifyPass())) {
// 验收通过处理流程
for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) {
@ -474,26 +524,18 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
if (null != details && null != details.getTaskId()) {
// 查询已进行会签的org_id集合
List<PurchaseSignRecord> purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(details.getTaskId());
Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
if (null == loginUserDeptId || 0 == loginUserDeptId) {
return AjaxResult.error("会签失败!,请检查用户部门信息");
}
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) {
return AjaxResult.success("会签成功");
} else {
return AjaxResult.error("会签失败!插入0条数据");
}
} 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集合
List<SignProcessVo> signProcessVoList = signProcessMapper.getList(new SignProcessVo());
@ -508,11 +550,21 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
configSignOrgSet.removeAll(signedOrgSet);
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) {
// 会签成功对配置的流程进行处理
configSignOrgSet.remove(loginUserDeptId);
if (configSignOrgSet.isEmpty()) {
// 如果loginUserDeptId包含库管一班库管二班或者库管三班的任意一个组织id那么库管班就算审核通过
if (loginUserDeptId == 106L || loginUserDeptId == 334L || loginUserDeptId == 335L) {
// 库管班审核通过放行进行验收流程
System.out.println("ONE会签成功,放行进行验收流程!");
} else {
// 如果本次会签完成后还有需要进行会签的那么本次会签完成返回前端
@ -537,7 +589,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
} else if (MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(details.getManageType())) {
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无验证信息");
extractedFile(details);
}
@ -545,8 +597,23 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
// 验收驳回处理流程
for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) {
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);
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())) {
bmFileInfo.setTaskId(details.getTaskId());
bmFileInfo.setModelId(details.getId());
bmFileInfo.setCreateBy(SecurityUtils.getUsername());
bmFileInfo.setCreateBy(SecurityUtils.getLoginUser().getUsername());
bmFileInfo.setCreateTime(DateUtils.getNowDate());
bmFileInfoMapper.insertBmFileInfo(bmFileInfo);
}
@ -611,9 +678,23 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
});
}
// 执行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);
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);
return result;
} else {
@ -644,7 +725,15 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
@Transactional
public boolean updatePurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto) {
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())) {
purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(Objects::isNull);
purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(o -> Objects.isNull(o.getStatus()));
@ -693,4 +782,24 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
public List<PurchaseCheckInfo> selectPurchaseCheckUserById(PurchaseQueryDto 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;
}
}

View File

@ -3,19 +3,16 @@ package com.bonus.material.purchase.service.impl;
import java.util.List;
import java.util.Objects;
import cn.hutool.json.JSONObject;
import com.ah.sbd.SmsTool;
import com.ah.sbd.utils.param.SmsParam;
import com.bonus.common.biz.constant.BmConfigItems;
import cn.hutool.core.collection.CollectionUtil;
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.encryption.AesCbcUtils;
import com.bonus.common.core.utils.encryption.Sm4Utils;
import com.bonus.common.core.utils.sms.SmsUtils;
import com.bonus.common.core.web.domain.AjaxResult;
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.part.mapper.PartCheckMapper;
import com.bonus.material.purchase.domain.PurchaseSignRecord;
@ -112,8 +109,8 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
String splitPhoneNumber = String.join(",", purchaseNoticePersonDto.getPhoneNumbers());
try {
// 省公司短信发送
JSONObject sendResult = SmsTool.sendSms(new SmsParam(splitPhoneNumber, purchaseNoticePersonDto.getContent()), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
//String sendResult = SmsUtils.smsToken(splitPhoneNumber, purchaseNoticePersonDto.getContent(),"");
//JSONObject sendResult = SmsTool.sendSms(new SmsParam(splitPhoneNumber, purchaseNoticePersonDto.getContent()), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
String sendResult = SmsUtils.smsToken(splitPhoneNumber, purchaseNoticePersonDto.getContent(),"");
if (sendResult != null) {
// 发送短信后修改任务状态
if (purchaseNoticePersonDto.getIsPartFlag() != null && purchaseNoticePersonDto.getIsPartFlag() == 0) {
@ -133,6 +130,27 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer
// 修改采购明细的任务状态
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);
} else {
return AjaxResult.error("短信发送失败,发送结果为空");

View File

@ -70,8 +70,8 @@ public class ScrapReasonServiceImpl implements IScrapReasonService
{
scrapReason.setCreateTime(DateUtils.getNowDate());
scrapReason.setUpdateTime(DateUtils.getNowDate());
scrapReason.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
scrapReason.setCreateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid()));
scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid()));
try {
return scrapReasonMapper.insertScrapReasonInfo(scrapReason);
} catch (Exception e) {
@ -105,7 +105,7 @@ public class ScrapReasonServiceImpl implements IScrapReasonService
public int updateScrapReasonInfo(ScrapReason scrapReason)
{
scrapReason.setUpdateTime(DateUtils.getNowDate());
scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid()));
try {
// 先根据id查询报修记录如果存在修改报修记录的报废原因
List<RepairPartDetails> list = scrapReasonMapper.getRepairRecord(scrapReason);

View File

@ -161,17 +161,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update>
<select id="getPurchaseSignRecordByTask" resultType="com.bonus.material.purchase.domain.PurchaseSignRecord">
select
id, task_id as taskId, auditor as userId, org_id as orgId
from
purchase_audit_record
where
task_id = #{taskId}
SELECT
par.id,
par.task_id AS taskId,
par.auditor AS userId,
par.org_id AS orgId,
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>
<insert id="insertPurchaseSignRecord">
insert into purchase_audit_record(task_id, auditor, org_id)
values(#{taskId}, #{userId}, #{orgId})
insert into purchase_audit_record(task_id, auditor, audit_time, audit_status, org_id, creator, create_time, audit_remark)
values(#{taskId}, #{userId}, #{createTime}, #{auditStatus} ,#{orgId}, #{userId}, #{createTime}, #{auditRemark})
</insert>
<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
FROM purchase_audit_record par
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>
</mapper>

View File

@ -940,4 +940,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ma_type
WHERE `level` = '1'
</select>
<select id="getCount" resultType="java.lang.Integer">
SELECT
count(1)
FROM
ma_type
WHERE
del_flag = '0'
AND parent_id = #{typeId}
</select>
</mapper>

View File

@ -129,7 +129,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<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,
purchase_num as purchaseNum,ppd.status
purchase_num as purchaseNum,ppd.status as status
from purchase_part_details ppd
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

View File

@ -135,7 +135,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
scrap_id as scrapId,
scrap_reason as scrapReason
FROM
repair_apply_details
repair_apply_record
WHERE
scrap_id = #{id}
</select>
@ -157,7 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateRepairRecord">
update
repair_apply_details
repair_apply_record
set
scrap_reason = #{scrapReason}
where scrap_id = #{id}