维修管理优化

This commit is contained in:
syruan 2024-12-18 18:00:13 +08:00
parent dd0dc21126
commit 0f582a0d68
11 changed files with 119 additions and 18 deletions

View File

@ -194,7 +194,9 @@ public class StoreLogAspect {
.collect(Collectors.joining(",")); .collect(Collectors.joining(","));
bmStorageLog.setMaCode(maCode); bmStorageLog.setMaCode(maCode);
bmStorageLog.setInputType(InputOutEnum.CODE_DEVICE.getTypeId()); bmStorageLog.setInputType(InputOutEnum.CODE_DEVICE.getTypeId());
bmStorageLog.setManageType(String.valueOf(InputOutEnum.CODE_DEVICE.getTypeId()));
} else { } else {
bmStorageLog.setManageType(String.valueOf(InputOutEnum.NUMBER_DEVICE.getTypeId()));
bmStorageLog.setInNum(purchaseDto.getInputNum()); bmStorageLog.setInNum(purchaseDto.getInputNum());
bmStorageLog.setInputType(InputOutEnum.NUMBER_DEVICE.getTypeId()); bmStorageLog.setInputType(InputOutEnum.NUMBER_DEVICE.getTypeId());
} }

View File

@ -592,7 +592,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
.map(BackApplyInfo::getTypeId).distinct() .map(BackApplyInfo::getTypeId).distinct()
.collect(Collectors.toList()); .collect(Collectors.toList());
// 插入任务表 // 插入任务表
Long newTaskId = insertTt(SecurityUtils.getUsername()); Long newTaskId = insertTt(SecurityUtils.getUsername(), backApplyInfo.getRemark(), backApplyInfo.getTaskId());
// 插入协议任务表 // 插入协议任务表
result += insertTta(newTaskId, applyInfoList); result += insertTta(newTaskId, applyInfoList);
for (String typeId : typeIdList) { for (String typeId : typeIdList) {
@ -1146,7 +1146,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
* @param createBy * @param createBy
* @return * @return
*/ */
private Long insertTt(String createBy) { private Long insertTt(String createBy, String remark, Long preTaskId) {
Long newTask = null; Long newTask = null;
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()); int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId());
// 生成维修单号 // 生成维修单号
@ -1154,6 +1154,8 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId(), BackTaskStatusEnum.BACK_TASK_NO_FINISHED.getStatus(), TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId(), BackTaskStatusEnum.BACK_TASK_NO_FINISHED.getStatus(),
null,thisMonthMaxOrder + 1, code); null,thisMonthMaxOrder + 1, code);
tmTask.setCreateTime(DateUtils.getNowDate()); tmTask.setCreateTime(DateUtils.getNowDate());
tmTask.setRemark(remark);
tmTask.setPreTaskId(preTaskId);
tmTask.setCreateBy(createBy); tmTask.setCreateBy(createBy);
// 插入任务 // 插入任务
int taskId = taskMapper.insertTmTask(tmTask); int taskId = taskMapper.insertTmTask(tmTask);

View File

@ -87,6 +87,24 @@ public class PurchaseCheckInfo extends BaseEntity {
@ApiModelProperty(value = "采购数量--外层Table字段") @ApiModelProperty(value = "采购数量--外层Table字段")
private BigDecimal purchaseMaNumber; private BigDecimal purchaseMaNumber;
/**
* 验收数量
*/
@ApiModelProperty(value = "验收数量--外层Table字段")
private BigDecimal checkMaNumber;
/**
* 绑定数量
*/
@ApiModelProperty(value = "绑定数量--外层Table字段")
private BigDecimal bindMaNumber;
@ApiModelProperty(value = "入库数量--外层Table字段")
private BigDecimal inputMaNumber;
@ApiModelProperty(value = "待入库数量--外层Table字段")
private BigDecimal waitInputNumber;
/** /**
* 采购单价(不含税) * 采购单价(不含税)
*/ */

View File

@ -143,6 +143,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(o.getManageType()) && purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(o.getManageType()) &&
(o.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND.getStatus()) || o.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())))).collect(Collectors.toList()); (o.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND.getStatus()) || o.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())))).collect(Collectors.toList());
OptionalInt minStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).min(); OptionalInt minStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).min();
if (isAllowPartTransfer) { if (isAllowPartTransfer) {
if (!CollectionUtils.isEmpty(purchaseQueryDto.getStatusList())) { if (!CollectionUtils.isEmpty(purchaseQueryDto.getStatusList())) {
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> purchaseQueryDto.getStatusList().contains(o.getStatus())).collect(Collectors.toList()); purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> purchaseQueryDto.getStatusList().contains(o.getStatus())).collect(Collectors.toList());
@ -152,7 +153,10 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), new ArrayList<>())); purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), new ArrayList<>()));
} }
if (!CollectionUtils.isEmpty(purchaseCheckDetails)) { if (!CollectionUtils.isEmpty(purchaseCheckDetails)) {
BigDecimal purchaseMaTotalNumber = new BigDecimal("0"); BigDecimal purchaseMaTotalNumber = BigDecimal.ZERO;
BigDecimal checkMaTotalNumber = BigDecimal.ZERO;
BigDecimal bindMaTotalNumber = BigDecimal.ZERO;
BigDecimal inputMaTotalNumber = BigDecimal.ZERO;
AtomicReference<BigDecimal> purchaseMaTotalPrice = new AtomicReference<>(BigDecimal.ZERO); AtomicReference<BigDecimal> purchaseMaTotalPrice = new AtomicReference<>(BigDecimal.ZERO);
for (PurchaseCheckDetails detail : purchaseCheckDetails) { for (PurchaseCheckDetails detail : purchaseCheckDetails) {
if (detail.getPurchaseNum() == null || detail.getPurchasePrice() == null) { if (detail.getPurchaseNum() == null || detail.getPurchasePrice() == null) {
@ -162,11 +166,18 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
throw new IllegalArgumentException("采购数量和价格必须为非负数"); throw new IllegalArgumentException("采购数量和价格必须为非负数");
} }
// 更新 purchaseMaTotalNumber // 更新 purchaseMaTotalNumber
purchaseMaTotalNumber = purchaseMaTotalNumber.add(detail.getPurchaseNum()); purchaseMaTotalNumber = purchaseMaTotalNumber.add(Optional.of(detail.getPurchaseNum()).orElse(BigDecimal.ZERO));
checkMaTotalNumber = checkMaTotalNumber.add(Optional.ofNullable(detail.getCheckNum()).orElse(BigDecimal.ZERO));
bindMaTotalNumber = bindMaTotalNumber.add(Optional.ofNullable(detail.getBindNum()).orElse(BigDecimal.ZERO));
inputMaTotalNumber = inputMaTotalNumber.add(Optional.ofNullable(detail.getInputNum()).orElse(BigDecimal.ZERO));
purchaseMaTotalPrice.updateAndGet(v -> v.add(detail.getPurchaseNum().multiply(detail.getPurchasePrice()))); purchaseMaTotalPrice.updateAndGet(v -> v.add(detail.getPurchaseNum().multiply(detail.getPurchasePrice())));
} }
purchaseInfo.setPurchaseMaNumber(purchaseMaTotalNumber); purchaseInfo.setPurchaseMaNumber(purchaseMaTotalNumber);
purchaseInfo.setPurchasePrice(purchaseMaTotalPrice.get()); purchaseInfo.setPurchasePrice(purchaseMaTotalPrice.get());
purchaseInfo.setBindMaNumber(bindMaTotalNumber);
purchaseInfo.setCheckMaNumber(checkMaTotalNumber);
purchaseInfo.setInputMaNumber(inputMaTotalNumber);
purchaseInfo.setWaitInputNumber(Optional.of(purchaseMaTotalNumber).orElse(BigDecimal.ZERO).subtract(Optional.of(inputMaTotalNumber).orElse(BigDecimal.ZERO)));
if (purchaseInfo.getTaxRate() != null && purchaseInfo.getPurchasePrice() != null) { if (purchaseInfo.getTaxRate() != null && purchaseInfo.getPurchasePrice() != null) {
purchaseInfo.setPurchaseTaxPrice(calculateTaxPrice(purchaseMaTotalPrice.get(), purchaseInfo.getTaxRate())); purchaseInfo.setPurchaseTaxPrice(calculateTaxPrice(purchaseMaTotalPrice.get(), purchaseInfo.getTaxRate()));
} }

View File

@ -26,6 +26,7 @@ import java.math.BigDecimal;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -233,6 +234,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
} }
dto.setTypeId(purchaseDto.getTypeId()); dto.setTypeId(purchaseDto.getTypeId());
result += purchaseStorageMapper.insertMachine(dto); result += purchaseStorageMapper.insertMachine(dto);
purchaseStorageMapper.updateStorageNum(BigDecimal.ONE, dto.getTypeId());
List<PurchaseCheckDetails> list = purchaseBindMapper.getMachineById(purchaseDto); List<PurchaseCheckDetails> list = purchaseBindMapper.getMachineById(purchaseDto);
if (CollectionUtils.isNotEmpty(list)) { if (CollectionUtils.isNotEmpty(list)) {
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), Integer.parseInt(purchaseDto.getPurchaseId())); result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), Integer.parseInt(purchaseDto.getPurchaseId()));

View File

@ -22,6 +22,11 @@ public interface RepairMapper {
*/ */
List<RepairTask> getRepairTaskList(RepairTask bean); List<RepairTask> getRepairTaskList(RepairTask bean);
/**
* 根据任务id 查询已操作数量已维修+已报废
*/
int getRepairedScrapNumByTaskId(Long taskId);
/** /**
* 获取维修任务列表 * 获取维修任务列表
* @param taskId 任务id * @param taskId 任务id
@ -61,7 +66,7 @@ public interface RepairMapper {
int updateThisRepairedAndScrapNum(@Param("id") Long id, @Param("thisRepairedNum") BigDecimal repairNum, @Param("thisScrapNum") BigDecimal thisScrapNum,@Param("repairer") Long repairer, @Param("userId") Long userId); int updateThisRepairedAndScrapNum(@Param("id") Long id, @Param("thisRepairedNum") BigDecimal repairNum, @Param("thisScrapNum") BigDecimal thisScrapNum,@Param("repairer") Long repairer, @Param("userId") Long userId);
int updateRepairedNumAndStatus(@Param("id") Long id, @Param("repairNum") BigDecimal repairNum, @Param("status") int status, @Param("repairer") Long repairer, @Param("userId") Long userId); int updateRepairedNumAndStatus(@Param("id") Long id, @Param("repairNum") BigDecimal repairNum, @Param("status") int status, @Param("repairer") String repairer, @Param("userId") Long userId);
/** /**
* 修改维修数量 * 修改维修数量
@ -71,6 +76,12 @@ public interface RepairMapper {
*/ */
int updateRepairedNumTwo(@Param("id") Long id, @Param("repairNum") BigDecimal repairNum, @Param("userId") Long userid); int updateRepairedNumTwo(@Param("id") Long id, @Param("repairNum") BigDecimal repairNum, @Param("userId") Long userid);
/**
* 修改维修数量和状态
* @param id 主键 key
* @param repairNum 维修数量
* @param userid 用户id
*/
int updateRepairedNumTwoAndStatus(@Param("id") Long id, @Param("repairNum") BigDecimal repairNum, @Param("status") int status, @Param("userId") Long userid); int updateRepairedNumTwoAndStatus(@Param("id") Long id, @Param("repairNum") BigDecimal repairNum, @Param("status") int status, @Param("userId") Long userid);
/** /**
@ -81,6 +92,12 @@ public interface RepairMapper {
*/ */
int updateScrapNum(@Param("id") Long id, @Param("scrapNum") BigDecimal scrapNum, @Param("userId") Long userId); int updateScrapNum(@Param("id") Long id, @Param("scrapNum") BigDecimal scrapNum, @Param("userId") Long userId);
/**
* 修改报废数量和状态
* @param id 主键key
* @param scrapNum 报废数量
* @param userId 用户id
*/
int updateScrapNumAndStatus(@Param("id") Long id, @Param("scrapNum") BigDecimal scrapNum, @Param("status") int status, @Param("userId") Long userId); int updateScrapNumAndStatus(@Param("id") Long id, @Param("scrapNum") BigDecimal scrapNum, @Param("status") int status, @Param("userId") Long userId);
/** /**
@ -96,6 +113,11 @@ public interface RepairMapper {
*/ */
int batchQualified(@Param("ids") ArrayList<Long> ids, @Param("userId") Long userId); int batchQualified(@Param("ids") ArrayList<Long> ids, @Param("userId") Long userId);
/**
* 根据已修数量已报废数量--更新维修状态
*/
int updateStatusByRepairScrapNum(@Param("id") Long id);
/** /**
* 查询维修人员列表 * 查询维修人员列表
*/ */

View File

@ -7,6 +7,8 @@ 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.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.back.domain.BackApplyInfo;
import com.bonus.material.back.mapper.BackApplyInfoMapper;
import com.bonus.material.basic.domain.BmFileInfo; import com.bonus.material.basic.domain.BmFileInfo;
import com.bonus.material.basic.mapper.BmFileInfoMapper; import com.bonus.material.basic.mapper.BmFileInfoMapper;
import com.bonus.material.repair.domain.*; import com.bonus.material.repair.domain.*;
@ -22,7 +24,6 @@ import com.bonus.material.task.domain.TmTask;
import com.bonus.material.task.mapper.TmTaskMapper; import com.bonus.material.task.mapper.TmTaskMapper;
import com.bonus.system.api.domain.SysUser; import com.bonus.system.api.domain.SysUser;
import com.bonus.system.api.model.LoginUser; import com.bonus.system.api.model.LoginUser;
import org.springframework.beans.BeanUtils;
import org.springframework.dao.DataAccessException; import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -34,6 +35,7 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -58,6 +60,9 @@ public class RepairServiceImpl implements RepairService {
@Resource @Resource
private RepairApplyDetailsMapper repairApplyDetailsMapper; private RepairApplyDetailsMapper repairApplyDetailsMapper;
@Resource
private BackApplyInfoMapper backApplyInfoMapper;
// 1:内部维修 2:外部返厂维修 3:报废 // 1:内部维修 2:外部返厂维修 3:报废
private final int INNER_REPAIR = 1; // 需要严格匹配枚举值 RepairTypeEnum.INNER_REPAIR.getTypeId(); private final int INNER_REPAIR = 1; // 需要严格匹配枚举值 RepairTypeEnum.INNER_REPAIR.getTypeId();
private final int RETURN_FACTORY = 2; // 需要严格匹配枚举值 RepairTypeEnum.RETURN_FACTORY.getTypeId(); private final int RETURN_FACTORY = 2; // 需要严格匹配枚举值 RepairTypeEnum.RETURN_FACTORY.getTypeId();
@ -435,7 +440,7 @@ public class RepairServiceImpl implements RepairService {
case INNER_REPAIR: { case INNER_REPAIR: {
partList = bean.getCodeInRepairPartList(); partList = bean.getCodeInRepairPartList();
// 更新维修数量并修改维修人员 // 更新维修数量并修改维修人员
repairMapper.updateRepairedNumAndStatus(bean.getId(), BigDecimal.ONE, 1, loginUser.getUserid(), loginUser.getUserid()); repairMapper.updateRepairedNumAndStatus(bean.getId(), BigDecimal.ONE, 1, loginUser.getUsername(), loginUser.getUserid());
break; break;
} }
case RETURN_FACTORY: { case RETURN_FACTORY: {
@ -621,6 +626,7 @@ public class RepairServiceImpl implements RepairService {
// repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid()); // repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid());
repairMapper.updateThisRepairedAndScrapNum(bean.getId(), innerRepairNum.add(outerRepairNum), scrapNum, loginUser.getUserid(), loginUser.getUserid()); repairMapper.updateThisRepairedAndScrapNum(bean.getId(), innerRepairNum.add(outerRepairNum), scrapNum, loginUser.getUserid(), loginUser.getUserid());
} }
repairMapper.updateStatusByRepairScrapNum(bean.getId());
} }
@ -856,7 +862,7 @@ public class RepairServiceImpl implements RepairService {
/** /**
* 生成维修单号 * 生成维修单号
* @param thisMonthMaxOrder 当前月最大 * @param thisMonthMaxOrder 当前月最大
*/ */
private String genderWxTaskCode(int thisMonthMaxOrder) { private String genderWxTaskCode(int thisMonthMaxOrder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
@ -869,7 +875,19 @@ public class RepairServiceImpl implements RepairService {
@Override @Override
public AjaxResult rejectRepair(@NotNull List<Long> taskList) { public AjaxResult rejectRepair(@NotNull List<Long> taskList) {
try { try {
taskList.forEach(taskId -> taskMapper.updateTaskStatus(String.valueOf(taskId), RepairTaskStatusEnum.TASK_STATUS_REJECT.getStatus())); taskList.forEach(taskId -> {
// 判断维修明细是否有已经维修的数据
int repairedScrapNumber = repairMapper.getRepairedScrapNumByTaskId(taskId);
if (repairedScrapNumber <= 0) {
// 1.修改维修task状态为已驳回
taskMapper.updateTaskStatus(String.valueOf(taskId), RepairTaskStatusEnum.TASK_STATUS_REJECT.getStatus());
TmTask tmTask = taskMapper.selectTmTaskByTaskId(taskId);
if (tmTask != null && tmTask.getPreTaskId() != null) {
// 2.修改退料任务状态为被维修驳回
backApplyInfoMapper.updateTaskStatus(new BackApplyInfo().setTaskId(tmTask.getPreTaskId()).setTaskStatus(1));
}
}
});
} catch (DataAccessException e) { } catch (DataAccessException e) {
System.err.println(e.getMessage()); System.err.println(e.getMessage());
return AjaxResult.error("数据库SQL修改执行失败" + e.getMessage()); return AjaxResult.error("数据库SQL修改执行失败" + e.getMessage());

View File

@ -26,6 +26,10 @@ public class TmTask extends BaseEntity {
/** 任务ID */ /** 任务ID */
private Long taskId; private Long taskId;
/** 上个阶段的任务ID */
@ApiModelProperty(value = "上个阶段的任务ID")
private Long preTaskId;
/** 任务类型(定义数据字典) */ /** 任务类型(定义数据字典) */
@Excel(name = "任务类型(定义数据字典)") @Excel(name = "任务类型(定义数据字典)")
@ApiModelProperty(value = "任务类型(定义数据字典)") @ApiModelProperty(value = "任务类型(定义数据字典)")

View File

@ -55,7 +55,7 @@ public interface TmTaskMapper {
int updateTmTask(TmTask tmTask); int updateTmTask(TmTask tmTask);
/** /**
* 根据任务id更新任务状态 -- 批量限制状态 * 根据任务id更新任务状态
* @param taskId 任务id 必传 * @param taskId 任务id 必传
* @param newStatus 新状态 * @param newStatus 新状态
*/ */

View File

@ -50,11 +50,14 @@
</update> </update>
<update id="updateThisRepairedAndScrapNum"> <update id="updateThisRepairedAndScrapNum">
update repair_apply_details update
set this_repaired_num = ifnull(this_repaired_num,0) + #{thisRepairedNum}, repair_apply_details
set
this_repaired_num = ifnull(this_repaired_num,0) + #{thisRepairedNum},
this_scrap_num = ifnull(this_scrap_num,0) + #{thisScrapNum}, this_scrap_num = ifnull(this_scrap_num,0) + #{thisScrapNum},
update_time = now() update_time = now()
where id = #{id} where
id = #{id}
</update> </update>
<update id="updateRepairedNumAndStatus"> <update id="updateRepairedNumAndStatus">
@ -135,7 +138,7 @@
<select id="getRepairTaskInfoByTaskId" resultType="com.bonus.material.repair.domain.RepairTask"> <select id="getRepairTaskInfoByTaskId" resultType="com.bonus.material.repair.domain.RepairTask">
SELECT SELECT
rd.task_id as taskId, rd.task_id as taskId,
rd.repairer, rd.repairer,rd.repaired_num,rd.scrap_num,
tt.CODE AS repairCode, tt.CODE AS repairCode,
tt.create_time AS createTime, tt.create_time AS createTime,
tt.task_status AS repairStatusCode, tt.task_status AS repairStatusCode,
@ -164,15 +167,14 @@
<select id="getRepairTaskList" resultType="com.bonus.material.repair.domain.RepairTask"> <select id="getRepairTaskList" resultType="com.bonus.material.repair.domain.RepairTask">
SELECT SELECT
rd.task_id as taskId, rd.task_id as taskId,
rd.repairer, su2.nick_name as repairer,
tt.CODE AS repairCode, tt.CODE AS repairCode,
tt.create_time AS createTime, tt.create_time AS createTime,
tt.task_status AS repairStatusCode, tt.task_status AS repairStatusCode,
tt.company_id AS companyId, tt.company_id AS companyId,
tt.remark, tt.remark,tt.create_by as createName,
bui.unit_name AS backUnit, bui.unit_name AS backUnit,
bpi.pro_name AS backPro, bpi.pro_name AS backPro,
su.nick_name AS createName,
bai.CODE AS backCode, bai.CODE AS backCode,
GROUP_CONCAT(DISTINCT mt2.type_name) as type GROUP_CONCAT(DISTINCT mt2.type_name) as type
FROM FROM
@ -186,6 +188,7 @@
LEFT JOIN bm_unit bui ON bai2.unit_id = bui.unit_id LEFT JOIN bm_unit bui ON bai2.unit_id = bui.unit_id
LEFT JOIN bm_project bpi ON bai2.project_id = bpi.pro_id and bpi.del_flag = '0' LEFT JOIN bm_project bpi ON bai2.project_id = bpi.pro_id and bpi.del_flag = '0'
left join sys_user su on rd.create_by = su.user_id left join sys_user su on rd.create_by = su.user_id
left join sys_user su2 on su2.user_id = rd.repairer
<where> <where>
<if test="keyword != null and keyword != ''"> <if test="keyword != null and keyword != ''">
AND (locate(#{keyword}, su.nick_name) > 0 AND (locate(#{keyword}, su.nick_name) > 0
@ -506,4 +509,20 @@
</if> </if>
ORDER BY rid.create_time DESC ORDER BY rid.create_time DESC
</select> </select>
<update id="updateStatusByRepairScrapNum">
update
repair_apply_details
set status = IF((ifnull(repaired_num, 0) + ifnull(scrap_num, 0) >= repair_num), 1, 0)
where id = #{id}
</update>
<select id="getRepairedScrapNumByTaskId" resultType="int">
SELECT
SUM(IFNULL(repaired_num,0) + IFNULL(this_repaired_num,0) + IFNULL(scrap_num,0) + IFNULL(this_scrap_num,0) ) as repairNum
FROM
repair_apply_details
WHERE
task_id = #{taskId}
</select>
</mapper> </mapper>

View File

@ -5,6 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.bonus.material.task.mapper.TmTaskMapper"> <mapper namespace="com.bonus.material.task.mapper.TmTaskMapper">
<resultMap type="com.bonus.material.task.domain.TmTask" id="TmTaskResult"> <resultMap type="com.bonus.material.task.domain.TmTask" id="TmTaskResult">
<result property="taskId" column="task_id" /> <result property="taskId" column="task_id" />
<result property="preTaskId" column="pre_task_id" />
<result property="taskType" column="task_type" /> <result property="taskType" column="task_type" />
<result property="taskStatus" column="task_status" /> <result property="taskStatus" column="task_status" />
<result property="code" column="code" /> <result property="code" column="code" />
@ -18,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectTmTaskVo"> <sql id="selectTmTaskVo">
select task_id, task_type, task_status, code, create_by, create_time, select task_id, pre_task_id, task_type, task_status, code, create_by, create_time,
update_by, update_time, remark, company_id, month_order update_by, update_time, remark, company_id, month_order
from tm_task from tm_task
</sql> </sql>
@ -43,6 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="insertTmTask" parameterType="com.bonus.material.task.domain.TmTask" useGeneratedKeys="true" keyProperty="taskId"> <insert id="insertTmTask" parameterType="com.bonus.material.task.domain.TmTask" useGeneratedKeys="true" keyProperty="taskId">
insert into tm_task insert into tm_task
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="preTaskId != null">pre_task_id,</if>
<if test="taskType != null">task_type,</if> <if test="taskType != null">task_type,</if>
<if test="taskStatus != null">task_status,</if> <if test="taskStatus != null">task_status,</if>
<if test="code != null">`code`,</if> <if test="code != null">`code`,</if>
@ -55,6 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="companyId != null">company_id,</if> <if test="companyId != null">company_id,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="preTaskId != null">#{preTaskId},</if>
<if test="taskType != null">#{taskType},</if> <if test="taskType != null">#{taskType},</if>
<if test="taskStatus != null">#{taskStatus},</if> <if test="taskStatus != null">#{taskStatus},</if>
<if test="code != null">#{code},</if> <if test="code != null">#{code},</if>