功能修改

master
sunjianxi 1 year ago
parent b5589499fb
commit 9e221628c5
  1. 20
      src/main/java/org/springblade/common/utils/LogUtil.java
  2. 13
      src/main/java/org/springblade/modules/business/config/ScheduledService.java
  3. 42
      src/main/java/org/springblade/modules/business/contraller/ApplyLogController.java
  4. 10
      src/main/java/org/springblade/modules/business/contraller/DeviceController.java
  5. 13
      src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java
  6. 22
      src/main/java/org/springblade/modules/business/contraller/WorkOrderController.java
  7. 97
      src/main/java/org/springblade/modules/business/contraller/supplies/ApplyController.java
  8. 3
      src/main/java/org/springblade/modules/business/contraller/supplies/GoodsController.java
  9. 17
      src/main/java/org/springblade/modules/business/mapper/ApplyLogMapper.java
  10. 9
      src/main/java/org/springblade/modules/business/mapper/ApplyLogMapper.xml
  11. 31
      src/main/java/org/springblade/modules/business/pojo/entity/supplies/ApplyLog.java
  12. 10
      src/main/java/org/springblade/modules/business/pojo/entity/workorder/WorkOrder.java
  13. 16
      src/main/java/org/springblade/modules/business/service/IApplyLogService.java
  14. 3
      src/main/java/org/springblade/modules/business/service/IMessageService.java
  15. 23
      src/main/java/org/springblade/modules/business/service/impl/ApplyLogServiceImpl.java
  16. 12
      src/main/java/org/springblade/modules/business/service/impl/MaintenancePlanServiceImpl.java
  17. 16
      src/main/java/org/springblade/modules/business/service/impl/MessageServiceImpl.java
  18. 15
      src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java
  19. 30
      src/main/java/org/springblade/modules/business/service/impl/supplies/ApplyDetailServiceImpl.java
  20. 3
      src/main/java/org/springblade/modules/business/service/impl/supplies/GoodsServiceImpl.java
  21. 2
      src/main/java/org/springblade/modules/business/service/supplies/IApplyDetailService.java
  22. 6
      src/main/java/org/springblade/modules/business/sms/SmsService.java
  23. BIN
      src/main/resources/excel/WorkOrderServiceSheet.xlsx

@ -33,7 +33,9 @@ import com.google.zxing.qrcode.QRCodeWriter;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.modules.business.pojo.entity.supplies.ApplyLog;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderLog;
import org.springblade.modules.business.service.IApplyLogService;
import org.springblade.modules.business.service.IWorkOrderLogService;
import org.springblade.modules.business.service.IWorkOrderService;
@ -50,13 +52,6 @@ import java.util.Base64;
public class LogUtil {
/**
* 二维码生成转base64
* @param content
* @return
* @throws WriterException
* @throws IOException
*/
public static void saveLog(String code,String content){
IWorkOrderLogService workOrderLogService = ApplicationContextUtil.getBean(IWorkOrderLogService.class);
WorkOrderLog log = new WorkOrderLog();
@ -67,4 +62,15 @@ public class LogUtil {
log.setIsDeleted(0);
workOrderLogService.save(log);
}
public static void saveApplyLog(String code,String content){
IApplyLogService applyLogService = ApplicationContextUtil.getBean(IApplyLogService.class);
ApplyLog log = new ApplyLog();
log.setCode(code);
log.setContent(content);
log.setCreateTime(DateUtil.now());
log.setStatus(0);
log.setIsDeleted(0);
applyLogService.save(log);
}
}

@ -2,6 +2,8 @@ package org.springblade.modules.business.config;
import lombok.extern.slf4j.Slf4j;
import org.springblade.modules.business.service.IMaintenancePlanService;
import org.springblade.modules.business.service.supplies.IApplyDetailService;
import org.springblade.modules.business.service.supplies.IApplyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@ -14,6 +16,8 @@ public class ScheduledService {
@Autowired
private IMaintenancePlanService maintenancePlanService;
@Autowired
private IApplyDetailService applyDetailService;
/**
* 每天零点生成新的巡查任务
@ -23,4 +27,13 @@ public class ScheduledService {
LocalDate now = LocalDate.now().minusDays(-5);
maintenancePlanService.createTask(now);
}
/**
* 每天1点查询待归还的申领记录发送消息提醒
*/
@Scheduled(cron = "0 0 1 * * ?")
// @Scheduled(cron = "0 0/1 * * * ? ")
private void sendApplyReturnMessage() {
applyDetailService.sendApplyReturnMessage();
}
}

@ -0,0 +1,42 @@
package org.springblade.modules.business.contraller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.tool.api.R;
import org.springblade.modules.business.pojo.entity.supplies.ApplyLog;
import org.springblade.modules.business.service.IApplyLogService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 工单表 控制器
*
* @author BladeX
* @since 2024-10-14
*/
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping(CommonConstant.APPLICATION_PROJECT + "/apply-log")
public class ApplyLogController extends BladeController {
private final IApplyLogService applyLogService;
/**
* 工单列表
*/
@GetMapping("/find-list-by-code")
public R<List<ApplyLog>> findListByCode(String code) {
List<ApplyLog> list = applyLogService.list(Wrappers.lambdaQuery(ApplyLog.class).eq(ApplyLog::getCode,code).eq(BaseEntity::getIsDeleted,0));
return R.data(list);
}
}

@ -80,6 +80,16 @@ public class DeviceController extends BladeController {
return R.data(deviceVO);
}
/**
* 根据查询条件查询列表
*/
@GetMapping("/findList")
@ApiOperationSupport(order = 1)
public R<List<Device>> findList(Device device) {
List<Device> list = deviceService.list(Condition.getQueryWrapper(device));
return R.data(list);
}
/**
* 设备表 分页
*/

@ -9,6 +9,9 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springblade.common.cache.SysCache;
import org.springblade.common.cache.UserCache;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.base.BaseEntity;
@ -32,6 +35,7 @@ import org.springblade.modules.system.pojo.entity.Dept;
import org.springblade.modules.system.pojo.entity.User;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.service.IUserService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@ -49,7 +53,7 @@ import java.util.stream.Collectors;
* @author liuqingkun
*/
@RestController
@AllArgsConstructor
@RequiredArgsConstructor
@RequestMapping(CommonConstant.APPLICATION_PROJECT + "/maintenance")
@Tag(name = "维保控制器", description = "维控制器")
public class MaintenanceController extends BladeController {
@ -64,6 +68,8 @@ public class MaintenanceController extends BladeController {
private final IMessageService messageService;
private final IUserService userService;
private final IDeptService deptService;
@Value("${sms.template-id2}")
private String templateCode;
/*---------- 维修计划开始 ----------*/
@ -173,7 +179,10 @@ public class MaintenanceController extends BladeController {
taskOld.setServicemanName(task.getServicemanName());
taskOld.setTaskStatus(MaintenanceStatusEnum.TASK_SUPERVISOR_CONFIRM.getValue());
taskService.updateById(taskOld);
smsService.sendSms("15053473693", "张迪");
User user = UserCache.getUser(task.getServicemanId());
if(StringUtils.isNotEmpty(user.getPhone())){
smsService.sendSms(user.getPhone(), user.getRealName(),templateCode);
}
return R.success();
}

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.mysql.cj.log.Log;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
@ -285,7 +286,7 @@ public class WorkOrderController extends BladeController {
WorkOrder workOrderOld = workOrderService.getById(workOrder.getId());
workOrderOld.setRepairPerson(workOrder.getRepairPerson());
workOrderOld.setDispatchTime(DateUtil.now());
workOrderOld.setPlanCompleteTime(workOrder.getPlanCompleteTime());
workOrderOld.setExpectCompleteTime(workOrder.getExpectCompleteTime());
workOrderOld.setRemark(workOrder.getRemark());
workOrderOld.setCustomerOpinion(workOrder.getCustomerOpinion());
workOrderOld.setStatus(WorkOrderStatusEnum.KF_ORDER_ALLOT.getValue());
@ -697,4 +698,23 @@ public class WorkOrderController extends BladeController {
workOrderService.batchReportService(workOrderList, response);
}
/**
* 删除
*/
@PostMapping("/remove")
public R remove(@RequestParam String ids) {
return R.status(workOrderService.deleteLogic(Func.toLongList(ids)));
}
/**
* 维修人员撤回维修方案
*/
@ApiLog(value = "提报管理-维修人员撤回维修方案")
@PostMapping("/return")
public R update(@RequestBody WorkOrder workOrder) {
workOrderService.updateById(workOrder);
LogUtil.saveLog(workOrder.getRequirementCode(),"维修人员撤回维修方案。");
return R.status(true);
}
}

@ -10,6 +10,7 @@ import lombok.AllArgsConstructor;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springblade.common.cache.DeptCache;
import org.springblade.common.cache.UserCache;
import org.springblade.common.utils.LogUtil;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.support.Condition;
@ -35,7 +36,9 @@ import org.springblade.modules.system.service.IDeptService;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -133,29 +136,51 @@ public class ApplyController extends BladeController {
@PostMapping("/save")
@ApiOperationSupport(order = 4)
public R save(@Valid @RequestBody ApplyDTO apply) {
// User user = UserCache.getUser(AuthUtil.getUserId());
List<ApplyDetail> details = apply.getDetails();
// apply.setApplyTime(new Date());
// apply.setApplyUserId(user.getId());0
// apply.setApplyUser(user.getRealName());
apply.setIsUpdate(-1);
apply.setCode("SL-" + DateFormatUtils.format(new Date(),"yyyyMMddHHmmss"));
apply.setApplyTypeNum(details.size());
long count = details.stream().filter(applyDetail -> applyDetail.getReturnTime() != null).count();
apply.setIsReturn(count > 0 ? 1 : 0);
boolean save = applyService.save(apply);
if(apply.getId() == null){
List<ApplyDetail> details = apply.getDetails();
apply.setIsUpdate(-1);
apply.setCode("SL-" + DateFormatUtils.format(new Date(),"yyyyMMddHHmmss"));
apply.setApplyTypeNum(details.size());
long count = details.stream().filter(applyDetail -> applyDetail.getReturnTime() != null).count();
apply.setIsReturn(count > 0 ? 1 : 0);
boolean save = applyService.save(apply);
if (CollectionUtil.isNotEmpty(details)) {
for (ApplyDetail applyDetail : details) {
applyDetail.setApplyId(apply.getId());
applyDetail.setIsCk(0);
applyDetail.setReturnNum(0);
applyDetail.setOutNum(0);
applyDetail.setIsReturn(applyDetail.getReturnTime() != null ? 1 : 0);
if (CollectionUtil.isNotEmpty(details)) {
for (ApplyDetail applyDetail : details) {
applyDetail.setApplyId(apply.getId());
applyDetail.setIsCk(0);
applyDetail.setReturnNum(0);
applyDetail.setOutNum(0);
applyDetail.setIsReturn(applyDetail.getReturnTime() != null ? 1 : 0);
}
applyDetailService.saveBatch(details);
}
LogUtil.saveApplyLog(apply.getCode(),AuthUtil.getNickName()+"新增申领记录!");
}else{
List<ApplyDetail> details = apply.getDetails();
apply.setIsUpdate(-1);
apply.setApplyTypeNum(details.size());
long count = details.stream().filter(applyDetail -> applyDetail.getReturnTime() != null).count();
apply.setIsReturn(count > 0 ? 1 : 0);
applyService.updateById(apply);
if (CollectionUtil.isNotEmpty(details)) {
//申领明细全删全增
Map<String,Object> map = new HashMap<>();
map.put("apply_id",apply.getId());
applyDetailService.removeByMap(map);
for (ApplyDetail applyDetail : details) {
applyDetail.setApplyId(apply.getId());
applyDetail.setIsCk(0);
applyDetail.setReturnNum(0);
applyDetail.setOutNum(0);
applyDetail.setIsReturn(applyDetail.getReturnTime() != null ? 1 : 0);
}
applyDetailService.saveBatch(details);
}
applyDetailService.saveBatch(details);
LogUtil.saveApplyLog(apply.getCode(),AuthUtil.getNickName()+"重新提交申领记录!");
}
return R.status(save);
return R.status(true);
}
/**
@ -177,6 +202,28 @@ public class ApplyController extends BladeController {
apply.setApproveUserId(user.getId());
apply.setApproveUser(user.getRealName());
apply.setApproveTime(new Date());
if(apply.getStatus() == 1){
List<ApplyDetail> detailList = applyDetailService.list(Wrappers.lambdaQuery(ApplyDetail.class).eq(ApplyDetail::getApplyId,apply.getId()).eq(BaseEntity::getIsDeleted,0));
List<Long> ids = detailList.stream().map(ApplyDetail::getProductId).collect(Collectors.toList());
List<Goods> goodsList = goodsService.listByIds(ids);
if (CollectionUtil.isNotEmpty(goodsList)) {
for (Goods goods : goodsList) {
for (ApplyDetail applyDetail : detailList) {
if (goods.getId().equals(applyDetail.getProductId())) {
int i = goods.getNum() - applyDetail.getApplyNum();
goods.setNum(Math.max(i, 0));
break;
}
}
}
goodsService.updateBatchById(goodsList);
}
LogUtil.saveApplyLog(apply.getCode(),user.getRealName()+"审批通过!");
}else{
LogUtil.saveApplyLog(apply.getCode(),user.getRealName()+"审批驳回!");
}
return R.status(applyService.updateById(apply));
}
@ -189,7 +236,7 @@ public class ApplyController extends BladeController {
apply.setStatus(apply.getIsReturn() == 1 ? 3 : 2);
apply.setCkTime(new Date());
List<ApplyDetail> detailList = apply.getDetails();
List<Long> ids = detailList.stream().map(ApplyDetail::getProductId).collect(Collectors.toList());
/* List<Long> ids = detailList.stream().map(ApplyDetail::getProductId).collect(Collectors.toList());
List<Goods> goodsList = goodsService.listByIds(ids);
if (CollectionUtil.isNotEmpty(goodsList)) {
for (Goods goods : goodsList) {
@ -205,11 +252,18 @@ public class ApplyController extends BladeController {
}
}
goodsService.updateBatchById(goodsList);
}*/
for (ApplyDetail applyDetail : detailList) {
applyDetail.setIsCk(1);
applyDetail.setCkTime(new Date());
applyDetail.setOutNum(applyDetail.getApplyNum());
}
if (CollectionUtil.isNotEmpty(detailList)) {
applyDetailService.updateBatchById(detailList);
}
LogUtil.saveApplyLog(apply.getCode(),AuthUtil.getNickName()+"领取物资出库!");
return R.status(applyService.updateById(apply));
}
@ -239,6 +293,7 @@ public class ApplyController extends BladeController {
if (CollectionUtil.isNotEmpty(detailList)) {
applyDetailService.updateBatchById(detailList);
}
LogUtil.saveApplyLog(apply.getCode(),AuthUtil.getNickName()+"归还物资!");
return R.status(applyService.updateById(apply));
}

@ -59,7 +59,7 @@ public class GoodsController extends BladeController {
Goods detail = goodsService.getById(goods.getId());
detail.setBigClassName(DictBizCache.getValue(GOODS_TYPE, detail.getBigClassId()));
detail.setTypeName(DictBizCache.getValue(MAJOR_TYPE, detail.getType()));
detail.setInventoryPrice(detail.getPurchasePrice() != null ? 0.00 : detail.getNum() * detail.getPurchasePrice());
detail.setInventoryPrice(detail.getPurchasePrice() == null ? 0.00 : detail.getNum() * detail.getPurchasePrice());
return R.data(detail);
}
@ -108,6 +108,7 @@ public class GoodsController extends BladeController {
@PostMapping("/update")
@ApiOperationSupport(order = 5)
public R update(@RequestBody Goods goods) {
return R.status(goodsService.updateById(goods));
}

@ -0,0 +1,17 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.business.pojo.entity.supplies.ApplyLog;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderLog;
/**
* 申领日志表 Mapper 接口
*
* @author BladeX
* @since 2024-10-14
*/
public interface ApplyLogMapper extends BaseMapper<ApplyLog> {
}

@ -0,0 +1,9 @@
<?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="org.springblade.modules.business.mapper.ApplyLogMapper">
<!-- 通用查询映射结果 -->
<resultMap id="applyLogResultMap" type="org.springblade.modules.business.pojo.entity.supplies.ApplyLog">
</resultMap>
</mapper>

@ -0,0 +1,31 @@
package org.springblade.modules.business.pojo.entity.supplies;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
/**
* 申领日志表 实体类
*
* @author BladeX
* @since 2024-10-14
*/
@Data
@TableName("lab_apply_log")
@EqualsAndHashCode(callSuper = true)
public class ApplyLog extends BaseEntity {
/**
* 申领单号
*/
private String code;
/**
* 备注
*/
private String content;
}

@ -271,4 +271,14 @@ public class WorkOrder extends BaseEntity {
* 维修完成图片url
*/
private String completeImgList;
/**
* 总费用
*/
private Double totalCost;
/**
* 预期完成时间
*/
private Date expectCompleteTime;
}

@ -0,0 +1,16 @@
package org.springblade.modules.business.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.supplies.ApplyLog;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderLog;
/**
* 申领日志表 服务类
*
* @author BladeX
* @since 2024-10-14
*/
public interface IApplyLogService extends BaseService<ApplyLog> {
}

@ -21,4 +21,7 @@ public interface IMessageService extends BaseService<Message> {
void updateMessageStatus(Long id, Integer status);
void updateMessageStatusAll();
void saveApplyReturnMessage(String code, String content, Long messageUser, Integer messageType);
}

@ -0,0 +1,23 @@
package org.springblade.modules.business.service.impl;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.mapper.ApplyLogMapper;
import org.springblade.modules.business.mapper.WorkOrderLogMapper;
import org.springblade.modules.business.pojo.entity.supplies.ApplyLog;
import org.springblade.modules.business.pojo.entity.workorder.WorkOrderLog;
import org.springblade.modules.business.service.IApplyLogService;
import org.springblade.modules.business.service.IWorkOrderLogService;
import org.springframework.stereotype.Service;
/**
* 申领日志表 服务实现类
*
* @author BladeX
* @since 2024-10-14
*/
@Service
@AllArgsConstructor
public class ApplyLogServiceImpl extends BaseServiceImpl<ApplyLogMapper, ApplyLog> implements IApplyLogService {
}

@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
@ -26,6 +27,7 @@ import org.springblade.modules.business.sms.SmsService;
import org.springblade.modules.resource.pojo.entity.Sms;
import org.springblade.modules.system.pojo.entity.User;
import org.springblade.modules.system.service.IUserService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -45,7 +47,7 @@ import static org.springblade.common.constant.CommonConstant.*;
* @since 2024-10-14
*/
@Service
@AllArgsConstructor
@RequiredArgsConstructor
public class MaintenancePlanServiceImpl extends BaseServiceImpl<MaintenancePlanMapper, MaintenancePlan> implements IMaintenancePlanService {
private final IMaintenancePlanDetailService planDetailService;
@ -54,6 +56,8 @@ public class MaintenancePlanServiceImpl extends BaseServiceImpl<MaintenancePlanM
private final IDeviceAttachService deviceAttachService;
private final IUserService userService;
private final SmsService smsService;
@Value("${sms.template-id1}")
private String templateCode;
@Override
@Transactional(rollbackFor = Exception.class)
@ -96,7 +100,7 @@ public class MaintenancePlanServiceImpl extends BaseServiceImpl<MaintenancePlanM
// 修改该实验室下所有用户为维保客户
if (plan.getDeptId() != null) {
save = userService.update(Wrappers.<User>update().lambda().set(User::getIsMaintenanceClient, 1).like(User::getDeptId, plan.getDeptId()).eq(User::getIsMaintenanceClient, 0));
userService.update(Wrappers.<User>update().lambda().set(User::getIsMaintenanceClient, 1).like(User::getDeptId, plan.getDeptId()).eq(User::getIsMaintenanceClient, 0));
}
return save;
}
@ -307,9 +311,9 @@ public class MaintenancePlanServiceImpl extends BaseServiceImpl<MaintenancePlanM
Optional<String> realName = Optional.ofNullable(maintenanceSupervisor.getRealName());
//TODO 当真实姓名为空时需要处理的逻辑
if (realName.isEmpty()) {
smsService.sendSms(maintenanceSupervisor.getPhone(), "未实名");
smsService.sendSms(maintenanceSupervisor.getPhone(), "未实名" , templateCode);
} else {
smsService.sendSms(maintenanceSupervisor.getPhone(), realName.get());
smsService.sendSms(maintenanceSupervisor.getPhone(), realName.get(), templateCode);
}
}
} catch (Exception e) {

@ -129,4 +129,20 @@ public class MessageServiceImpl extends BaseServiceImpl<MessageMapper, Message>
updateWrapper.eq("is_read", 0).set("is_read", 1);
baseMapper.update(updateWrapper);
}
@Override
public void saveApplyReturnMessage(String code, String content, Long messageUser, Integer messageType) {
Message saveInformation = new Message();
saveInformation.setRequirementCode(code);
saveInformation.setSystemType("1");
saveInformation.setTitle("申领单");
saveInformation.setContent(content);
saveInformation.setMessageUser(messageUser);
saveInformation.setTenantId("000000");
saveInformation.setLevel(1);
saveInformation.setMethod(2);
saveInformation.setIsRead(0);
saveInformation.setMessageType(messageType);
this.save(saveInformation);
}
}

@ -300,6 +300,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
public void repairPlanSubmit(WorkOrder workOrder) {
// 修改工单状态
WorkOrder workOrderOld = this.getById(workOrder.getId());
workOrderOld.setPlanCompleteTime(workOrder.getPlanCompleteTime());
if (workOrderOld.getRepairType().equals(1)) {
workOrderOld.setStatus(WorkOrderStatusEnum.WX_REPAIR_PLAN_SUBMIT_AFTER.getValue());
//保存日志
@ -603,6 +604,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream("excel" + "/" + templateFileName);
Map<String, Object> map = new HashMap<>();
double total = workOrder.getTotalPrice();
double totalCost = workOrder.getTotalCost();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
List<WorkOrderRepairMaterial> workOrderRepairMaterialList = workOrderRepairMaterialService.list(Wrappers.lambdaQuery(WorkOrderRepairMaterial.class).eq(WorkOrderRepairMaterial::getOrderId, workOrder.getId()));
List<WorkOrderFillData> workOrderFillDataList = new ArrayList<>();
@ -676,7 +678,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if (device.isPresent()) {
Optional<Long> limsId = Optional.ofNullable(device.get().getLimsId());
if (limsId.isPresent()) {
map.put("in", String.format("%.2f",(workOrder.getDiscountPrice() != null ? discountPrice.doubleValue() : 0.0) + (workOrder.getLaborCost() == null ? 0 : workOrder.getLaborCost())));
map.put("in", totalCost);
map.put("out", "--");
map.put("sel1", "√");
map.put("sel2", null);
@ -684,7 +686,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
map.put("outTravel", "--");
} else {
map.put("in", "--");
map.put("out", String.format("%.2f",(workOrder.getDiscountPrice() != null ? discountPrice.doubleValue() : 0.0) + (workOrder.getLaborCost() == null ? 0 : workOrder.getLaborCost())));
map.put("out", totalCost);
map.put("sel2", "√");
map.put("sel1", null);
map.put("outTravel", workOrder.getTravelExpense());
@ -692,7 +694,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
} else {
map.put("in", "--");
map.put("out", String.format("%.2f",(workOrder.getDiscountPrice() != null ? discountPrice.doubleValue() : 0.0) + (workOrder.getLaborCost() == null ? 0 : workOrder.getLaborCost())));
map.put("out", totalCost);
map.put("sel2", "√");
map.put("sel1", null);
map.put("outTravel", workOrder.getTravelExpense());
@ -730,6 +732,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream("excel" + "/" + templateFileName);
Map<String, Object> map = new HashMap<>();
double total = workOrder.getTotalPrice();
double totalCost = workOrder.getTotalCost();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
List<WorkOrderRepairMaterial> workOrderRepairMaterialList = workOrderRepairMaterialService.list(Wrappers.lambdaQuery(WorkOrderRepairMaterial.class).eq(WorkOrderRepairMaterial::getOrderId, workOrder.getId()));
List<WorkOrderFillData> workOrderFillDataList = new ArrayList<>();
@ -802,21 +805,21 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if (device.isPresent()) {
Optional<Long> limsId = Optional.ofNullable(device.get().getLimsId());
if (limsId.isPresent()) {
map.put("in", String.format("%.2f",workOrder.getDiscountPrice() + (workOrder.getLaborCost() != null ? workOrder.getLaborCost() : 0)));
map.put("in", totalCost);
map.put("out", "--");
map.put("sel1", "√");
map.put("sel2", null);
map.put("inTravel", workOrder.getTravelExpense());
} else {
map.put("in", "--");
map.put("out", String.format("%.2f",total + (workOrder.getLaborCost() != null ? workOrder.getLaborCost() : 0)));
map.put("out", totalCost);
map.put("sel2", "√");
map.put("sel1", null);
map.put("outTravel", workOrder.getTravelExpense());
}
} else {
map.put("in", "--");
map.put("out", String.format("%.2f",total + (workOrder.getLaborCost() != null ? workOrder.getLaborCost() : 0)));
map.put("out", totalCost);
map.put("sel2", "√");
map.put("sel1", null);
map.put("outTravel", workOrder.getTravelExpense());

@ -2,15 +2,28 @@ package org.springblade.modules.business.service.impl.supplies;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.modules.business.mapper.ApplyMapper;
import org.springblade.modules.business.pojo.entity.supplies.Apply;
import org.springblade.modules.business.pojo.entity.supplies.ApplyDetail;
import org.springblade.modules.business.excel.supplies.ApplyDetailExcel;
import org.springblade.modules.business.mapper.ApplyDetailMapper;
import org.springblade.modules.business.service.IMessageService;
import org.springblade.modules.business.service.supplies.IApplyDetailService;
import org.springblade.modules.business.pojo.vo.supplies.ApplyDetailVO;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 物品申领表明细 服务实现类
@ -19,8 +32,12 @@ import java.util.List;
* @since 2024-10-17
*/
@Service
@AllArgsConstructor
public class ApplyDetailServiceImpl extends BaseServiceImpl<ApplyDetailMapper, ApplyDetail> implements IApplyDetailService {
private final IMessageService messageService;
private final ApplyMapper applyMapper;
@Override
public IPage<ApplyDetailVO> selectApplyDetailPage(IPage<ApplyDetailVO> page, ApplyDetailVO applyDetail) {
return page.setRecords(baseMapper.selectApplyDetailPage(page, applyDetail));
@ -36,4 +53,17 @@ public class ApplyDetailServiceImpl extends BaseServiceImpl<ApplyDetailMapper, A
return applyDetailList;
}
@Override
public void sendApplyReturnMessage() {
Date date = new Date();
String tomorrow = DateFormatUtils.format(DateUtils.addDays(date,1),"yyyy-MM-dd");
List<ApplyDetail> list = baseMapper.selectList(Wrappers.lambdaQuery(ApplyDetail.class).eq(ApplyDetail::getIsReturn,0).eq(BaseEntity::getIsDeleted,0).like(ApplyDetail::getReturnTime,tomorrow));
if(CollectionUtil.isNotEmpty(list)){
for(ApplyDetail applyDetail : list){
Apply apply = applyMapper.selectOne(Wrappers.lambdaQuery(Apply.class).eq(Apply::getId,applyDetail.getApplyId()).eq(BaseEntity::getIsDeleted,0));
messageService.saveApplyReturnMessage(apply.getCode(),"您申领单号【"+apply.getCode()+"】有待归还物品即将到期,请及时归还",apply.getApplyUserId(),4);
}
}
}
}

@ -77,6 +77,9 @@ public class GoodsServiceImpl extends BaseServiceImpl<GoodsMapper, Goods> implem
//根据inventoryId查询是否已存在
Goods oldGoods = baseMapper.selectOne(Wrappers.lambdaQuery(Goods.class).eq(Goods::getInventoryId,goods.getInventoryId()).eq(BaseEntity::getIsDeleted,0));
if(oldGoods != null){
if(!oldGoods.getName().equals(goods.getName())){
throw new ServiceException("库存id为"+goods.getInventoryId()+"的物品名称与系统中物品名称不一致,请重新确认后再导入!");
}
goods.setId(oldGoods.getId());
goods.setNum(goods.getNum() + oldGoods.getNum());
goods.setAllEnterNum(goods.getNum() + oldGoods.getAllEnterNum());

@ -34,4 +34,6 @@ public interface IApplyDetailService extends BaseService<ApplyDetail> {
*/
List<ApplyDetailExcel> exportApplyDetail(Wrapper<ApplyDetail> queryWrapper);
void sendApplyReturnMessage();
}

@ -33,10 +33,10 @@ public class SmsService {
@Value("${sms.sign-name}")
private String signName;
@Value("${sms.template-id1}")
private String templateCode;
// @Value("${sms.template-id1}")
// private String templateCode;
public void sendSms(String phoneNumber, String name) throws ClientException {
public void sendSms(String phoneNumber, String name, String templateCode) throws ClientException {
SendSmsRequest request = new SendSmsRequest();
// 设置短信模板的参数

Loading…
Cancel
Save