工地直转

This commit is contained in:
liang.chao 2024-03-12 13:52:31 +08:00
parent fe713e0e3a
commit d0d13039d6
8 changed files with 298 additions and 84 deletions

View File

@ -58,6 +58,9 @@ public class TokenController {
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
String uuid = form.getUuid();
String captcha = redisService.getCacheObject(CacheConstants.CAPTCHA_CODE_KEY + uuid).toString();
if (StringUtils.isBlank(captcha)){
return R.fail("验证码超时,请重新刷新");
}
if (form.getCode() != null && form.getCode().equals(captcha)) {
// 获取登录token
return R.ok(tokenService.createToken(userInfo));

View File

@ -96,6 +96,16 @@ public class RedisService
return redisTemplate.hasKey(key);
}
/**
* 删除单个对象
*
* @param key
*/
public boolean deleteObject(final String key)
{
return redisTemplate.delete(key);
}
/**
* 获得缓存的基本对象
*
@ -108,16 +118,6 @@ public class RedisService
return operation.get(key);
}
/**
* 删除单个对象
*
* @param key
*/
public boolean deleteObject(final String key)
{
return redisTemplate.delete(key);
}
/**
* 删除集合对象
*

View File

@ -105,90 +105,45 @@ public class WorkSiteDirectManageController extends BaseController {
return AjaxResult.success("保存成功");
}
/* @ApiOperation(value = "通过")
@ApiOperation(value = "通过")
@PostMapping("/pass")
public AjaxResult pass(@RequestBody DirectApplyInfoDetails directApplyInfoDetails) {
if (directApplyInfoDetails.getDirectApplyInfo() != null) {
DirectApplyInfo directApplyInfos = directApplyInfoDetails.getDirectApplyInfo();
// 修改direct_apply_info 状态
if (StringUtils.isNotBlank(directApplyInfoDetails.getDirectApplyInfoId())) {
DirectApplyInfo directApplyInfos = workSiteDirectManageService.getDirectApplyInfoById(directApplyInfoDetails.getDirectApplyInfoId());
directApplyInfos.setStatus("1");
workSiteDirectManageService.refuseDirectApplyInfo(directApplyInfos);
} else {
return AjaxResult.error("直转信息为空,未通过");
}
//创建领料任务
try {
TmTask task = directApplyInfoDetails.getTask();
if (StringUtils.isNull(task)) {
return AjaxResult.error("参数错误");
}
if (task == null) {
return AjaxResult.error("任务新建失败");
} else {
String code = tmTaskService.genderLeaseCode();
if (StringUtils.isEmpty(code)) {
return AjaxResult.error("后台生成CODE编号异常请重试!");
return AjaxResult.error("领料单号生成失败");
}
task.setCode(code);
// 创建任务
boolean addTaskResult = tmTaskService.insertSelective(task) > 0;
//任务与协议建立关联关系
boolean i = tmTaskService.insertAgreement(task) > 0;
if (addTaskResult && task.getLeaseApplyInfo() != null) {
if (CollUtil.isEmpty(task.getLeaseApplyDetails())) {
return AjaxResult.error("领料设备明细为空,请重新选择后上传!");
}
if (StringUtils.isNull(task.getLeaseApplyInfo())) {
return AjaxResult.error("领料任务信息为空,请重新选择后上传!");
// 创建领料任务tm_task
int res1 = workSiteDirectManageService.insertLeaseApplyInfo(task);
if (res1 == 0) {
return AjaxResult.error("任务新建失败");
}
// 获取任务编号
String taskId = task.getId();
List<List<LeaseApplyDetails>> deviceByCompanyList = CollUtil.groupByField(task.getLeaseApplyDetails(), "companyId");
// 对拆分后的集合进行each遍历
for (List<LeaseApplyDetails> leaseApplyDetailsList : deviceByCompanyList) {
// 判断拆分后的集合内是否有数据
if (CollUtil.isNotEmpty(leaseApplyDetailsList)) {
// 对领料任务表的对象做数据处理
LeaseApplyInfo leaseApplyInfo = task.getLeaseApplyInfo();
leaseApplyInfo.setCode(code); // 创建领料单号
leaseApplyInfo.setTaskId(Integer.valueOf(taskId)); // 设置任务ID
leaseApplyInfo.setCompanyId(leaseApplyDetailsList.get(0).getCompanyId()); // 设置设备所属分公司,用于交给哪家审核
leaseApplyInfo.setType("2"); // 设置审批层级先固定2层后期根据接口传入Type区分来源设定
//任务与协议建立关联关系 (tm_task_agreement)
int res2 = workSiteDirectManageService.insertAgreement(task);
if (res2 == 0) {
return AjaxResult.error("协议建立失败");
}
// 创建领料任务返回领料任务编号
boolean addLeaseTaskResult = leaseApplyInfoService.genderLeaseCode(leaseApplyInfo) > 0;
// 领料任务创建完成进行领料任务明细插入
if (addLeaseTaskResult) {
// 领料任务编号
Integer leaseTaskId = leaseApplyInfo.getId();
ArrayList<Integer> ids = new ArrayList();
if (StringUtils.isNotNull(leaseTaskId)) {
for (LeaseApplyDetails leaseApplyDetails : leaseApplyDetailsList) {
leaseApplyDetails.setParenntId(leaseTaskId); // 设置领料任务ID
ids.add(leaseApplyDetails.getId());
//新增领料信息和详情lease_apply_infolease_apply_details
int res3 = workSiteDirectManageService.insertApplyInfoAndDetails(task);
if (res3 == 0) {
return AjaxResult.error("领料信息和详情新增失败");
}
// 插入领料任务明细
boolean addLeaseTaskDetailsResult = leaseApplyDetailsService.batchInsert(leaseApplyDetailsList) > 0;
if (addLeaseTaskDetailsResult) {
System.out.println("领料任务创建成功");
leaseUserBookService.batchDel(ids);
} else {
System.out.println("领料任务创建成功,但领料任务明细插入失败");
}
} else {
return AjaxResult.error("领料任务编号为空");
}
} else {
return AjaxResult.error("创建领料任务失败,或领料明细为空");
}
}
}
if (StringUtils.isEmpty(taskId)) {
return AjaxResult.error("任务编号为空,创建失败");
}
} else {
return AjaxResult.error("创建任务失败");
}
} catch (Exception e) {
return AjaxResult.error("创建任务失败," + e.getCause().toString() + "," + e.getMessage());
}
@ -196,7 +151,7 @@ public class WorkSiteDirectManageController extends BaseController {
//创建退料任务
return AjaxResult.success();
}*/
}
/**
* 不通过

View File

@ -15,10 +15,10 @@ import java.util.List;
public class DirectApplyInfoDetails extends BaseEntity {
private static final long serialVersionUID = 1L;
private String directApplyInfoId;
private DirectApplyInfo directApplyInfo;
private List<DirectApplyDetails> directApplyInfoDetails;
private TmTask task;
}

View File

@ -4,8 +4,12 @@ import com.bonus.sgzb.base.api.domain.DirectApplyDetails;
import com.bonus.sgzb.base.api.domain.DirectApplyInfo;
import com.bonus.sgzb.base.api.domain.SltAgreementInfo;
import com.bonus.sgzb.base.api.domain.SltAgreementRelation;
import com.bonus.sgzb.material.domain.LeaseApplyDetails;
import com.bonus.sgzb.material.domain.LeaseApplyInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -33,4 +37,11 @@ public interface WorkSiteDirectManageMapper {
List<DirectApplyInfo> getList();
DirectApplyInfo getDirectApplyInfoById(String directApplyInfoDetails);
int insertSelective(LeaseApplyInfo leaseApplyInfo);
int batchInsert(List<LeaseApplyDetails> leaseApplyDetailsList);
int batchDel(@Param("ids") ArrayList<Integer> ids);
}

View File

@ -4,6 +4,8 @@ import com.bonus.sgzb.base.api.domain.DirectApplyDetails;
import com.bonus.sgzb.base.api.domain.DirectApplyInfo;
import com.bonus.sgzb.base.api.domain.SltAgreementInfo;
import com.bonus.sgzb.base.api.domain.SltAgreementRelation;
import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.material.domain.TmTask;
import java.util.List;
@ -22,4 +24,12 @@ public interface WorkSiteDirectManageService {
List<DirectApplyInfo> getList();
String genderLeaseCode();
DirectApplyInfo getDirectApplyInfoById(String directApplyInfoDetails);
int insertLeaseApplyInfo(TmTask task);
int insertAgreement(TmTask task);
int insertApplyInfoAndDetails(TmTask task);
}

View File

@ -1,10 +1,17 @@
package com.bonus.sgzb.material.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.bonus.sgzb.base.api.domain.DirectApplyDetails;
import com.bonus.sgzb.base.api.domain.DirectApplyInfo;
import com.bonus.sgzb.base.api.domain.SltAgreementInfo;
import com.bonus.sgzb.common.core.utils.DateUtils;
import com.bonus.sgzb.common.core.utils.StringUtils;
import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.material.domain.LeaseApplyDetails;
import com.bonus.sgzb.material.domain.LeaseApplyInfo;
import com.bonus.sgzb.material.domain.TmTask;
import com.bonus.sgzb.material.mapper.WorkSiteDirectManageMapper;
import com.bonus.sgzb.material.service.TaskService;
import com.bonus.sgzb.material.service.WorkSiteDirectManageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -14,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -27,6 +35,8 @@ public class WorkSiteDirectManageImpl implements WorkSiteDirectManageService {
@Resource
private WorkSiteDirectManageMapper workSiteDirectManageMapper;
@Resource
private TaskService tmTaskService;
@Override
public List<SltAgreementInfo> getUseringData(String agreementId) {
@ -65,4 +75,95 @@ public class WorkSiteDirectManageImpl implements WorkSiteDirectManageService {
String code = "ZZ" + format + "-" + list.size() + i;
return code;
}
@Override
public DirectApplyInfo getDirectApplyInfoById(String directApplyInfoDetails) {
return workSiteDirectManageMapper.getDirectApplyInfoById(directApplyInfoDetails);
}
@Override
public int insertLeaseApplyInfo(TmTask task) {
int res = 0;
if (StringUtils.isNull(task)) {
return res;
}
// 创建任务
int i = tmTaskService.insertSelective(task);
if (i < 1) {
return res;
} else {
res = 1;
return res;
}
}
@Override
public int insertAgreement(TmTask task) {
int res = 0;
boolean b = tmTaskService.insertAgreement(task) > 0;
if (b) {
res = 1;
}
return res;
}
@Override
public int insertApplyInfoAndDetails(TmTask task) {
int res = 0;
if (task.getLeaseApplyInfo() != null) {
if (CollUtil.isEmpty(task.getLeaseApplyDetails())) {
return res;
}
if (StringUtils.isNull(task.getLeaseApplyInfo())) {
return res;
}
// 获取任务编号
String taskId = task.getId();
List<List<LeaseApplyDetails>> deviceByCompanyList = CollUtil.groupByField(task.getLeaseApplyDetails(), "companyId");
// 对拆分后的集合进行each遍历
for (List<LeaseApplyDetails> leaseApplyDetailsList : deviceByCompanyList) {
// 判断拆分后的集合内是否有数据
if (CollUtil.isNotEmpty(leaseApplyDetailsList)) {
// 对领料任务表的对象做数据处理
LeaseApplyInfo leaseApplyInfo = task.getLeaseApplyInfo();
leaseApplyInfo.setCode(task.getCode()); // 创建领料单号
leaseApplyInfo.setTaskId(Integer.valueOf(taskId)); // 设置任务ID
leaseApplyInfo.setCompanyId(leaseApplyDetailsList.get(0).getCompanyId()); // 设置设备所属分公司,用于交给哪家审核
leaseApplyInfo.setType("2"); // 设置审批层级先固定2层后期根据接口传入Type区分来源设定
// 创建领料任务返回领料任务编号
boolean addLeaseTaskResult = workSiteDirectManageMapper.insertSelective(leaseApplyInfo) > 0;
// 领料任务创建完成进行领料任务明细插入
if (addLeaseTaskResult) {
// 领料任务编号
Integer leaseTaskId = leaseApplyInfo.getId();
ArrayList<Integer> ids = new ArrayList();
if (StringUtils.isNotNull(leaseTaskId)) {
for (LeaseApplyDetails leaseApplyDetails : leaseApplyDetailsList) {
leaseApplyDetails.setParenntId(leaseTaskId); // 设置领料任务ID
ids.add(leaseApplyDetails.getId());
}
// 插入领料任务明细
boolean addLeaseTaskDetailsResult = workSiteDirectManageMapper.batchInsert(leaseApplyDetailsList) > 0;
if (addLeaseTaskDetailsResult) {
System.out.println("领料任务创建成功");
workSiteDirectManageMapper.batchDel(ids);
} else {
return res;
}
} else {
return res;
}
} else {
return res;
}
}
}
res = 1;
return res;
} else {
return res;
}
}
}

View File

@ -93,9 +93,140 @@
insert into direct_apply_info(direct_id,type_id,ma_id,direct_num)
values (#{directId},#{typeId},#{maId}, #{directNum})
</insert>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.bonus.sgzb.material.domain.LeaseApplyInfo" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into lease_apply_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="code != null">
code,
</if>
<if test="taskId != null">
task_id,
</if>
<if test="leasePerson != null and leasePerson != ''">
lease_person,
</if>
<if test="phone != null and phone != ''">
phone,
</if>
<if test="type != null and type != ''">
`type`,
</if>
<if test="companyAuditBy != null">
company_audit_by,
</if>
<if test="companyAuditTime != null and companyAuditTime != ''">
company_audit_time,
</if>
<if test="companyAuditRemark != null and companyAuditRemark != ''">
company_audit_remark,
</if>
<if test="deptAuditBy != null">
dept_audit_by,
</if>
<if test="deptAuditTime != null and deptAuditTime != ''">
dept_audit_time,
</if>
<if test="deptAuditRemark != null and deptAuditRemark != ''">
dept_audit_remark,
</if>
<if test="createBy != null and createBy != ''">
create_by,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateBy != null and updateBy != ''">
update_by,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="remark != null and remark != ''">
remark,
</if>
<if test="companyId != null">
company_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null">
#{code,jdbcType=VARCHAR},
</if>
<if test="taskId != null">
#{taskId,jdbcType=INTEGER},
</if>
<if test="leasePerson != null and leasePerson != ''">
#{leasePerson,jdbcType=VARCHAR},
</if>
<if test="phone != null and phone != ''">
#{phone,jdbcType=VARCHAR},
</if>
<if test="type != null and type != ''">
#{type,jdbcType=VARCHAR},
</if>
<if test="companyAuditBy != null">
#{companyAuditBy,jdbcType=INTEGER},
</if>
<if test="companyAuditTime != null and companyAuditTime != ''">
#{companyAuditTime,jdbcType=VARCHAR},
</if>
<if test="companyAuditRemark != null and companyAuditRemark != ''">
#{companyAuditRemark,jdbcType=VARCHAR},
</if>
<if test="deptAuditBy != null">
#{deptAuditBy,jdbcType=INTEGER},
</if>
<if test="deptAuditTime != null and deptAuditTime != ''">
#{deptAuditTime,jdbcType=VARCHAR},
</if>
<if test="deptAuditRemark != null and deptAuditRemark != ''">
#{deptAuditRemark,jdbcType=VARCHAR},
</if>
<if test="createBy != null and createBy != ''">
#{createBy,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null and updateBy != ''">
#{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="remark != null and remark != ''">
#{remark,jdbcType=VARCHAR},
</if>
<if test="companyId != null">
#{companyId,jdbcType=INTEGER},
</if>
</trim>
</insert>
<insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into lease_apply_details
(parennt_id, type_id, pre_num, al_num, `status`, create_by, create_time, update_by,
update_time, remark, company_id)
values
<foreach collection="list" item="item" separator=",">
(#{item.parenntId,jdbcType=INTEGER}, #{item.typeId,jdbcType=INTEGER}, #{item.preNum,jdbcType=FLOAT},
#{item.alNum,jdbcType=FLOAT}, #{item.status,jdbcType=VARCHAR}, #{item.createBy,jdbcType=VARCHAR},
NOW(), #{item.updateBy,jdbcType=VARCHAR}, NOW(),
#{item.remark,jdbcType=VARCHAR}, #{item.companyId,jdbcType=INTEGER})
</foreach>
</insert>
<update id="refuseDirectApplyInfo">
update direct_apply_info set status = #{status} where id = #{id}
</update>
<delete id="batchDel">
delete
from lease_user_book
where id in
<foreach close=")" collection="ids" item="id" open="(" separator=", ">
#{id}
</foreach>
</delete>
<select id="getUseringData" resultType="com.bonus.sgzb.base.api.domain.SltAgreementInfo">
SELECT
@ -116,4 +247,7 @@
<select id="getList" resultType="com.bonus.sgzb.base.api.domain.DirectApplyInfo">
select * from direct_apply_info
</select>
<select id="getDirectApplyInfoById" resultType="com.bonus.sgzb.base.api.domain.DirectApplyInfo">
select * from direct_apply_info where id = #{id}
</select>
</mapper>