Commit 248a626d by 赵剑炜

Merge branch 'develop' of http://gitlab.sothing.top/843502640/jyzb_platformV2 into develop-zhaojw

parents 094b8d60 53ff41bf
package com.junmp.jyzb.api.bean.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
......@@ -28,4 +29,9 @@ public class WarehouseDto implements Serializable {
private Integer inSum;
private String state;
private String orgName;
//湿度
private Double humidity;
//温度
private Double temperature;
}
......@@ -15,6 +15,7 @@ public class SummaryLogReq {
private Long orgId;
//组织机构名称
private String orgName;
//操作人
private String userName;
private Date useTime;
private String picture;
......
......@@ -6,6 +6,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
......@@ -16,6 +18,7 @@ public class InventorySumReq extends BaseRequest {
/**
* 组织机构
*/
@NotNull(message = "组织机构id不能为空",groups = {page.class})
private String orgId;
/**
......@@ -34,6 +37,7 @@ public class InventorySumReq extends BaseRequest {
/**
* 位置类型(0仓库,1单警柜)
*/
@NotBlank(message = "位置信息不能为空",groups = {page.class})
private String locationType;
/**
* 类型ID
......
......@@ -68,5 +68,7 @@ public class PolicemanReq extends BaseRequest {
private String order;
private String column;
private List<String> roleList;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -11,7 +11,7 @@ import java.util.List;
import java.util.Set;
//@Component
@Component
public class TemperatureRedisCache extends AbstractRedisCache<Object> {
public TemperatureRedisCache(RedisTemplate<String, Object> redisTemplate) {
super(redisTemplate);
......@@ -36,8 +36,9 @@ public class TemperatureRedisCache extends AbstractRedisCache<Object> {
}
public List<Object> getDataByTimestampRange(String warehouseId, long startTimestamp, long endTimestamp) {
String key = warehouseId;
Set<Object> dataInRange = getRedisTemplate().opsForZSet().rangeByScore(key, startTimestamp, endTimestamp);
//根据
// Set<Object> dataInRange = getRedisTemplate().opsForZSet().rangeByScore(key, startTimestamp, endTimestamp);
Set<Object> dataInRange= getRedisTemplate().opsForZSet ().reverseRange(key, startTimestamp, endTimestamp);
return new ArrayList<>(dataInRange);
}
}
......@@ -100,7 +100,7 @@ public class InventoryController {
@PostMapping("/GetEquipmentSummary")
@ApiOperation("根据条件查询库存汇总信息(仅类型)")
public ApiRes<PageResult<InventorySummary>> GetEquipmentSummary(@RequestBody InventorySumReq req) {
public ApiRes<PageResult<InventorySummary>> GetEquipmentSummary(@RequestBody @Validated(ValidationApi.page.class) InventorySumReq req) {
return ApiRes.success(inventorySummaryService.GetEquipmentSummary(req));
}
@PostMapping("/GetEquipmentSummaryDetail")
......
......@@ -10,7 +10,9 @@ import com.junmp.jyzb.api.bean.query.WarehouseReq;
import com.junmp.jyzb.api.bean.req.UpdateShelfReq;
import com.junmp.jyzb.api.bean.req.UpdateWarehouseAreaReq;
import com.junmp.jyzb.api.bean.req.UpdateWarehouseReq;
import com.junmp.jyzb.cache.TemperatureRedisCache;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.entity.Temp.HumidityAndtemperature;
import com.junmp.jyzb.service.*;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
......@@ -139,4 +141,16 @@ public class WarehouseController {
return ApiRes.success(warehouseService.alignWarehouseInfo(req));
}
@PostMapping("/updateHumidityAndtemperature")
@ApiOperation("更新温湿度")
public ApiRes<Boolean> updateHumidityAndtemperature(@RequestBody HumidityAndtemperature req){
return ApiRes.success(warehouseService.updateHumidityAndtemperature(req));
}
@PostMapping("showHumidityAndtemperature")
@ApiOperation("展示温湿度记录")
public ApiRes<List<HumidityAndtemperature>> showHumidityAndtemperature(@RequestBody WarehouseReq req){
return ApiRes.success(warehouseService.showHumidityAndtemperature(req));
}
}
......@@ -144,6 +144,8 @@ public class LogDetail implements Serializable {
@TableField(exist = false)
private String locationName;
@TableField(exist = false)
private String userName;
private static final long serialVersionUID = 1L;
......
......@@ -21,8 +21,8 @@ public class HumidityAndtemperature implements Serializable {
private String warehouseId;
//仓库ID
private String warehouseName;
//设备类型
private String device;
//设备
private String deviceName;
//上报时间
private Long createTime;
}
......@@ -64,6 +64,13 @@ public class Warehouse implements Serializable {
@TableField("order_id")
private Long orderId;
//湿度
@TableField("humidity")
private Double humidity;
//温度
@TableField("temperature")
private Double temperature;
private static final long serialVersionUID = 1L;
......
......@@ -52,12 +52,14 @@ public interface PolicemanMapper extends BaseMapper<Policeman> {
@Param("state")Integer state,
@Param("phone")String phone,@Param("flag") String flag,
@Param("pageNo")Long pageNo, @Param("pageSize") Long pageSize,
@Param("column") String column,@Param("order") String order);
@Param("column") String column,@Param("order") String order,
@Param("roleList") List<String> roleList);
long count(@Param("orgId") Long orgId, @Param("account")String account,
@Param("name") String name, @Param("policeCode")String policeCode,
@Param("state")Integer state,
@Param("phone")String phone,@Param("flag") String flag);
@Param("phone")String phone,@Param("flag") String flag,
@Param("roleList") List<String> roleList);
List<UserDto> alignUserInfo(@Param("orgId") Long orgId, @Param("date")String date);
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import com.junmp.jyzb.api.bean.dto.WarehouseDto;
import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.api.bean.query.WarehouseReq;
import com.junmp.jyzb.api.bean.req.UpdateWarehouseReq;
import com.junmp.jyzb.entity.Temp.HumidityAndtemperature;
import com.junmp.jyzb.entity.Warehouse;
import com.junmp.jyzb.utils.ResponseResult;
......@@ -51,4 +52,8 @@ public interface WarehouseService extends IService<Warehouse> {
boolean SetInventoryInfo(String id);
List<WarehouseInfoDto> alignWarehouseInfo(UpdateWarehouseReq req);
boolean updateHumidityAndtemperature(HumidityAndtemperature req);
List<HumidityAndtemperature> showHumidityAndtemperature(WarehouseReq req);
}
......@@ -149,48 +149,10 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
busForm.setCreateTime(DateTimeUtil.getCurrentDateTime());
}
String processInstanceId=null;
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
//执行工作流
if (req.getExamineState().equals("working"))
{
startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(busForm.getId());
startProcessInstanceDTO.setOrderType("bussinessOrder");
startProcessInstanceDTO.setUserId(req.getApplyUserId());
//发物单位和收物单位
switch (req.getBussinessType()){
case "use":
startProcessInstanceDTO.setStartOrgName(req.getOrgName());
break;
case "purchase":
startProcessInstanceDTO.setStartOrgName(req.getSupplierName());
startProcessInstanceDTO.setEndOrgName(req.getOrgName());
break;
case "allocate":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "repair":
case "destruction":
startProcessInstanceDTO.setStartOrgName(req.getOrgName());
startProcessInstanceDTO.setEndOrgName(req.getSupplierName());
break;
case "remove":
startProcessInstanceDTO.setStartOrgName(req.getOrgName());
startProcessInstanceDTO.setEndOrgName(req.getOrgName());
break;
}
//装备列表
startProcessInstanceDTO.setInvList(req.getInvList());
//业务类型
startProcessInstanceDTO.setType("busFormDto");
// Object A= JSON.toJSONString(req);
Object A= JSON.toJSONString(req, SerializerFeature.WriteDateUseDateFormat);
JSONObject jsonObject = JSON.parseObject(A.toString());
startProcessInstanceDTO.setFormData(jsonObject);
StartProcessInstanceDTO startProcessInstanceDTO = setParams(req,busForm);
processInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
}
......@@ -241,6 +203,49 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
return busForm.getId();
}
private StartProcessInstanceDTO setParams(UpdateBusFormReq req,BusForm busForm){
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(busForm.getId());
startProcessInstanceDTO.setOrderType("bussinessOrder");
startProcessInstanceDTO.setUserId(req.getApplyUserId());
startProcessInstanceDTO.setBussinessType(req.getBussinessType());
//发物单位和收物单位
switch (req.getBussinessType()){
case "use":
startProcessInstanceDTO.setStartOrgName(req.getOrgName());
break;
case "purchase":
startProcessInstanceDTO.setStartOrgName(req.getSupplierName());
startProcessInstanceDTO.setEndOrgName(req.getOrgName());
break;
case "allocate":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "repair":
case "destruction":
startProcessInstanceDTO.setStartOrgName(req.getOrgName());
startProcessInstanceDTO.setEndOrgName(req.getSupplierName());
break;
case "remove":
startProcessInstanceDTO.setStartOrgName(req.getOrgName());
startProcessInstanceDTO.setEndOrgName(req.getOrgName());
break;
}
//装备列表
startProcessInstanceDTO.setInvList(req.getInvList());
//业务类型
startProcessInstanceDTO.setType("busFormDto");
// Object A= JSON.toJSONString(req);
Object A= JSON.toJSONString(req, SerializerFeature.WriteDateUseDateFormat);
JSONObject jsonObject = JSON.parseObject(A.toString());
startProcessInstanceDTO.setFormData(jsonObject);
return startProcessInstanceDTO;
}
//在提交审核或者保存草稿的时候判断申请报废数+审核中数量+报废区数量是否等于在库数,如果大于则报错
//flag表示一个标识,如果是提交业务单那么flag=true,如果是审核拒绝,那么flag就为false
public boolean addOrRevokeAgentBrokenNum(UpdateBusFormReq req,boolean flag){
......
......@@ -268,7 +268,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
//根据条件查询仓库/单警柜下的所有装备信息
public PageResult<InventoryDto> GetDetailByTerms(InventoryReq req) {
public PageResult<InventoryDto> GetDetailByTerms1(InventoryReq req) {
//判断组织机构是否存在
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
//根据条件查询仓库下的所有装备
......@@ -318,7 +318,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
}
public PageResult<InventoryDto> GetDetailByTerms1(InventoryReq req) {
public PageResult<InventoryDto> GetDetailByTerms(InventoryReq req) {
// //根据条件查询仓库下的所有装备
// LambdaQueryWrapper<Inventory> eq = new LambdaQueryWrapper<Inventory>()
// .eq(Inventory::getOrgId, req.getOrgId())
......
......@@ -456,41 +456,62 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
* @param
*/
@Override
// public List<PolicemanDto> GetAllPolicemanList(PolicemanReq req) {
// //查询传入的组织机构id是否存在
// PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
// //查询出组织机构下的所有警员信息(如果是查看启用的那么state为1)
// List<Policeman> list = list(new LambdaQueryWrapper<Policeman>()
// .eq(ObjectUtil.isNotEmpty(req.getOrgId()), Policeman::getOrgId, req.getOrgId())
// .like(ObjectUtil.isNotEmpty(req.getName()),Policeman::getName,req.getName())
// .like(ObjectUtil.isNotEmpty(req.getPoliceCode()),Policeman::getPoliceCode,req.getPoliceCode())
// .eq(ObjectUtil.isNotEmpty( req.getState()),Policeman::getState, req.getState()));
// List<PolicemanDto> policeList = new ArrayList<>();
// //查询出警员信息下的指纹列表信息
// for (Policeman p : list) {
// PolicemanDto policemanDto = new PolicemanDto();
// BeanPlusUtil.copyProperties(p, policemanDto);
// List<PoliceFinger> list1 = policeFingerService.list(new LambdaQueryWrapper<PoliceFinger>()
// .eq(ObjectUtil.isNotNull(p.getId()), PoliceFinger::getPoliceId, p.getId()));
// List<PoliceFingerDto> policeFingerDtoList = new ArrayList<>();
// for (PoliceFinger policeFinger : list1) {
// PoliceFingerDto policeFingerDto = new PoliceFingerDto();
// BeanPlusUtil.copyProperties(policeFinger, policeFingerDto);
// policeFingerDtoList.add(policeFingerDto);
// }
// policemanDto.setFingersList(policeFingerDtoList);
// policemanDto.setOrgName(pubOrg.getOrgName());
// policeList.add(policemanDto);
//
// }
// return policeList;
// }
public List<PolicemanDto> GetAllPolicemanList(PolicemanReq req) {
//查询传入的组织机构id是否存在
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
//查询出组织机构下的所有警员信息(如果是查看启用的那么state为1)
List<Policeman> list = list(new LambdaQueryWrapper<Policeman>()
.eq(ObjectUtil.isNotEmpty(req.getOrgId()), Policeman::getOrgId, req.getOrgId())
.like(ObjectUtil.isNotEmpty(req.getName()),Policeman::getName,req.getName())
.like(ObjectUtil.isNotEmpty(req.getPoliceCode()),Policeman::getPoliceCode,req.getPoliceCode())
.eq(ObjectUtil.isNotEmpty( req.getState()),Policeman::getState, req.getState()));
List<PolicemanDto> policeList = new ArrayList<>();
//查询出警员信息下的指纹列表信息
for (Policeman p : list) {
PolicemanDto policemanDto = new PolicemanDto();
BeanPlusUtil.copyProperties(p, policemanDto);
List<PoliceFinger> list1 = policeFingerService.list(new LambdaQueryWrapper<PoliceFinger>()
.eq(ObjectUtil.isNotNull(p.getId()), PoliceFinger::getPoliceId, p.getId()));
List<PoliceFingerDto> policeFingerDtoList = new ArrayList<>();
for (PoliceFinger policeFinger : list1) {
PoliceFingerDto policeFingerDto = new PoliceFingerDto();
BeanPlusUtil.copyProperties(policeFinger, policeFingerDto);
policeFingerDtoList.add(policeFingerDto);
}
policemanDto.setFingersList(policeFingerDtoList);
policemanDto.setOrgName(pubOrg.getOrgName());
policeList.add(policemanDto);
if (ObjectUtil.isNotNull(req.getColumn()) && !req.getColumn().trim().isEmpty() &&
(req.getOrder().equalsIgnoreCase("asc")|| req.getOrder().equalsIgnoreCase("desc")) &&
ObjectUtil.isNotNull(req.getOrder()) && !req.getOrder().trim().isEmpty()) {
//修改字段,和数据库字段进行统一
req.setColumn(req.getColumn().replaceAll("[A-Z]", "_$0").toLowerCase());
req.setOrder(req.getOrder().toLowerCase());
}else {
req.setOrder("desc");
req.setColumn("create_time");
}
return policeList;
if (ObjectUtil.isNull(req.getPageNo()) && ObjectUtil.isNull(req.getPageSize())) {
req.setPageNo(1L);
req.setPageSize(10L);
}
List<PolicemanDto> policemanDtos = policemanMapper.selectUserBypoliceIds
(req.getOrgId(),req.getAccount(),req.getName(),req.getPoliceCode(),
req.getState(),req.getPhone(),req.getFlag(),(req.getPageNo()-1)*req.getPageSize()
,req.getPageSize(),req.getColumn(),req.getOrder(),req.getRoleList());
return policemanDtos;
}
//通过组织机构id查询警员列表(page)
@Override
public PageResult<PolicemanDto> GetAllPolicemanPage(PolicemanReq req) {
//查询传入的组织机构id是否存在
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
// PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
//查询出组织机构下的所有警员信息
//排序字段(默认以用户状态进行排序)
//(如果传其他不是数据库字段参数或者排序规则不是deac或者asc可能会出现错误)
......@@ -508,10 +529,11 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
req.setPageNo(1L);
req.setPageSize(10L);
}
long size=policemanMapper.count(req.getOrgId(),req.getAccount(),req.getName(),req.getPoliceCode(),req.getState(),req.getPhone(),req.getFlag());
long size=policemanMapper.count(req.getOrgId(),req.getAccount(),req.getName(),req.getPoliceCode(),req.getState(),req.getPhone(),req.getFlag(),req.getRoleList());
List<PolicemanDto> policemanDtos = policemanMapper.selectUserBypoliceIds
(req.getOrgId(),req.getAccount(),req.getName(),req.getPoliceCode(),
req.getState(),req.getPhone(),req.getFlag(),(req.getPageNo()-1)*req.getPageSize(),req.getPageSize(),req.getColumn(),req.getOrder());
req.getState(),req.getPhone(),req.getFlag(),(req.getPageNo()-1)*req.getPageSize()
,req.getPageSize(),req.getColumn(),req.getOrder(),req.getRoleList());
//判断是否需要添加空数据
if(req.getIsCreateNullDate()==null || req.getIsCreateNullDate()){
Class<PolicemanDto> policemanDto = PolicemanDto.class;
......
......@@ -9,8 +9,10 @@ import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.api.bean.query.WarehouseReq;
import com.junmp.jyzb.api.bean.req.UpdateWarehouseReq;
import com.junmp.jyzb.api.exception.enums.WarehouseExceptionEnum;
import com.junmp.jyzb.cache.TemperatureRedisCache;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.api.exception.enums.CabinetExceptionEnum;
import com.junmp.jyzb.entity.Temp.HumidityAndtemperature;
import com.junmp.jyzb.mapper.*;
import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.service.WarehouseService;
......@@ -23,8 +25,10 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Slf4j
......@@ -37,6 +41,9 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
@Resource
private PubOrgService pubOrgService;
@Resource
private TemperatureRedisCache temperatureRedisCache;
@Override
......@@ -164,6 +171,33 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
return warehouseMapper.alignWarehouseInfo(orgId,date);
}
//除湿机上传温湿度
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateHumidityAndtemperature(HumidityAndtemperature req) {
//查询数据库仓库id取到仓库名称
Warehouse warehouse = getById(req.getWarehouseId());
//将数据放入redis
temperatureRedisCache.addTemperatureHumidity(req.getWarehouseId(),warehouse.getName(),
req.getCreateTime(),req.getHumidity(),req.getTemperature());
//更新仓库的温度和湿度
warehouse.setHumidity(req.getHumidity());
warehouse.setTemperature(req.getTemperature());
return updateById(warehouse);
}
//获取redis中的温湿度记录
@Override
public List<HumidityAndtemperature> showHumidityAndtemperature(WarehouseReq req) {
String date="2023-12-01 00:00:00";
Long startTimeStamp = DateTimeUtil.TimeStringToLong(date);
long endTimeStamp = DateTimeUtil.getCurrentDateTime().getTime();
List<Object> dataByTimestampRange = temperatureRedisCache.getDataByTimestampRange(req.getId(), startTimeStamp, endTimeStamp);
List<HumidityAndtemperature> collect = dataByTimestampRange.stream()
.map(obj -> (HumidityAndtemperature) obj) // 将 YourObjectClass 替换为实际的对象类型
.collect(Collectors.toList());
return collect;
}
}
......@@ -33,7 +33,7 @@ public class DateTimeUtil {
return allPoliceman;
}
//时间戳转时间(String类型)
//时间戳转时间(Long->String)
public static String TimeLongToString(Long time){
//时间戳转时间Date
if (ObjectUtil.isNotNull(time)){
......@@ -46,4 +46,30 @@ public class DateTimeUtil {
}
}
//String->Long(将string类型的时间转成时间戳)
public static Long TimeStringToLong(String time){
if (ObjectUtil.isNotNull(time) && !time.trim().isEmpty()){
Date date = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = sdf.parse(time);
} catch (ParseException e) {
throw new RuntimeException(e);
}
long timestamp = date.getTime();
return timestamp;
}else {
return null;
}
}
//Date->Long (将date类型转为Long)
public static Long TimeDateToLong(Date time){
if (ObjectUtil.isNotNull(time)){
long time1 = time.getTime();
return time1;
}else {
return null;
}
}
}
\ No newline at end of file
......@@ -620,16 +620,8 @@
sum( is.broken_number * is.unit_price ) AS broken_number_price
FROM
base_inventory_summary `is`
join base_equipment_type et on is.type_id=et.id
WHERE
is.org_id_int = #{req.orgId}
<if test="req.typeIds !=null and req.typeIds.size()>0">
and (
<foreach collection="req.typeIds" item="item" open="(" separator="or" close=")">
et.id=#{item} or et.parent_ids like CONCAT('%', #{item}, '%')
</foreach>
)
</if>
is.org_id_int = #{req.orgId} and is.type_id=#{req.typeId}
<if test="req.locationType !='all' and req.locationType != null">
and is.location_type=#{req.locationType}
</if>
......@@ -646,8 +638,28 @@
<select id="selectSumByItemsCount" resultType="java.lang.Integer"
parameterType="com.junmp.jyzb.api.bean.query.InventoryReq">
select count(*) from (
) as a
select i.*,et.name as type_name,es.name as size_name,po.org_name as org_name,
bs.name as supplier_name,COALESCE(bc.name, bw.name) as location_name,
es.photo as photo,es.instructions as instructions
FROM base_inventory i
JOIN base_equipment_type et on et.id=i.type_id
join base_equipment_size es on es.id=i.size_id
join pub_org po on i.org_id_int=po.org_id
left join base_supplier bs on bs.id=i.supplier_id
LEFT JOIN base_cabinet_box bcb ON i.location_id = bcb.id and i.location_type=1
LEFT JOIN base_cabinet bc ON bcb.cabinet_id = bc.id
LEFT JOIN base_warehouse bw ON i.location_id = bw.id AND i.location_type = 0
WHERE i.org_id_int=#{req.orgId} and i.type_id=#{req.typeId}
<if test="req.locationType !='all' and req.locationType != null">
and i.location_type=#{req.locationType}
</if>
<if test="req.sizeId !=null and req.sizeId != ''">
and i.size_id=#{req.sizeId}
</if>
<if test="req.price !=null and req.price != ''">
and i.price=#{req.price}
</if>
) as a
</select>
<select id="GetDetailByTerms" resultType="com.junmp.jyzb.api.bean.dto.InventoryDto">
select i.*,et.name as type_name,es.name as size_name,po.org_name as org_name,
......@@ -661,7 +673,19 @@
LEFT JOIN base_cabinet_box bcb ON i.location_id = bcb.id and i.location_type=1
LEFT JOIN base_cabinet bc ON bcb.cabinet_id = bc.id
LEFT JOIN base_warehouse bw ON i.location_id = bw.id AND i.location_type = 0
WHERE i.org_id_int=#{req.orgId} and i.type_id=#{req.typeId} and i.size_id=#{req.sizeId} and i.price=#{req.price}
WHERE i.org_id_int=#{req.orgId} and i.type_id=#{req.typeId}
<if test="req.locationType !='all' and req.locationType != null">
and i.location_type=#{req.locationType}
</if>
<if test="req.sizeId !=null and req.sizeId != ''">
and i.size_id=#{req.sizeId}
</if>
<if test="req.price !=null and req.price != ''">
and i.price=#{req.price}
</if>
<if test="pageNo != null and pageNo != '' and pageSize != null and pageSize != '' ">
limit #{pageNo},#{pageSize}
</if>
</select>
......
......@@ -50,7 +50,7 @@
) as a
</select>
<select id="getInOutRecords" resultType="com.junmp.jyzb.entity.LogDetail">
select ld.*,ls.location_name FROM base_log_detail ld
select ld.*,ls.location_name,ls.user_name FROM base_log_detail ld
join base_log_summary ls on ls.id=ld.summary_id
where epc=#{epc}
<if test="pageNo != null and pageNo != '' and pageSize != null and pageSize != '' ">
......
......@@ -250,29 +250,42 @@ WHERE o.org_id IN
</select>
<select id="selectUserBypoliceIds" resultType="com.junmp.jyzb.api.bean.dto.PolicemanDto">
select b.* FROM(
select
su.user_id,su.account,su.status_flag as state,suo.org_id,p.id,p.name,p.police_code,
p.face_info,p.password,p.photo,p.phone,p.id_card,p.identity,su.create_time,p.hk_face_device
FROM sys_user su
join sys_user_org suo on su.user_id=suo.user_id and suo.org_id=#{orgId}
left join base_policeman p on p.user_id=su.user_id
and p.org_id_int=#{orgId}
where 1=1
<if test="account!=null and account!=''">
and su.account like CONCAT('%', #{account}, '%')
</if>
<if test="policeCode!=null and policeCode!=''">
and p.police_code like CONCAT('%', #{policeCode}, '%')
</if>
<if test="name!=null and name!=''">
and p.name like CONCAT('%', #{name}, '%')
</if>
<if test="phone!=null and phone!=''">
and p.phone like CONCAT('%', #{phone}, '%')
</if>
<if test="state!=null and state!=''">
and su.status_flag=#{state}
</if>
select a.*, GROUP_CONCAT(sr.role_name SEPARATOR ',') AS role_name FROM (
select
su.user_id,su.account,su.status_flag as state,suo.org_id,max(p.id) as id,max(p.name) as name,
max(p.police_code) as police_code,max(p.face_info) as face_info,max(p.password) as password,
max(p.photo) as photo,max(p.phone) as phone,max(p.id_card) as id_card,max(p.identity) as identity,
max(p.hk_face_device) as hk_face_device,max(su.create_time) as create_time,su.nick_name
FROM sys_user su
join sys_user_org suo on su.user_id=suo.user_id and suo.org_id=#{orgId}
left join base_policeman p on p.user_id=su.user_id and p.org_id_int=#{orgId}
GROUP BY su.user_id
) as a
JOIN sys_user_role sur on a.user_id=sur.user_id
join sys_role sr on sr.role_id=sur.role_id
<if test="roleList != null and roleList.size()>0">
and
<foreach collection="roleList" item="item" open="(" separator="or" close=")">
sr.role_id=#{item}
</foreach>
</if>
where 1=1
<if test="account!=null and account!=''">
and su.account like CONCAT('%', #{account}, '%')
</if>
<if test="policeCode!=null and policeCode!=''">
and p.police_code like CONCAT('%', #{policeCode}, '%')
</if>
<if test="name!=null and name!=''">
and p.name like CONCAT('%', #{name}, '%')
</if>
<if test="phone!=null and phone!=''">
and p.phone like CONCAT('%', #{phone}, '%')
</if>
<if test="state!=null and state!=''">
and su.status_flag=#{state}
</if>
GROUP BY a.user_id, a.account, a.org_id, a.nick_name
) as b
<if test="flag == 'true'">
where b.id is not null
......@@ -286,35 +299,48 @@ WHERE o.org_id IN
</select>
<select id="count" resultType="java.lang.Long">
select count(*) from(
select b.* FROM
(select
su.user_id,su.account,su.status_flag as state,suo.org_id,p.id,p.name,p.police_code,p.face_info,p.password,p.photo,p.phone,p.id_card,p.identity,p.hk_face_device
FROM sys_user su
join sys_user_org suo on su.user_id=suo.user_id and suo.org_id=#{orgId}
left join base_policeman p on p.user_id=su.user_id
and p.org_id_int=#{orgId}
where 1=1
<if test="account!=null and account!=''">
and su.account like CONCAT('%', #{account}, '%')
</if>
<if test="policeCode!=null and policeCode!=''">
and p.police_code like CONCAT('%', #{policeCode}, '%')
</if>
<if test="name!=null and name!=''">
and p.name like CONCAT('%', #{name}, '%')
</if>
<if test="phone!=null and phone!=''">
and p.phone like CONCAT('%', #{phone}, '%')
</if>
<if test="state!=null and state!=''">
and su.status_flag=#{state}
</if>
) as b
<if test="flag == 'true'">
where b.id is not null
</if>
)
as f
select b.* FROM(
select a.*, GROUP_CONCAT(sr.role_name SEPARATOR ',') AS role_name FROM (
select
su.user_id,su.account,su.status_flag as state,suo.org_id,max(p.id) as id,max(p.name) as name,
max(p.police_code) as police_code,max(p.face_info) as face_info,max(p.password) as password,
max(p.photo) as photo,max(p.phone) as phone,max(p.id_card) as id_card,max(p.identity) as identity,
max(p.hk_face_device) as hk_face_device,max(su.create_time) as create_time,su.nick_name
FROM sys_user su
join sys_user_org suo on su.user_id=suo.user_id and suo.org_id=#{orgId}
left join base_policeman p on p.user_id=su.user_id and p.org_id_int=#{orgId}
GROUP BY su.user_id
) as a
JOIN sys_user_role sur on a.user_id=sur.user_id
join sys_role sr on sr.role_id=sur.role_id
<if test="roleList != null and roleList.size()>0">
and
<foreach collection="roleList" item="item" open="(" separator="or" close=")">
sr.role_id=#{item}
</foreach>
</if>
where 1=1
<if test="account!=null and account!=''">
and su.account like CONCAT('%', #{account}, '%')
</if>
<if test="policeCode!=null and policeCode!=''">
and p.police_code like CONCAT('%', #{policeCode}, '%')
</if>
<if test="name!=null and name!=''">
and p.name like CONCAT('%', #{name}, '%')
</if>
<if test="phone!=null and phone!=''">
and p.phone like CONCAT('%', #{phone}, '%')
</if>
<if test="state!=null and state!=''">
and su.status_flag=#{state}
</if>
GROUP BY a.user_id, a.account, a.org_id, a.nick_name
) as b
<if test="flag == 'true'">
where b.id is not null
</if>
)as f
</select>
<select id="alignUserInfo" resultType="com.junmp.jyzb.api.bean.dto.FetchingDataDto.UserDto"
parameterType="com.junmp.jyzb.api.bean.query.PolicemanReq">
......
......@@ -37,4 +37,6 @@ public class StartProcessInstanceDTO {
//调岗类型,调入还是调出
private String reassignmentType;
private String bussinessType;
}
......@@ -140,6 +140,9 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
processVariables.put(FORM_Trigger,processInstanceDto.getTriggerId());//获取触发器信息
processVariables.put(ORDER_ID,processInstanceDto.getOrderId());
processVariables.put(ORDER_TYPE,processInstanceDto.getOrderType());
processVariables.put(BUSSINESS_TYPE,processInstanceDto.getBussinessType());
//单据类型
processVariables.put(TYPE,processInstanceDto.getType());
//发物单位
if (ObjectUtil.isNotNull(processInstanceDto.getStartOrgName())){
processVariables.put(START_ORG_NAME,processInstanceDto.getStartOrgName());
......@@ -152,8 +155,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
if (ObjectUtil.isNotNull(processInstanceDto.getInvList())){
processVariables.put(INVLIST,processInstanceDto.getInvList());
}
//单据类型
processVariables.put(TYPE,processInstanceDto.getType());
//出入库状态
if (ObjectUtil.isNotNull(processInstanceDto.getOutInState())){
processVariables.put(OUT_IN_STATE,processInstanceDto.getOutInState());
......
......@@ -297,20 +297,22 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
sendReq.setSendTime(DateTime.now());
messageApi.sendMessage(sendReq);
messageApi.queryCount(new MessageReq());
/*推送发送未读数量*/
MessageReq req1 = new MessageReq();
req1.setReadFlag(0);
req1.setReceiveUserId(user.getUserId());
Integer count1 = messageApi.queryCount(req1);
messageApi.pushMsgToUser(startUser,count1);
// /*推送发送未读数量*/
// MessageReq req1 = new MessageReq();
// req1.setReadFlag(0);
// req1.setReceiveUserId(user.getUserId());
// Integer count1 = messageApi.queryCount(req1);
// messageApi.pushMsgToUser(startUser,count1);
runtimeService.deleteProcessInstance(task.getProcessInstanceId(), "拒绝");
switch (Types){
case "workOrder":
case "quickOrder":
//更新出入库单
quickSuggestionsMapper.updateOrderMain(task.getProcessInstanceId());
break;
case "bussinessOrder":
if (bussinessType.equals("remove")){
//更新业务单
UpdateBusFormReq req=quickSuggestionsMapper.getBusForm(task.getProcessInstanceId());
List<BussinessOrderDetialReq> list = JSON.parseArray(req.getDetailList(), BussinessOrderDetialReq.class);
List<Object[]> searchItem=new ArrayList<>();
......@@ -319,6 +321,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
Object[] item=new Object[]{req.getOrgId(),detialReq.getLocationId(),detialReq.getTypeId(),detialReq.getSizeId(),detialReq.getPrice()};
searchItem.add(item);
}
//查询库存
List<InventorySummaryReq> inventorySummaryList=quickSuggestionsMapper.selectSumByItems(searchItem);
for (BussinessOrderDetialReq detialReq:list) {
for (InventorySummaryReq is:inventorySummaryList) {
......@@ -336,6 +339,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
}
//更新库存汇总信息
quickSuggestionsMapper.updateInventorySum(inventorySummaryList);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论