Browse Source

添加业务类型相关操作

lwx_dev
erdanergou 2 years ago
parent
commit
0478e9b592
  1. 149
      src/main/java/com/dreamchaser/depository_manage/controller/BusinessTypeController.java
  2. 62
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  3. 50
      src/main/java/com/dreamchaser/depository_manage/entity/BusinessType.java
  4. 101
      src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.java
  5. 181
      src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.xml
  6. 8
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml
  7. 2
      src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java
  8. 97
      src/main/java/com/dreamchaser/depository_manage/service/BusinessTypeService.java
  9. 155
      src/main/java/com/dreamchaser/depository_manage/service/impl/BusinessTypeServiceImpl.java
  10. 218
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  11. 126
      src/main/resources/templates/pages/BusinessType/businesstype_add.html
  12. 125
      src/main/resources/templates/pages/BusinessType/businesstype_edit.html
  13. 354
      src/main/resources/templates/pages/BusinessType/businesstype_out.html
  14. 141
      src/main/resources/templates/pages/application/application-review.html
  15. 50
      src/main/resources/templates/pages/application/my-task.html
  16. 2
      src/main/resources/templates/pages/stockTaking/stockTaking.html
  17. 12
      src/test/java/com/dreamchaser/depository_manage/SomeTest.java
  18. 8
      target/classes/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml
  19. 141
      target/classes/templates/pages/application/application-review.html
  20. 50
      target/classes/templates/pages/application/my-task.html
  21. 2
      target/classes/templates/pages/stockTaking/stockTaking.html

149
src/main/java/com/dreamchaser/depository_manage/controller/BusinessTypeController.java

@ -0,0 +1,149 @@
package com.dreamchaser.depository_manage.controller;
import com.dreamchaser.depository_manage.entity.BusinessType;
import com.dreamchaser.depository_manage.entity.UserByPort;
import com.dreamchaser.depository_manage.exception.MyException;
import com.dreamchaser.depository_manage.pojo.RestResponse;
import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool;
import com.dreamchaser.depository_manage.service.BusinessTypeService;
import com.dreamchaser.depository_manage.utils.CrudUtil;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
@Controller
@Slf4j
@RequestMapping("/businessType")
public class BusinessTypeController {
@Autowired
private BusinessTypeService businessTypeService;
/**
* 添加一条新的业务类型数据
*
* @param map 带插入数据
* @param request
* @return
*/
@PostMapping("/addBusinessType")
public RestResponse addBusinessType(@RequestBody Map<String, Object> map, HttpServletRequest request) {
String usertoken = request.getHeader("user-token");
String userkey = request.getHeader("user-key");
if (usertoken == null) {
usertoken = (String) request.getSession().getAttribute("userToken");
userkey = (String) request.getSession().getAttribute("userKey");
}
// 获取当前登录用户
UserByPort userToken = AuthenticationTokenPool.getUserToken(usertoken);
map.put("createUid", userToken.getId());
return CrudUtil.insertHandle(businessTypeService.addBusinessType(map), 1);
}
/**
* 修改一条业务类型数据
*
* @param map 待修改数据
* @param request
* @return
*/
@PostMapping("/updateBusinessType")
public RestResponse updateBusinessType(@RequestBody Map<String, Object> map, HttpServletRequest request) {
String usertoken = request.getHeader("user-token");
String userkey = request.getHeader("user-key");
if (usertoken == null) {
usertoken = (String) request.getSession().getAttribute("userToken");
userkey = (String) request.getSession().getAttribute("userKey");
}
// 获取当前登录用户
UserByPort userToken = AuthenticationTokenPool.getUserToken(usertoken);
map.put("updateUid", userToken.getId());
return CrudUtil.updateHandle(businessTypeService.updateBusinessType(map), 1);
}
/**
* 删除业务类型数据软删除
*
* @param map 待删除数据
* @param request
* @return
*/
@PostMapping("/deleteBusinessType")
public RestResponse deleteBusinessType(@RequestBody Map<String, Object> map, HttpServletRequest request) {
String usertoken = request.getHeader("user-token");
String userkey = request.getHeader("user-key");
if (usertoken == null) {
usertoken = (String) request.getSession().getAttribute("userToken");
userkey = (String) request.getSession().getAttribute("userKey");
}
// 获取当前登录用户
UserByPort userToken = AuthenticationTokenPool.getUserToken(usertoken);
map.put("state", 3);
map.put("updateUid", userToken.getId());
if (map.containsKey("id")) {
return CrudUtil.updateHandle(businessTypeService.updateBusinessTypeStateById(map), 1);
} else if (map.containsKey("ids")) {
Integer count = ObjectFormatUtil.toInteger(map.get("count"));
return CrudUtil.updateHandle(businessTypeService.updateBusinessTypeStateByIds(map), count);
} else {
throw new MyException("所需请求参数缺失!");
}
}
/**
* 修改业务类型数据状态启用禁用
*
* @param map 待修改数据
* @param request
* @return
*/
@PostMapping("/forbiddenBusinessType")
public RestResponse forbiddenBusinessType(@RequestBody Map<String, Object> map, HttpServletRequest request) {
String usertoken = request.getHeader("user-token");
String userkey = request.getHeader("user-key");
if (usertoken == null) {
usertoken = (String) request.getSession().getAttribute("userToken");
userkey = (String) request.getSession().getAttribute("userKey");
}
// 获取当前登录用户
UserByPort userToken = AuthenticationTokenPool.getUserToken(usertoken);
if (map.containsKey("state")) {
map.put("state", 1);
} else {
map.put("state", 2);
}
map.put("updateUid", userToken.getId());
if (map.containsKey("id")) {
return CrudUtil.updateHandle(businessTypeService.updateBusinessTypeStateById(map), 1);
} else if (map.containsKey("ids")) {
Integer count = ObjectFormatUtil.toInteger(map.get("count"));
return CrudUtil.updateHandle(businessTypeService.updateBusinessTypeStateByIds(map), count);
} else {
throw new MyException("所需请求参数缺失!");
}
}
/**
* 根据条件查询业务类型数据
* @param map 带查询数据
* @param request
* @return
*/
@GetMapping("/findBusinessType")
public RestResponse findBusinessType(@RequestParam Map<String, Object> map, HttpServletRequest request) {
List<BusinessType> businessTypeByCondition = businessTypeService.findBusinessTypeByCondition(map);
Integer businessTypeCountByCondition = businessTypeService.findBusinessTypeCountByCondition(map);
return new RestResponse(businessTypeByCondition, businessTypeCountByCondition, 200);
}
}

62
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -69,6 +69,8 @@ public class PageController {
@Autowired
private ConstructionUnitService constructionUnitService;
@Autowired
private BusinessTypeService businessTypeService;
/**
* 初始化路由跳转
@ -2020,6 +2022,7 @@ public class PageController {
depositoryManagerId = manager.split(",");
}
List<UserByPort> depositoryManager = new ArrayList<>();
// 仓储中心负责人名称
StringBuilder depositoryManagerNames = new StringBuilder();
for (String s : depositoryManagerId) {
if ("".equals(s)) {
@ -2030,12 +2033,27 @@ public class PageController {
depositoryManager.add(user);
depositoryManagerNames.append(user.getName()).append(",");
}
// 平衡岗人员
String balancePoster = recordP.getBalancePoster();
StringBuilder balancePosterName = new StringBuilder();
if(balancePoster != null && !"".equals(balancePoster)){
String[] strings = balancePoster.split(",");
for (String string : strings) {
if(!"".equals(string)){
UserByPort user = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(string), userKey, token);
balancePosterName.append(user.getName()).append(",");
}
}
recordP.setBalancePosterTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getBalancePosterTime())));
}
// 获取出库的所有仓库
List<Depository> depositoryByIds = depositoryService.findDepositoryByIds(depositoryIdList);
for (Depository depository : depositoryByIds
) {
depositoryName.append(depository.getDname()).append(",");
}
// 获取出库的所有库位
List<Place> placeByIdS = placeService.findPlaceByIdS(placeIdList);
for (Place placeById : placeByIdS) {
// 获取出库库位
@ -2051,6 +2069,7 @@ public class PageController {
recordP.setApplicantTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getApplicantTime())));
recordP.setDepartmentheadTime(DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getDepartmentheadTime())));
recordP.setDepositoryManagerName(depositoryManagerNames.toString());
recordP.setBalancePosterName(balancePosterName.toString());
recordP.setApplicantName(userByPort.getMaindeparmentname() + "_" + userByPort.getName());
recordP.setDepartmentheadName(departmentHeadName.toString());
recordP.setDepositoryName(depositoryName.toString());
@ -2364,6 +2383,7 @@ public class PageController {
balancePosterName.append(userByPort.getName()).append(",");
}
}
applicationOutRecordPById.setBalancePosterTime(DateUtil.TimeStampToDateTime(Long.valueOf(applicationOutRecordPById.getBalancePosterTime())));
}else{
applicationOutRecordPById.setBalancePosterTime("");
}
@ -3559,6 +3579,46 @@ public class PageController {
return mv;
}
/**
* 添加施工单位页
*
* @return
*/
@GetMapping("/businessTypeAdd")
public String businessTypeAdd() {
return "pages/BusinessType/businesstype_add";
}
/**
* 施工单位查询
*
* @return
*/
@GetMapping("/businessTypeOut")
public String businessTypeOut() {
return "pages/BusinessType/businesstype_out";
}
/**
* 施工单位编辑
*
* @param id 施工单位id
* @return
*/
@GetMapping("/businessTypeEdit")
public ModelAndView businessTypeEdit(Integer id) {
ModelAndView mv = new ModelAndView();
mv.setViewName("pages/BusinessType/businesstype_edit");
BusinessType businessTypeById = businessTypeService.findBusinessTypeById(id);
mv.addObject("record", businessTypeById);
return mv;
}
// 用于展示库存数据
@GetMapping("/toShowInventory")
public ModelAndView toShowInventory(@RequestParam Map<String, String> param) {

50
src/main/java/com/dreamchaser/depository_manage/entity/BusinessType.java

@ -0,0 +1,50 @@
package com.dreamchaser.depository_manage.entity;
import lombok.Data;
/**
* 业务类型类
*/
@Data
public class BusinessType {
/**
* 自增id主键
*/
private Integer id;
/**
* 业务类型名称
*/
private String typeName;
/**
* 业务类型描述
*/
private String typeDescription;
/**
* 单据类型名称
*/
private String recordTypeName;
/**
* 单据类型描述
*/
private String recordTypeDescription;
/**
* 1启用2禁用3删除
*/
private Integer state;
/**
* 创建人id
*/
private Integer createUid;
/**
* 创建时间
*/
private Long createTime;
/**
* 修改人id
*/
private Integer updateUid;
/**
* 修改人时间
*/
private Long updateTime;
}

101
src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.java

@ -0,0 +1,101 @@
package com.dreamchaser.depository_manage.mapper;
import com.dreamchaser.depository_manage.entity.BusinessType;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Mapper
@Repository
public interface BusinessTypeMapper {
/**
* 插入一条业务类型数据
* @param map 待插入数据
* @return
*/
Integer addBusinessType(Map<String,Object> map);
/**
* 插入一条业务类型数据
* @param businessType 待插入数据
* @return
*/
Integer addBusinessType(BusinessType businessType);
/**
* 修改业务类型数据
* @param map 待修改数据
* @return
*/
Integer updateBusinessType(Map<String,Object> map);
/**
* 修改业务类型数据
* @param businessType 待修改数据
* @return
*/
Integer updateBusinessType(BusinessType businessType);
/**
* 修改业务类型数据状态
* @param map 待修改数据
* @return
*/
Integer updateBusinessTypeStateById(Map<String,Object> map);
/**
* 批量修改业务类型数据状态
* @param map 待修改数据
* @return
*/
Integer updateBusinessTypeStateByIds(Map<String,Object> map);
/**
* 根据id删除一条业务类型数据硬删除
* @param id 待删除id
* @return
*/
Integer deleteBusinessTypeById(Integer id);
/**
* 根据id批量删除一条业务类型数据硬删除
* @param ids 待删除id列表
* @return
*/
Integer deleteBusinessTypeByIds(List<Integer> ids);
/**
* 根据条件获取业务类型数据
* @param map 待查询数据
* @return
*/
List<BusinessType> findBusinessTypeByCondition(Map<String,Object> map);
/**
* 根据条件获取业务类型数据数量
* @param map 待查询数据
* @return
*/
Integer findBusinessTypeCountByCondition(Map<String,Object> map);
/**
* 获取所有业务类型数据
* @return
*/
List<BusinessType> findBusinessTypeAll();
/**
* 根据id获取业务类型数据
* @param id 待查询id
* @return
*/
BusinessType findBusinessTypeById(Integer id);
/**
* 根据id批量获取业务类型数据
* @param ids 待查询id列表
* @return
*/
List<BusinessType> findBusinessTypeByIds(List<Integer> ids);
}

181
src/main/java/com/dreamchaser/depository_manage/mapper/BusinessTypeMapper.xml

@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dreamchaser.depository_manage.mapper.BusinessTypeMapper">
<resultMap id="BusinessTypeMap" type="com.dreamchaser.depository_manage.entity.BusinessType">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="typeName" column="typeName" jdbcType="VARCHAR"/>
<result property="typeDescription" column="typeDescription" jdbcType="VARCHAR"/>
<result property="recordTypeName" column="recordTypeName" jdbcType="VARCHAR"/>
<result property="recordTypeDescription" column="recordTypeDescription" jdbcType="VARCHAR"/>
<result property="state" column="state" jdbcType="INTEGER"/>
<result property="createUid" column="createUid" jdbcType="INTEGER"/>
<result property="createTime" column="createTime" jdbcType="BIGINT"/>
<result property="updateUid" column="updateUid" jdbcType="INTEGER"/>
<result property="updateTime" column="updateTime" jdbcType="INTEGER"/>
</resultMap>
<sql id="allColumns">
</sql>
<insert id="addBusinessType" useGeneratedKeys="true" keyProperty="id">
insert into businesstype(id, typeName, typeDescription, recordTypeName, recordTypeDescription, state, createUid,
createTime)
values (#{id}, #{typeName}, #{typeDescription}, #{recordTypeName}, #{recordTypeDescription}, #{state},
#{createUid}, #{createTime})
</insert>
<update id="updateBusinessType">
update businesstype
<set>
<if test="typeName != null and typeName != ''">
typeName = #{typeName},
</if>
<if test="typeDescription != null and typeDescription != ''">
typeDescription = #{typeDescription},
</if>
<if test="recordTypeName != null and recordTypeName != ''">
recordTypeName = #{recordTypeName},
</if>
<if test="recordTypeDescription != null and recordTypeDescription != ''">
recordTypeDescription = #{recordTypeDescription},
</if>
<if test="state != null and state != ''">
state = #{state},
</if>
<if test="updateUid != null and updateUid != ''">
updateUid = #{updateUid},
</if>
<if test="updateTime != null and updateTime != ''">
updateTime = #{updateTime}
</if>
</set>
where id = #{id}
</update>
<update id="updateBusinessTypeStateById" parameterType="map">
update businesstype
<set>
<if test="state != null and state != ''">
state = #{state},
</if>
<if test="updateUid != null and updateUid != ''">
updateUid = #{updateUid},
</if>
<if test="updateTime != null and updateTime != ''">
updateTime = #{updateTime}
</if>
</set>
where id = #{id}
</update>
<update id="updateBusinessTypeStateByIds" parameterType="map">
update businesstype
<set>
<if test="state != null and state != ''">
state = #{state},
</if>
<if test="updateUid != null and updateUid != ''">
updateUid = #{updateUid},
</if>
<if test="updateTime != null and updateTime != ''">
updateTime = #{updateTime}
</if>
</set>
where id in
<foreach collection="ids" open="(" close=")" separator="," item="id" >
#{id}
</foreach>
</update>
<delete id="deleteBusinessTypeById" parameterType="int">
delete
from businesstype
where id = #{id}
</delete>
<delete id="deleteBusinessTypeByIds" parameterType="list">
delete
from businesstype
where id in
<foreach collection="ids" open="(" close=")" separator="," item="id" index="index">
#{id}
</foreach>
</delete>
<select id="findBusinessTypeByCondition" parameterType="map" resultMap="BusinessTypeMap">
select
<include refid="allColumns"/>
from businesstype
where 1 = 1
<if test="typeName != null and typeName != ''">
and typeName like concat('%',#{typeName},'%')
</if>
<if test="typeDescription != null and typeDescription != ''">
and typeDescription like concat('%',#{typeDescription},'%')
</if>
<if test="recordTypeName != null and recordTypeName != ''">
and recordTypeName like concat('%',#{recordTypeName},'%')
</if>
<if test="recordTypeDescription != null and recordTypeDescription != ''">
and recordTypeDescription like concat('%',#{recordTypeDescription},'%')
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
</select>
<select id="findBusinessTypeCountByCondition" parameterType="map" resultType="int">
select
COUNT(*)
from businesstype
where 1 = 1
<if test="typeName != null and typeName != ''">
and typeName like concat('%',#{typeName},'%')
</if>
<if test="typeDescription != null and typeDescription != ''">
and typeDescription like concat('%',#{typeDescription},'%')
</if>
<if test="recordTypeName != null and recordTypeName != ''">
and recordTypeName like concat('%',#{recordTypeName},'%')
</if>
<if test="recordTypeDescription != null and recordTypeDescription != ''">
and recordTypeDescription like concat('%',#{recordTypeDescription},'%')
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
</select>
<select id="findBusinessTypeAll" resultMap="BusinessTypeMap">
select
<include refid="allColumns"/>
from businesstype
where state = 1
</select>
<select id="findBusinessTypeById" parameterType="int" resultMap="BusinessTypeMap">
select
<include refid="allColumns"/>
from businesstype
where id = #{id}
</select>
<select id="findBusinessTypeByIds" parameterType="list" resultMap="BusinessTypeMap">
select
<include refid="allColumns"/>
from businesstype
where id in
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</select>
</mapper>

8
src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml

@ -323,13 +323,13 @@
FROM applicationOutRecordInfo WHERE 1=1
<if test='isDone == "0"'>
and (departmentHeadTime = 0 and FIND_IN_SET(#{userId},departmenthead) != 0 and DepartmentheadPass = 3)
or (depositoryManagerTime = 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass =
3)
or (depositoryManagerTime = 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass =3)
OR ( balancePosterTime = 0 AND FIND_IN_SET( #{userId}, balancePoster ) != 0 AND balancePosterPass = 3 )
</if>
<if test='isDone == "1"'>
and (departmentHeadTime != 0 and FIND_IN_SET(#{userId},departmenthead) != 0 and DepartmentheadPass != 3)
or (depositoryManagerTime != 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass
!= 3)
or (depositoryManagerTime != 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass != 3)
OR ( balancePosterTime != 0 AND FIND_IN_SET( #{userId}, balancePoster ) != 0 AND balancePosterPass != 3 )
</if>
group by aorid
ORDER BY applicantTime desc

2
src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java

@ -289,7 +289,7 @@ public class ApplicationOutRecordP {
this.createUid = aor.getCreateUid();
this.balancePoster = aor.getBalancePoster();
this.balancePosterName = aor.getBalancePosterName();
this.balancePosterTime = aor.getBalancePosterTime() == null ? "" : DateUtil.TimeStampToDateTime(Long.valueOf(aor.getBalancePosterTime()));
this.balancePosterTime = aor.getBalancePosterTime() == null ? "" : aor.getBalancePosterTime();
this.balancePosterPass = aor.getBalancePosterPass();
this.balancePosterMessage = aor.getBalancePosterMessage();

97
src/main/java/com/dreamchaser/depository_manage/service/BusinessTypeService.java

@ -0,0 +1,97 @@
package com.dreamchaser.depository_manage.service;
import com.dreamchaser.depository_manage.entity.BusinessType;
import java.util.List;
import java.util.Map;
public interface BusinessTypeService {
/**
* 插入一条业务类型数据
* @param map 待插入数据
* @return
*/
Integer addBusinessType(Map<String,Object> map);
/**
* 插入一条业务类型数据
* @param businessType 待插入数据
* @return
*/
Integer addBusinessType(BusinessType businessType);
/**
* 修改业务类型数据
* @param map 待修改数据
* @return
*/
Integer updateBusinessType(Map<String,Object> map);
/**
* 修改业务类型数据状态
* @param map 待修改数据
* @return
*/
Integer updateBusinessTypeStateById(Map<String,Object> map);
/**
* 批量修改业务类型数据状态
* @param map 待修改数据
* @return
*/
Integer updateBusinessTypeStateByIds(Map<String,Object> map);
/**
* 修改业务类型数据
* @param businessType 待修改数据
* @return
*/
Integer updateBusinessType(BusinessType businessType);
/**
* 根据id删除一条业务类型数据硬删除
* @param id 待删除id
* @return
*/
Integer deleteBusinessTypeById(Integer id);
/**
* 根据id批量删除一条业务类型数据硬删除
* @param ids 待删除id列表
* @return
*/
Integer deleteBusinessTypeByIds(List<Integer> ids);
/**
* 根据条件获取业务类型数据
* @param map 待查询数据
* @return
*/
List<BusinessType> findBusinessTypeByCondition(Map<String,Object> map);
/**
* 根据条件获取业务类型数据数量
* @param map 待查询数据
* @return
*/
Integer findBusinessTypeCountByCondition(Map<String,Object> map);
/**
* 获取所有业务类型数据
* @return
*/
List<BusinessType> findBusinessTypeAll();
/**
* 根据id获取业务类型数据
* @param id 待查询id
* @return
*/
BusinessType findBusinessTypeById(Integer id);
/**
* 根据id批量获取业务类型数据
* @param ids 待查询id列表
* @return
*/
List<BusinessType> findBusinessTypeByIds(List<Integer> ids);
}

155
src/main/java/com/dreamchaser/depository_manage/service/impl/BusinessTypeServiceImpl.java

@ -0,0 +1,155 @@
package com.dreamchaser.depository_manage.service.impl;
import com.dreamchaser.depository_manage.entity.BusinessType;
import com.dreamchaser.depository_manage.mapper.BusinessTypeMapper;
import com.dreamchaser.depository_manage.service.BusinessTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class BusinessTypeServiceImpl implements BusinessTypeService {
@Autowired
private BusinessTypeMapper businessTypeMapper;
/**
* 插入一条业务类型数据
* @param map 待插入数据
* @return
*/
@Override
public Integer addBusinessType(Map<String, Object> map) {
map.put("createTime",System.currentTimeMillis());
map.put("state",1);
return businessTypeMapper.addBusinessType(map);
}
/**
* 插入一条业务类型数据
* @param businessType 待插入数据
* @return
*/
@Override
public Integer addBusinessType(BusinessType businessType) {
businessType.setCreateTime(System.currentTimeMillis());
return businessTypeMapper.addBusinessType(businessType);
}
/**
* 修改业务类型数据
* @param map 待修改数据
* @return
*/
@Override
public Integer updateBusinessType(Map<String, Object> map) {
map.put("updateTime",System.currentTimeMillis());
return businessTypeMapper.updateBusinessType(map);
}
/**
* 修改业务类型数据状态
* @param map 待修改数据
* @return
*/
@Override
public Integer updateBusinessTypeStateById(Map<String,Object> map){
map.put("updateTime",System.currentTimeMillis());
return businessTypeMapper.updateBusinessTypeStateById(map);
}
/**
* 批量修改业务类型数据状态
* @param map 待修改数据
* @return
*/
@Override
public Integer updateBusinessTypeStateByIds(Map<String,Object> map){
map.put("updateTime",System.currentTimeMillis());
return businessTypeMapper.updateBusinessTypeStateByIds(map);
}
/**
* 修改业务类型数据
* @param businessType 待修改数据
* @return
*/
@Override
public Integer updateBusinessType(BusinessType businessType) {
businessType.setUpdateTime(System.currentTimeMillis());
return businessTypeMapper.updateBusinessType(businessType);
}
/**
* 根据id删除一条业务类型数据硬删除
* @param id 待删除id
* @return
*/
@Override
public Integer deleteBusinessTypeById(Integer id) {
return businessTypeMapper.deleteBusinessTypeById(id);
}
/**
* 根据id删除一条业务类型数据硬删除
* @param ids 待删除id列表
* @return
*/
@Override
public Integer deleteBusinessTypeByIds(List<Integer> ids) {
return businessTypeMapper.deleteBusinessTypeByIds(ids);
}
/**
* 根据条件获取业务类型数据
* @param map 待查询数据
* @return
*/
@Override
public List<BusinessType> findBusinessTypeByCondition(Map<String, Object> map) {
return businessTypeMapper.findBusinessTypeByCondition(map);
}
/**
* 根据条件获取业务类型数据数量
* @param map 待查询数据
* @return
*/
@Override
public Integer findBusinessTypeCountByCondition(Map<String, Object> map) {
return businessTypeMapper.findBusinessTypeCountByCondition(map);
}
/**
* 获取所有业务类型数据
* @return
*/
@Override
public List<BusinessType> findBusinessTypeAll() {
return businessTypeMapper.findBusinessTypeAll();
}
/**
* 根据id获取业务类型数据
* @param id 待查询id
* @return
*/
@Override
public BusinessType findBusinessTypeById(Integer id) {
return businessTypeMapper.findBusinessTypeById(id);
}
/**
* 根据id批量获取业务类型数据
* @param ids 待查询id列表
* @return
*/
@Override
public List<BusinessType> findBusinessTypeByIds(List<Integer> ids) {
return businessTypeMapper.findBusinessTypeByIds(ids);
}
}

218
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

@ -2532,7 +2532,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 将当前redis中存储的spno删除
redisPool.getRedisTemplateByDb(14).delete("wms_QyWxMessage_" + spNo);
}
} else {
}
else {
// 如果是前两个审批节点
//定义处理时间
@ -2630,6 +2631,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
if (recordP.getBalancePoster() == null) {
map.put("balancePoster", balancePoster.toString());
map.put("balancePosterTime", "0");
map.put("balancePosterPass", "3");
}
} else if (flagForDepository == 12) {
@ -3016,12 +3018,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
flagForHasOtherDepository = false;
} else {
if (flagForOpenDepository != 1) {
// 如果是开放仓库
flagForHasOtherDepository = false;
} else {
// 如果不是
for (ApplicationOutRecordMin min : minByParent
@ -3057,40 +3056,202 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
StringBuilder depositoryManager = new StringBuilder();
// 用于存储下节点审批人的企业微信id
StringBuilder QyWxUid = new StringBuilder();
if (flagForOpenDepository == 2) {
// 如果是开放仓库
map.put("state", "待负责人审核");
// 获取当前选中的仓库
Depository depositoryById = depositoryMapper.findDepositoryById(record.getDepositoryId());
// 获取当前仓库所属的部门
String adminorg = depositoryById.getAdminorg();
// 定义获取当前申请出库的仓库id
List<Integer> depositoryIdList = new ArrayList<>();
for (ApplicationOutRecordMin outRecordMin : minByParent) {
Integer depositoryId = outRecordMin.getDepositoryId();
if (!depositoryIdList.contains(depositoryId)) {
depositoryIdList.add(depositoryId);
}
}
// 定义是否为中心仓下的办公用品库
boolean flagForZXCWorkWarehouse = false;
List<UserByPort> departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(adminorg), null, null);
for (UserByPort departmentHead : departmentHeadByUser
) {
depositoryManager.append(departmentHead.getId()).append(",");
String workwechat = departmentHead.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = departmentHead.getWechat();
// 获取当前列表中的仓库
List<Depository> depositoryByIds = depositoryMapper.findDepositoryByIds(depositoryIdList);
// 获取所有仓库
List<Depository> depositoryAll = depositoryMapper.findDepositoryAll();
for (Depository depositoryById : depositoryByIds) {
// 获取当前仓库的顶级仓库
Depository parentDepository = findParentDepository(depositoryById, depositoryAll);
if (parentDepository.getDname().contains("办公")) {
// 设置为true
flagForZXCWorkWarehouse = true;
}
}
if (!flagForZXCWorkWarehouse) {
// 如果不是中心仓下的办公用品库
if (flagForOpenDepository == 2) {
// 如果是开放仓库
map.put("state", "待负责人审核");
// 获取当前选中的仓库
Depository depositoryById = depositoryMapper.findDepositoryById(record.getDepositoryId());
// 获取当前仓库所属的部门
String adminorg = depositoryById.getAdminorg();
List<UserByPort> departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(adminorg), null, null);
for (UserByPort departmentHead : departmentHeadByUser
) {
depositoryManager.append(departmentHead.getId()).append(",");
String workwechat = departmentHead.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = departmentHead.getWechat();
}
// QyWxUid.append(workwechat).append(",");
}
} else {
// 如果是正常仓库
// 获取仓储中心负责人
List<UserByPort> departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(361, userKey, token);
for (UserByPort userByPort : departmentHeadByUser) {
depositoryManager.append(userByPort.getId()).append(",");
String workwechat = userByPort.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = userByPort.getWechat();
}
// QyWxUid.append(workwechat).append(",");
}
QyWxUid.append(workwechat).append(",");
}
} else {
// 如果是正常仓库
// 如果是
// 定义平衡岗人员
StringBuilder balancePoster = new StringBuilder();
// 如果是第一个节点
List<String> qyWxLabelUserList = QyWxConfig.getQyWxLabelUserListForLabelName(userAgent, "平衡岗");
for (String s : qyWxLabelUserList) {
Map<String, Object> userByQyWxUserId = PublicConfig.findUserByQyWxUserId(s);
UserByPort user = (UserByPort) userByQyWxUserId.get("user");
String workwechat = user.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = user.getWechat();
}
// QyWxUid.append(workwechat).append(",");
balancePoster.append(user.getId()).append(",");
}
map.put("departmentheadPass", 1);
map.put("departmentheadTime", DateUtil.DateTimeToTimeStamp(simpleTime));
map.put("departmenthead", userToken.getId());
if (record.getBalancePoster() == null) {
map.put("balancePoster", balancePoster.toString());
map.put("balancePosterTime", "0");
map.put("balancePosterPass", "3");
}
}
// 获取仓储中心负责人
List<UserByPort> departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(361, userKey, token);
for (UserByPort userByPort : departmentHeadByUser) {
depositoryManager.append(userByPort.getId()).append(",");
String workwechat = userByPort.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = userByPort.getWechat();
QyWxUid.append("PangFuZhen,");
if (record.getDepositoryManager() == null) {
map.put("depositoryManager", depositoryManager.toString());
} else {
String[] depositoryManagerS = record.getDepositoryManager().split(",");
for (String depositorymanager : depositoryManagerS
) {
if ("".equals(depositorymanager)) {
continue;
}
UserByPort depositoryManage = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(depositorymanager), userKey, token);
String departmentHeadWorkwechat = depositoryManage.getWorkwechat();
if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) {
departmentHeadWorkwechat = depositoryManage.getWechat();
}
QyWxUid.append(departmentHeadWorkwechat).append(",");
}
}
// 向仓储中心负责人发送新的消息
SendQyWxMessageThreadPool.execute(() -> {
JSONObject jsonObject = qyWxOperationService.sendQyWxToApplicationOutMessage(QyWxUid.toString(), ObjectFormatUtil.toInteger(id), false, userAgent, userKey, token);
// 将当前返回结果保存到redis中
Map<String, Object> QyWxMessageMap = new HashMap<>();
QyWxMessageMap.put("MsgId", jsonObject.getString("msgid"));
QyWxMessageMap.put("responseCode", jsonObject.getString("response_code"));
// key user:300450:QyWxOut:1
// 部门负责人number
redisPool.getRedisTemplateByDb(15).opsForHash().putAll("user:" + userToken.getNumber() + ":QyWxOutId:" + id, QyWxMessageMap);
// 设置过期时间为三天
redisPool.getRedisTemplateByDb(15).expire("user:" + userToken.getNumber() + ":QyWxOutId:" + id, 72, TimeUnit.HOURS);
});
} else {
// 如果没有通过
updateInventoryForOutRefused(record);
result = "驳回";
map.put("pass", 2);
map.put("state", userToken.getName() + "审核未通过");
}
// 开启线程更改其他用户卡片模板样式
String finalResult = result;
SendQyWxMessageThreadPool.execute(() -> {
// 获取responseCode(key为申请人number)
//获取申请人信息
String key = "user:" + applicantUser.getNumber() + ":QyWxOutId:" + id;
String responseCode = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get(key, "responseCode");
qyWxOperationService.updateButtonTemplateCardToUnEnable(responseCode, userToken.getName(), finalResult, userAgent);
redisPool.getRedisTemplateByDb(15).delete(key);
});
// 开启流程通知其他人忽略审批流程
SendQyWxMessageThreadPool.execute(() -> {
String departmenthead = record.getDepartmenthead();
String[] split = departmenthead.split(",");
StringBuilder QyWxUid = new StringBuilder();
for (String s : split) {
if ("".equals(s)) {
continue;
}
UserByPort userByPort = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(s), userKey, token);
String workwechat = userByPort.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = userByPort.getWechat();
}
// QyWxUid.append(workwechat).append(",");
}
String s = QyWxUid.toString();
s = "PangFuZhen,";
qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1, userKey, token);
});
}
else if (map.containsKey("balancePosterPass") && !flagForHasOtherDepository) {
// 如果是平衡岗人员审批且进入该流程
String result = "";
String simpleTime = DateUtil.getSimpleTime(new Date());
map.put("balancePosterTime", DateUtil.DateTimeToTimeStamp(simpleTime));
map.put("balancePoster", userid);
Integer balancePosterPass = (Integer) map.get("balancePosterPass");
if (balancePosterPass == 1) {
result = "通过";
map.put("state", "待负责人审核");
// 用于存储下节点审批人id
StringBuilder depositoryManager = new StringBuilder();
// 用于存储下节点审批人的企业微信id
StringBuilder QyWxUid = new StringBuilder();
// 获取综合办负责人
List<UserByPort> departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(268, userKey, token);
for (UserByPort userByPort : departmentHeadByUser) {
depositoryManager.append(userByPort.getId()).append(",");
String workwechat = userByPort.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = userByPort.getWechat();
}
// QyWxUid.append(workwechat).append(",");
}
QyWxUid.append("PangFuZhen,");
@ -3168,7 +3329,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
s = "PangFuZhen,";
qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1, userKey, token);
});
} else {
}
else {
String result = "";
// 开启线程更改其他用户卡片模板样式
String simpleTime = DateUtil.getSimpleTime(new Date());

126
src/main/resources/templates/pages/BusinessType/businesstype_add.html

@ -0,0 +1,126 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>出库业务类型创建</legend>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;">
<div>
<form class="layui-form layui-form-pane"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px"
lay-filter="form1">
<div class="layui-form-item">
<label class="layui-form-label" style="width: 130px">业务类型名称:</label>
<div class="layui-input-block" style="margin-left: 130px;">
<input type="text" placeholder="请填写业务类型名称" class="layui-input"
name="typeName" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 130px">业务类型描述:</label>
<div class="layui-input-block" style="margin-left: 130px;">
<input type="text" placeholder="业务类型描述" class="layui-input"
name="typeDescription"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 130px">单据类型名称:</label>
<div class="layui-input-block" style="margin-left: 130px;">
<input name="recordTypeName" placeholder="单据类型名称..."
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 130px">单据类型描述:</label>
<div class="layui-input-block" style="margin-left: 130px;">
<input name="recordTypeDescription" placeholder="单据类型描述..."
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep">
&emsp;创建&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
<hr>
</div>
</div>
</fieldset>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
var data;
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'layer'], function () {
var $ = layui.jquery,
form = layui.form,
layer = layui.layer;
form.on('submit(formStep)', function (data) {
if (!flagForForm) {
flagForForm = true;
$.ajax({
url: "/businessType/addBusinessType",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data.field),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("添加成功!", {
icon: 6,//成功的表情
time: 1000 //1秒关闭(如果不配置,默认是3秒)
}, function () {
window.location = "/businessTypeAdd"
});
}
},
complete: function () {
form.val("form1", {
"typeName": "",// "name": "value"
"typeDescription": "",
"recordTypeName": "",
"recordTypeDescription": ""
})
}
});
}
return false;
});
});
</script>
</body>
</html>

125
src/main/resources/templates/pages/BusinessType/businesstype_edit.html

@ -0,0 +1,125 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>业务类型编辑</legend>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body" style="padding-top: 40px;">
<div>
<form class="layui-form layui-form-pane"
style="margin: 0 auto;max-width: 700px;padding-top: 100px; padding-bottom: 200px"
lay-filter="form1">
<input th:value="${record.getId()}" name="id" id="id" style="display:none;"/>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 130px">业务类型名称:</label>
<div class="layui-input-block" style="margin-left: 130px;">
<input type="text" placeholder="请填写业务类型名称" class="layui-input"
th:value="${record.getTypeName()}"
name="typeName" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 130px">业务类型描述:</label>
<div class="layui-input-block" style="margin-left: 130px;">
<input type="text" placeholder="业务类型描述" class="layui-input" th:value="${record.getTypeDescription()}"
name="typeDescription"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 130px">单据类型名称:</label>
<div class="layui-input-block" style="margin-left: 130px;">
<input name="recordTypeName" placeholder="单据类型名称..." th:value="${record.getRecordTypeName()}"
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 130px">单据类型描述:</label>
<div class="layui-input-block" style="margin-left: 130px;">
<input name="recordTypeDescription" placeholder="单据类型描述..." th:value="${record.getRecordTypeDescription()}"
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep">
&emsp;修改&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
<hr>
</div>
</div>
</fieldset>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
var data;
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'layer'], function () {
var $ = layui.jquery,
form = layui.form,
layer = layui.layer;
form.on('submit(formStep)', function (data) {
if(!flagForForm){
flagForForm = true;
$.ajax({
url: "/businessType/updateBusinessType",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data.field),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("修改成功!", {
icon: 6,//成功的表情
time: 1000 //1秒关闭(如果不配置,默认是3秒)
}, function () {
window.location = "/businessTypeEdit?id="+$("#id").val();
});
}
}
});
}
return false;
});
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
});
</script>
</body>
</html>

354
src/main/resources/templates/pages/BusinessType/businesstype_out.html

@ -0,0 +1,354 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">业务类型名称</label>
<div class="layui-input-block">
<input type="text" placeholder="业务类型名称" class="layui-input"
name="typeName" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-block">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
</button>
</div>
</div>
</form>
</div>
</fieldset>
<!-- 状态展示-->
<script type="text/html" id="switchTpl">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用"
lay-filter="changeState" {{ d.state== 1 ? 'checked' : '' }} >
</script>
<script id="CNName" type="text/html">
<a id="{{d.id}}" onclick="showDetail(this)">{{d.typeName}}</a>
</script>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加
</button>
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除
</button>
</div>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
<a class="layui-btn layui-btn-xs data-count-edit" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
</script>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
function showDetail() {
}
layui.use(['form', 'table', 'upload'], function () {
var $ = layui.jquery,
form = layui.form,
upload = layui.upload,
table = layui.table;
table.render({
elem: "#currentTableId",
url: '/businessType/findBusinessType',
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
height: 'full-255',//固定高度-即固定表头固定第一行首行
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print'],
cols: [
[
{type: "checkbox", width: 50},
{title: '业务类型名称', width: 120, templet: '#CNName', align: "center"},
{field: 'typeDescription', width: 200, title: '业务类型描述'},
{field: 'recordTypeName', width: 200, title: '单据类型名称'},
{field: 'recordTypeDescription', width: 200, title: '单据类型描述'},
{title: '状态', width: 100, templet: '#switchTpl', align: "center"},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}
]
],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line'
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var req = {};
data = data.field;
if (data.typeName !== '') {
req.typeName = data.typeName;
}
if (data.state !== '') {
req.state = data.state;
}
//执行搜索重载
table.reload('currentTableId', {
url: '/businessType/findBusinessType',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: '创建业务类型',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/businessTypeAdd',
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.ids = [];
for (i = 0, len = data.length; i < len; i++) {
req.ids[i] = data[i].id;
}
if (req.ids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/businessType/deleteBusinessType',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/businessType/findBusinessType',
page: {
curr: 1
}
}, 'data');
return false;
}
}
})
})
} else {
layer.msg("未选中记录,请确认!");
return false;
}
}
});
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
if (obj.event === 'detail') {
let req = {};
var index = layer.open({
title: '业务类型详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/businessTypeEdit?id=' + data.id,
end: function () {
//执行搜索重载
table.reload('currentTableId', {
url: '/businessType/findBusinessType',
page: {
curr: 1
},
where: req
}, 'data');
}
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
else if (obj.event === 'delete') {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: '/businessType/deleteBusinessType',
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
obj.del();
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
}
}
})
});
}
});
// 用于查看详情
showDetail = function (obj) {
let req = {};
layer.open({
title: '业务类型详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/businessTypeEdit?id=' + obj.id,
end: function () {
//执行搜索重载
table.reload('currentTableId', {
url: '/businessType/findBusinessType',
page: {
curr: 1
},
where: req
}, 'data');
}
});
};
//监听状态操作
form.on('switch(changeState)', function (obj) {
var req = new Map;
if (obj.elem.checked) {
req["state"] = 1;
}
req["id"] = this.value;
// 如果启用
$.ajax({
url: "/businessType/forbiddenBusinessType",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("修改成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
// 执行表格重加载
table.reload('currentTableId', {
url: '/businessType/findBusinessType',
page: {
curr: 1
},
});
})
}
}
})
});
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
});
</script>
</body>
</html>

141
src/main/resources/templates/pages/application/application-review.html

@ -38,8 +38,9 @@
<tr>
<td>物料名称</td>
<td>
<button th:each="recordMin,iterStar: ${recordMinList}" th:text="${recordMin.getMname()}" th:value="${recordMin.getId()}"
style="margin: 1px;" onclick="selectThisMinRecord(this)"></button>
<button th:each="recordMin,iterStar: ${recordMinList}"
th:text="${recordMin.getMname()}" th:value="${recordMin.getId()}"
style="margin: 1px;" onclick="selectThisMinRecord(this)"></button>
</td>
</tr>
<tr>
@ -58,7 +59,7 @@
<td>计量单位</td>
<td id="unit" th:text="${record.getUnit()}">单位</td>
</tr>
<tr th:style="'display:'+${display}">
<tr th:style="'display:'+${display}">
<td>金额</td>
<td id="price" th:text="${record.getPrice()}">金额</td>
</tr>
@ -98,6 +99,25 @@
1970-01-01 08:00:00
</td>
</tr>
<tr id="balancePosterNameT" style="display: none">
<td>负责人</td>
<td id="balancePosterName" th:text="${record.getBalancePosterName()}">部门负责人</td>
</tr>
<tr id="balancePosterMessageT" style="display: none">
<td>审核意见</td>
<td id="balancePosterMessage" th:text="${record.getBalancePosterMessage()}">审核意见
</td>
</tr>
<tr id="balancePosterTimeT" style="display: none">
<td>审核时间</td>
<td id="balancePosterTime"
th:text="${record.getBalancePosterTime().equals('1970-01-01 08:00:00')?'':record.getBalancePosterTime()}">
1970-01-01 08:00:00
</td>
</tr>
<tr id="depositoryManagerNameT" style="display: none">
<td th:text="${depositoryManagerText}"></td>
<td id="depositoryManagerName" th:text="${record.getDepositoryManagerName()}">
@ -137,6 +157,34 @@
</div>
</div>
</div>
<div id="reviewForBalance" style="display: none">
<div class="layui-form" style="margin: 0 auto;max-width: 900px;padding-top: 40px;">
<div class="layui-form-item">
<label class="layui-form-label">审核备注:</label>
<div class="layui-input-block">
<input id="balancePosterMessageF" name="balancePosterMessage"
placeholder="请填写相关原因及申请原因" value="" class="layui-input"/>
</div>
</div>
<div class="layui-row layui-col-space15">
<div class="layui-input-block">
<div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px">
<button type="button" class="layui-btn" onclick="reviewForBalance(1)">
&emsp;同意&emsp;
</button>
</div>
<div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px">
<button type="button" class="layui-btn layui-btn-danger"
onclick="reviewForBalance(2)">
&emsp;驳回&emsp;
</button>
</div>
</div>
</div>
</div>
</div>
<div id="check" style="display: none">
<div class="layui-form" style="margin: 0 auto;max-width: 900px;padding-top: 40px;">
@ -184,9 +232,13 @@
function review() {
}
function selectThisMinRecord(obj){
function reviewForBalance() {
}
function selectThisMinRecord(obj) {
}
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'step'], function () {
@ -194,31 +246,6 @@
form = layui.form,
step = layui.step;
/* var state=$("#state").text();
var pass = $("#pass").text();
//当前处于的状态
var position=0,states={},number = 1;
if (state === "待部门负责人审核" || state === "部门负责人审核未通过") {
// , {title: "未入库"}
states = [ {title: state}];
number = 2;
} else {
if(state === "待仓储中心负责人审核"|| state === "仓储中心负责人审核未通过"){
states = [ {title: state}];
number = 3;
}else{
if(pass === 1 || pass === "1"){
number = 4;
states = [{title:"已出库"}]
}else if(pass === 3 || pass === "3"){
number = 4;
states = [{title:"出库中"}]
}else if(pass === 2 || pass === "2"){
number = 4;
states = [{title:"未出库"}]
}
}
}*/
step.render({
elem: '#stepForm',
filter: 'stepForm',
@ -231,15 +258,49 @@
});
let departmentheadTime = $("#departmentheadTime").text();
if (departmentheadTime != null && departmentheadTime !== "") {
let balancePosterTime = $("#balancePosterTime").text();
if (departmentheadTime != null && departmentheadTime !== "" && departmentheadTime !== "0") {
$("#departmentheadTimeT").show();
$("#departmentheadMessageT").show();
$("#depositoryManagerNameT").show();
$("#review").hide();
$("#check").show();
if (balancePosterTime !== null && balancePosterTime === "0") {
// 如果不是空且为0
$("#balancePosterNameT").show();
$("#reviewForBalance").show();
} else if(balancePosterTime !== null && balancePosterTime !== "0"){
$("#depositoryManagerNameT").show();
$("#balancePosterNameT").show();
$("#balancePosterMessageT").show();
$("#balancePosterTimeT").show();
$("#check").show();
}else{
$("#depositoryManagerNameT").show();
$("#check").show();
}
}
reviewForBalance = function (pass) {
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
if (pass === 1) {
data.balancePosterPass = 1;
} else {
data.balancePosterPass = 2;
}
data.balancePosterMessage = $("#balancePosterMessageF").val();
send(data);
}
};
review = function (pass) {
if(!flagForForm){
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
@ -252,8 +313,10 @@
send(data);
}
};
check = function (pass) {
if(!flagForForm) {
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
@ -313,16 +376,12 @@
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
move : '.layui-layer-title',
fixed:false,
content: '/form_step_lookByminRecordOut?id='+minId,
move: '.layui-layer-title',
fixed: false,
content: '/form_step_lookByminRecordOut?id=' + minId,
});
};
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
})
</script>
</body>

50
src/main/resources/templates/pages/application/my-task.html

@ -30,10 +30,10 @@
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-tab">
<ul class="layui-tab-title">
<li class="layui-this">未完成任务</li>
<li>已完成任务</li>
<li >已完成任务</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
@ -56,20 +56,17 @@
<div class="layui-tab layui-tab-card">
<ul class="layui-tab-title">
<li class="layui-this">审核任务</li>
<li>出库任务</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<ul id="LAY_floor2" class="flow-default" style="width: 100%"></ul>
</div>
<div class="layui-tab-item">
<ul id="LAY_floor4" class="flow-default" style="width: 100%"></ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
@ -127,6 +124,7 @@
//每页的数量
var size = 8;
let pre1 = 0, pre2 = 0, pre3 = 0, pre4 = 0, pre5 = 0, pre6 = 0;
// 未完成任务-审核任务
flow.load({
elem: '#LAY_floor1' //流加载容器
, scrollElem: '#LAY_floor1' //滚动条所在元素,一般不用填,此处只是演示需要。
@ -202,6 +200,7 @@
}
});
// 已完成任务-审核任务
flow.load({
elem: '#LAY_floor2' //流加载容器
, scrollElem: '#LAY_floor2' //滚动条所在元素,一般不用填,此处只是演示需要。
@ -276,6 +275,7 @@
});
}
});
// 未完成任务-出库任务
flow.load({
elem: '#LAY_floor3' //流加载容器
, scrollElem: '#LAY_floor3' //滚动条所在元素,一般不用填,此处只是演示需要。
@ -314,44 +314,6 @@
});
}
});
flow.load({
elem: '#LAY_floor4' //流加载容器
, scrollElem: '#LAY_floor4' //滚动条所在元素,一般不用填,此处只是演示需要。
, isAuto: false
, done: function (page, next) { //执行下一页的回调
let lis = [];
let result;
$.get('/depositoryRecord/myTashForScanQrCode?page=' + page + '&size=' + size + '&isDone=1', function (res) {
var Width = "25%";
result = res.data;
const keys = Object.keys(result); // 获取map中所有的键
var redirectByIsMobile = "";
lis.push("<div class='clearfix'>");
for (let i = 0; i < keys.length; i++) {
if (isMobile()) {
// 如果是移动端
Width = "50%";
redirectByIsMobile = "openDetail4_mobile(";
} else {
redirectByIsMobile = "openDetail4(";
}
lis.push('<li style="width:' + Width + ';float:left;">' +
'<div class="layui-card my-shadow my-card flow1"' + "onclick=" + redirectByIsMobile + result[keys[i]][0].depositoryId + ")" + '>' +
'<div class="layui-card-header"><h2>'
+ result[keys[i]][0].depositoryName + '</h2></div>')
lis.push('<div class="layui-col-md4 my-time" style="margin-left: 15px; color: #999;font-size: 12px;">'
+ result[keys[i]][0].applicantTime + '</div></div></li>');
}
lis.push("</div>")
pre2 += result.length;
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), pre2 < res.count);
});
}
});
// 用于跳转到出库审核页面

2
src/main/resources/templates/pages/stockTaking/stockTaking.html

@ -55,7 +55,7 @@
<div class="layui-tab">
<ul class="layui-tab-title" style="text-align: center">
<li class="layui-this">物料盘点</li>
<li class="layui-this">位置盘点</li>
<li >位置盘点</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">

12
src/test/java/com/dreamchaser/depository_manage/SomeTest.java

@ -243,7 +243,7 @@ public class SomeTest {
ApprovalInfo approvalInfo = new ApprovalInfo();
approvalInfo.setTemplateId("3WKiKVCzyLv3Y1LaHZxp4DimQEpCdvYP52HsAUtF");
approvalInfo.setSpNo("202306080008");
approvalInfo.setSpNo("202306090017");
// 模拟第一个节点(部门负责人)
@ -253,7 +253,7 @@ public class SomeTest {
List<ApprovalInfo_Details> approvalInfo_Details1 = new ArrayList<>();
ApprovalInfo_Details ad1 = new ApprovalInfo_Details();
ad1.setSpStatus("2");
ad1.setSpTime("1686186956000");
ad1.setSpTime("1686285527000");
ApprovalInfo_Details_Approver approver1 = new ApprovalInfo_Details_Approver();
approver1.setUserId("PangFuZhen");
ad1.setApprover(approver1);
@ -273,15 +273,15 @@ public class SomeTest {
approvalInfo_Details2.add(ad2);
asr2.setDetails(approvalInfo_Details2);
// 模拟第三个节点(综合办负责人)
// 模拟第三个节点(综合办负责人)(仓储负责人)
ApprovalInfo_SpRecord asr3 = new ApprovalInfo_SpRecord();
asr3.setSpStatus("2");
List<ApprovalInfo_Details> approvalInfo_Details3 = new ArrayList<>();
ApprovalInfo_Details ad3 = new ApprovalInfo_Details();
ad3.setSpStatus("2");
ad3.setSpTime("1686186967000");
ad3.setSpTime("1686285537000");
ApprovalInfo_Details_Approver approver3 = new ApprovalInfo_Details_Approver();
approver3.setUserId("SiKai");
approver3.setUserId("XinPing");
ad3.setApprover(approver3);
approvalInfo_Details3.add(ad3);
asr3.setDetails(approvalInfo_Details3);
@ -302,7 +302,7 @@ public class SomeTest {
spRecord_list.add(asr1);
// spRecord_list.add(asr2);
// spRecord_list.add(asr3);
spRecord_list.add(asr3);
spRecord_list.add(asr4);
approvalInfo.setSpRecord(spRecord_list);

8
target/classes/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml

@ -323,13 +323,13 @@
FROM applicationOutRecordInfo WHERE 1=1
<if test='isDone == "0"'>
and (departmentHeadTime = 0 and FIND_IN_SET(#{userId},departmenthead) != 0 and DepartmentheadPass = 3)
or (depositoryManagerTime = 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass =
3)
or (depositoryManagerTime = 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass =3)
OR ( balancePosterTime = 0 AND FIND_IN_SET( #{userId}, balancePoster ) != 0 AND balancePosterPass = 3 )
</if>
<if test='isDone == "1"'>
and (departmentHeadTime != 0 and FIND_IN_SET(#{userId},departmenthead) != 0 and DepartmentheadPass != 3)
or (depositoryManagerTime != 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass
!= 3)
or (depositoryManagerTime != 0 and FIND_IN_SET(#{userId},depositoryManager) != 0 and depositoryManagerPass != 3)
OR ( balancePosterTime != 0 AND FIND_IN_SET( #{userId}, balancePoster ) != 0 AND balancePosterPass != 3 )
</if>
group by aorid
ORDER BY applicantTime desc

141
target/classes/templates/pages/application/application-review.html

@ -38,8 +38,9 @@
<tr>
<td>物料名称</td>
<td>
<button th:each="recordMin,iterStar: ${recordMinList}" th:text="${recordMin.getMname()}" th:value="${recordMin.getId()}"
style="margin: 1px;" onclick="selectThisMinRecord(this)"></button>
<button th:each="recordMin,iterStar: ${recordMinList}"
th:text="${recordMin.getMname()}" th:value="${recordMin.getId()}"
style="margin: 1px;" onclick="selectThisMinRecord(this)"></button>
</td>
</tr>
<tr>
@ -58,7 +59,7 @@
<td>计量单位</td>
<td id="unit" th:text="${record.getUnit()}">单位</td>
</tr>
<tr th:style="'display:'+${display}">
<tr th:style="'display:'+${display}">
<td>金额</td>
<td id="price" th:text="${record.getPrice()}">金额</td>
</tr>
@ -98,6 +99,25 @@
1970-01-01 08:00:00
</td>
</tr>
<tr id="balancePosterNameT" style="display: none">
<td>负责人</td>
<td id="balancePosterName" th:text="${record.getBalancePosterName()}">部门负责人</td>
</tr>
<tr id="balancePosterMessageT" style="display: none">
<td>审核意见</td>
<td id="balancePosterMessage" th:text="${record.getBalancePosterMessage()}">审核意见
</td>
</tr>
<tr id="balancePosterTimeT" style="display: none">
<td>审核时间</td>
<td id="balancePosterTime"
th:text="${record.getBalancePosterTime().equals('1970-01-01 08:00:00')?'':record.getBalancePosterTime()}">
1970-01-01 08:00:00
</td>
</tr>
<tr id="depositoryManagerNameT" style="display: none">
<td th:text="${depositoryManagerText}"></td>
<td id="depositoryManagerName" th:text="${record.getDepositoryManagerName()}">
@ -137,6 +157,34 @@
</div>
</div>
</div>
<div id="reviewForBalance" style="display: none">
<div class="layui-form" style="margin: 0 auto;max-width: 900px;padding-top: 40px;">
<div class="layui-form-item">
<label class="layui-form-label">审核备注:</label>
<div class="layui-input-block">
<input id="balancePosterMessageF" name="balancePosterMessage"
placeholder="请填写相关原因及申请原因" value="" class="layui-input"/>
</div>
</div>
<div class="layui-row layui-col-space15">
<div class="layui-input-block">
<div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px">
<button type="button" class="layui-btn" onclick="reviewForBalance(1)">
&emsp;同意&emsp;
</button>
</div>
<div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px">
<button type="button" class="layui-btn layui-btn-danger"
onclick="reviewForBalance(2)">
&emsp;驳回&emsp;
</button>
</div>
</div>
</div>
</div>
</div>
<div id="check" style="display: none">
<div class="layui-form" style="margin: 0 auto;max-width: 900px;padding-top: 40px;">
@ -184,9 +232,13 @@
function review() {
}
function selectThisMinRecord(obj){
function reviewForBalance() {
}
function selectThisMinRecord(obj) {
}
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'step'], function () {
@ -194,31 +246,6 @@
form = layui.form,
step = layui.step;
/* var state=$("#state").text();
var pass = $("#pass").text();
//当前处于的状态
var position=0,states={},number = 1;
if (state === "待部门负责人审核" || state === "部门负责人审核未通过") {
// , {title: "未入库"}
states = [ {title: state}];
number = 2;
} else {
if(state === "待仓储中心负责人审核"|| state === "仓储中心负责人审核未通过"){
states = [ {title: state}];
number = 3;
}else{
if(pass === 1 || pass === "1"){
number = 4;
states = [{title:"已出库"}]
}else if(pass === 3 || pass === "3"){
number = 4;
states = [{title:"出库中"}]
}else if(pass === 2 || pass === "2"){
number = 4;
states = [{title:"未出库"}]
}
}
}*/
step.render({
elem: '#stepForm',
filter: 'stepForm',
@ -231,15 +258,49 @@
});
let departmentheadTime = $("#departmentheadTime").text();
if (departmentheadTime != null && departmentheadTime !== "") {
let balancePosterTime = $("#balancePosterTime").text();
if (departmentheadTime != null && departmentheadTime !== "" && departmentheadTime !== "0") {
$("#departmentheadTimeT").show();
$("#departmentheadMessageT").show();
$("#depositoryManagerNameT").show();
$("#review").hide();
$("#check").show();
if (balancePosterTime !== null && balancePosterTime === "0") {
// 如果不是空且为0
$("#balancePosterNameT").show();
$("#reviewForBalance").show();
} else if(balancePosterTime !== null && balancePosterTime !== "0"){
$("#depositoryManagerNameT").show();
$("#balancePosterNameT").show();
$("#balancePosterMessageT").show();
$("#balancePosterTimeT").show();
$("#check").show();
}else{
$("#depositoryManagerNameT").show();
$("#check").show();
}
}
reviewForBalance = function (pass) {
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
if (pass === 1) {
data.balancePosterPass = 1;
} else {
data.balancePosterPass = 2;
}
data.balancePosterMessage = $("#balancePosterMessageF").val();
send(data);
}
};
review = function (pass) {
if(!flagForForm){
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
@ -252,8 +313,10 @@
send(data);
}
};
check = function (pass) {
if(!flagForForm) {
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
@ -313,16 +376,12 @@
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
move : '.layui-layer-title',
fixed:false,
content: '/form_step_lookByminRecordOut?id='+minId,
move: '.layui-layer-title',
fixed: false,
content: '/form_step_lookByminRecordOut?id=' + minId,
});
};
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
})
</script>
</body>

50
target/classes/templates/pages/application/my-task.html

@ -30,10 +30,10 @@
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-tab">
<ul class="layui-tab-title">
<li class="layui-this">未完成任务</li>
<li>已完成任务</li>
<li >已完成任务</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
@ -56,20 +56,17 @@
<div class="layui-tab layui-tab-card">
<ul class="layui-tab-title">
<li class="layui-this">审核任务</li>
<li>出库任务</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<ul id="LAY_floor2" class="flow-default" style="width: 100%"></ul>
</div>
<div class="layui-tab-item">
<ul id="LAY_floor4" class="flow-default" style="width: 100%"></ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
@ -127,6 +124,7 @@
//每页的数量
var size = 8;
let pre1 = 0, pre2 = 0, pre3 = 0, pre4 = 0, pre5 = 0, pre6 = 0;
// 未完成任务-审核任务
flow.load({
elem: '#LAY_floor1' //流加载容器
, scrollElem: '#LAY_floor1' //滚动条所在元素,一般不用填,此处只是演示需要。
@ -202,6 +200,7 @@
}
});
// 已完成任务-审核任务
flow.load({
elem: '#LAY_floor2' //流加载容器
, scrollElem: '#LAY_floor2' //滚动条所在元素,一般不用填,此处只是演示需要。
@ -276,6 +275,7 @@
});
}
});
// 未完成任务-出库任务
flow.load({
elem: '#LAY_floor3' //流加载容器
, scrollElem: '#LAY_floor3' //滚动条所在元素,一般不用填,此处只是演示需要。
@ -314,44 +314,6 @@
});
}
});
flow.load({
elem: '#LAY_floor4' //流加载容器
, scrollElem: '#LAY_floor4' //滚动条所在元素,一般不用填,此处只是演示需要。
, isAuto: false
, done: function (page, next) { //执行下一页的回调
let lis = [];
let result;
$.get('/depositoryRecord/myTashForScanQrCode?page=' + page + '&size=' + size + '&isDone=1', function (res) {
var Width = "25%";
result = res.data;
const keys = Object.keys(result); // 获取map中所有的键
var redirectByIsMobile = "";
lis.push("<div class='clearfix'>");
for (let i = 0; i < keys.length; i++) {
if (isMobile()) {
// 如果是移动端
Width = "50%";
redirectByIsMobile = "openDetail4_mobile(";
} else {
redirectByIsMobile = "openDetail4(";
}
lis.push('<li style="width:' + Width + ';float:left;">' +
'<div class="layui-card my-shadow my-card flow1"' + "onclick=" + redirectByIsMobile + result[keys[i]][0].depositoryId + ")" + '>' +
'<div class="layui-card-header"><h2>'
+ result[keys[i]][0].depositoryName + '</h2></div>')
lis.push('<div class="layui-col-md4 my-time" style="margin-left: 15px; color: #999;font-size: 12px;">'
+ result[keys[i]][0].applicantTime + '</div></div></li>');
}
lis.push("</div>")
pre2 += result.length;
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), pre2 < res.count);
});
}
});
// 用于跳转到出库审核页面

2
target/classes/templates/pages/stockTaking/stockTaking.html

@ -55,7 +55,7 @@
<div class="layui-tab">
<ul class="layui-tab-title" style="text-align: center">
<li class="layui-this">物料盘点</li>
<li class="layui-this">位置盘点</li>
<li >位置盘点</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">

Loading…
Cancel
Save