Browse Source

Merge remote-tracking branch 'origin/dev' into dev

dev
王晓迪 2 months ago
parent
commit
9da861502d
  1. 129
      ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpDevelopModifyorderController.java
  2. 13
      ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpDevelopModifyorder.java
  3. 16
      ruoyi-admin/src/main/java/com/ruoyi/erp/domain/vo/ErpDevelopModifyorderRemindVo.java
  4. 6
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderService.java
  5. 25
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderServiceImpl.java
  6. 25
      ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java
  7. 13
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuote.java
  8. 30
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/ExportPurchaseOrderVo.java
  9. 78
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/ExportPurchaseQuoteChildVo.java
  10. 4
      ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteMapper.java
  11. 5
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteChildService.java
  12. 11
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteService.java
  13. 17
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java
  14. 8
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteChildServiceImpl.java
  15. 66
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java
  16. 261
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysRemindController.java
  17. 279
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysRemind.java
  18. 86
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysRemindMapper.java
  19. 110
      ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysRemindService.java
  20. 7
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderPickServiceImpl.java
  21. 266
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysRemindServiceImpl.java
  22. 6
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java
  23. 25
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java
  24. 13
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java
  25. 5
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java
  26. 13
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java
  27. 4
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java
  28. 10
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java
  29. 19
      ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteMapper.xml
  30. 163
      ruoyi-admin/src/main/resources/mapper/system/SysRemindMapper.xml
  31. 6
      ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml
  32. 155
      ruoyi-admin/src/main/resources/templates/erp/developModifyOrder/add.html
  33. 70
      ruoyi-admin/src/main/resources/templates/erp/developModifyOrder/detail.html
  34. 10
      ruoyi-admin/src/main/resources/templates/erp/developModifyOrder/developModifyOrder.html
  35. 5
      ruoyi-admin/src/main/resources/templates/erp/inboundOrder/inboundOrder.html
  36. 9
      ruoyi-admin/src/main/resources/templates/erp/materialReturnInspection/materialReturnInspection.html
  37. 61
      ruoyi-admin/src/main/resources/templates/index.html
  38. 60
      ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html
  39. 9
      ruoyi-admin/src/main/resources/templates/quality/complaintNotice/complaintNotice.html
  40. 8
      ruoyi-admin/src/main/resources/templates/quality/iqcQualityOrder/iqcQualityOrder.html
  41. 8
      ruoyi-admin/src/main/resources/templates/quality/manufacturingCheckout/manufacturingCheckout.html
  42. 7
      ruoyi-admin/src/main/resources/templates/quality/manufacturingProcess/manufacturingProcess.html
  43. 6
      ruoyi-admin/src/main/resources/templates/quality/qualityOrder/qualityOrder.html
  44. 8
      ruoyi-admin/src/main/resources/templates/quality/qualityReport/qualityReport.html
  45. 20
      ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/refundsExchanges.html
  46. 9
      ruoyi-admin/src/main/resources/templates/quality/returnInspection/returnInspection.html
  47. 4
      ruoyi-admin/src/main/resources/templates/quality/returnQualityOrder/returnQualityOrder.html
  48. 16
      ruoyi-admin/src/main/resources/templates/system/makeorder/makeorder.html
  49. 15
      ruoyi-admin/src/main/resources/templates/system/procedure/procedure.html
  50. 16
      ruoyi-admin/src/main/resources/templates/system/processCategory/processCategory.html
  51. 171
      ruoyi-admin/src/main/resources/templates/system/remind/add.html
  52. 84
      ruoyi-admin/src/main/resources/templates/system/remind/detail.html
  53. 77
      ruoyi-admin/src/main/resources/templates/system/remind/edit.html
  54. 47
      ruoyi-admin/src/main/resources/templates/system/remind/manualHandle.html
  55. 174
      ruoyi-admin/src/main/resources/templates/system/remind/remind.html
  56. 9
      ruoyi-admin/src/main/resources/templates/system/sop/sop.html
  57. 9
      ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html
  58. 67
      ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/setSafetyStock.html
  59. 36
      ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storageOrder.html
  60. 6
      ruoyi-common/src/main/java/com/ruoyi/common/constant/BusinessKeysConstants.java
  61. 7
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
  62. 2
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
  63. 7
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
  64. 2
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
  65. 10
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
  66. 2
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
  67. 8
      ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml

129
ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpDevelopModifyorderController.java

@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.erp.domain.ErpDevelopModifyorderDetail;
import com.ruoyi.erp.domain.ErpMaterial;
import com.ruoyi.erp.domain.ErpMaterialVo;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderRemindVo;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo;
import com.ruoyi.erp.service.IErpMaterialService;
import com.ruoyi.process.general.service.IProcessService;
@ -48,8 +49,7 @@ import javax.servlet.http.HttpSession;
*/
@Controller
@RequestMapping("/erp/developModifyOrder")
public class ErpDevelopModifyorderController extends BaseController
{
public class ErpDevelopModifyorderController extends BaseController {
private String prefix = "erp/developModifyOrder";
@Autowired
@ -82,8 +82,7 @@ public class ErpDevelopModifyorderController extends BaseController
@RequiresPermissions("erp:developModifyOrder:view")
@GetMapping()
public String developModifyOrder()
{
public String developModifyOrder() {
return prefix + "/developModifyOrder";
}
@ -93,8 +92,7 @@ public class ErpDevelopModifyorderController extends BaseController
@RequiresPermissions("erp:developModifyOrder:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(ErpDevelopModifyorderVo erpDevelopModifyorderVo)
{
public TableDataInfo list(ErpDevelopModifyorderVo erpDevelopModifyorderVo) {
startPage();
List<ErpDevelopModifyorderVo> list = erpDevelopModifyorderService.selectErpDevelopModifyorderList(erpDevelopModifyorderVo);
return getDataTable(list);
@ -103,10 +101,10 @@ public class ErpDevelopModifyorderController extends BaseController
/**
* 查找所有的工程员
* */
@GetMapping ("/getEngineerList")
*/
@GetMapping("/getEngineerList")
@ResponseBody
public TableDataInfo getEngineerList(){
public TableDataInfo getEngineerList() {
startPage();
List<SysUser> list = sysUserService.selectRoleToUserList("gcwyRole,gcjlRole,gczgRole,yfzjRole,");
return getDataTable(list);
@ -119,15 +117,13 @@ public class ErpDevelopModifyorderController extends BaseController
@Log(title = "开发修改单", businessType = BusinessType.EXPORT)
@PostMapping("/exportAll")
@ResponseBody
public AjaxResult exportAll(ErpDevelopModifyorderVo erpDevelopModifyorderVo)
{
public AjaxResult exportAll(ErpDevelopModifyorderVo erpDevelopModifyorderVo) {
List<ErpDevelopModifyorderVo> list = erpDevelopModifyorderService.selectErpDevelopModifyorderList(erpDevelopModifyorderVo);
ExcelUtil<ErpDevelopModifyorderVo> util = new ExcelUtil<ErpDevelopModifyorderVo>(ErpDevelopModifyorderVo.class);
return util.exportExcel(list, "开发修改单数据");
}
/**
* 导出选择的开发修改单列表
*/
@ -135,8 +131,7 @@ public class ErpDevelopModifyorderController extends BaseController
@Log(title = "开发修改单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(@RequestBody String[] developOrderCodes)
{
public AjaxResult export(@RequestBody String[] developOrderCodes) {
List<ErpDevelopModifyorderVo> list = erpDevelopModifyorderService.selectErpDevelopModifyorderListByCodes(developOrderCodes);
ExcelUtil<ErpDevelopModifyorderVo> util = new ExcelUtil<ErpDevelopModifyorderVo>(ErpDevelopModifyorderVo.class);
return util.exportExcel(list, "开发修改单数据");
@ -147,8 +142,7 @@ public class ErpDevelopModifyorderController extends BaseController
* 新增开发修改单
*/
@GetMapping("/add")
public String add()
{
public String add() {
return prefix + "/add";
}
@ -159,8 +153,7 @@ public class ErpDevelopModifyorderController extends BaseController
@Log(title = "开发修改单", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(@RequestBody ErpDevelopModifyorder erpDevelopModifyorder)
{
public AjaxResult addSave(@RequestBody ErpDevelopModifyorder erpDevelopModifyorder) {
erpDevelopModifyorderService.submitApply(erpDevelopModifyorder);
return AjaxResult.success();
@ -171,9 +164,8 @@ public class ErpDevelopModifyorderController extends BaseController
* 加载开发修改物料信息选择弹窗
*/
@GetMapping("/developModifyMaterialSelect")
public String materialSelect(@RequestParam String makeNo, ModelMap modelMap)
{
modelMap.put("makeNo",makeNo);
public String materialSelect(@RequestParam String makeNo, ModelMap modelMap) {
modelMap.put("makeNo", makeNo);
return prefix + "/developModifyOrderMaterialSelect";
}
@ -182,8 +174,7 @@ public class ErpDevelopModifyorderController extends BaseController
*/
@PostMapping("/getMaterialListByMakeNo")
@ResponseBody
public TableDataInfo getMaterialListByMakeNo(@RequestParam("makeNo") String makeNo)
{
public TableDataInfo getMaterialListByMakeNo(@RequestParam("makeNo") String makeNo) {
startPage();
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectSaleNoByMakeNo(makeNo);
List<SysSalesOrderChild> list = sysSalesOrderChildService.selectSysSalesOrderChildByQuoteId(sysMakeOrder.getSaleNo());
@ -195,8 +186,7 @@ public class ErpDevelopModifyorderController extends BaseController
* 加载采购修改物料信息选择弹窗
*/
@GetMapping("/purchaseMaterialSelect")
public String purchaseMaterialSelect()
{
public String purchaseMaterialSelect() {
return prefix + "/purchaseOrderMaterialSelect";
}
@ -206,17 +196,16 @@ public class ErpDevelopModifyorderController extends BaseController
*/
@PostMapping("/getPurchaseMaterialList")
@ResponseBody
public TableDataInfo getPurchaseMaterialList(ErpMaterial erpMaterial)
{
public TableDataInfo getPurchaseMaterialList(ErpMaterial erpMaterial) {
startPage();
List<ErpMaterialVo> erpMaterialVos = erpMaterialService.selectAllErpMaterialListWithBom(erpMaterial);
return getDataTable(erpMaterialVos);
}
/**
* 加载审批弹窗
*
* @param taskId
* @param mmap
* @return
@ -248,8 +237,6 @@ public class ErpDevelopModifyorderController extends BaseController
}
/**
* 完成任务
*
@ -265,7 +252,7 @@ public class ErpDevelopModifyorderController extends BaseController
//获取实例类型
String instanceType = erpDevelopModifyorderVo.getInstanceType();
boolean approvedFlag = processService.complete(taskId, instanceId, erpDevelopModifyorderVo.getApplyTitle(), erpDevelopModifyorderVo.getDevelopOrderCode(), "developModifyOrder", new HashMap<String, Object>(), request);
if(!approvedFlag){
if (!approvedFlag) {
// 审核状态-审核拒绝
erpDevelopModifyorderVo.setAuditStatus("2");
}
@ -286,17 +273,17 @@ public class ErpDevelopModifyorderController extends BaseController
// aftersalesOrderService.generateAftersalesOrderBySalesAftersalesNotice(tempSalesAftersalesNoticeVO);
// 提交
if("submit".equals(instanceType)){
if ("submit".equals(instanceType)) {
// 使用状态-是
// erpBomVo.setUseStatus("1");
}
// 作废
else if("cancel".equals(instanceType)){
else if ("cancel".equals(instanceType)) {
// 使用状态-已作废
// erpBomVo.setUseStatus("2");
}
// 恢复
else if("restore".equals(instanceType)){
else if ("restore".equals(instanceType)) {
// 使用状态-是
// erpBomVo.setUseStatus("1");
}
@ -310,14 +297,11 @@ public class ErpDevelopModifyorderController extends BaseController
}
/**
* 修改开发修改单
*/
@GetMapping("/edit/{developOrderId}")
public String edit(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap)
{
public String edit(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap) {
ErpDevelopModifyorder erpDevelopModifyorder = erpDevelopModifyorderService.selectErpDevelopModifyorderById(developOrderId);
mmap.put("beforeUpdateRemark", erpDevelopModifyorder.getBeforeUpdateRemark());
mmap.put("afterUpdateRemark", erpDevelopModifyorder.getAfterUpdateRemark());
@ -332,8 +316,7 @@ public class ErpDevelopModifyorderController extends BaseController
@Log(title = "开发修改单", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(@RequestBody ErpDevelopModifyorder erpDevelopModifyorder)
{
public AjaxResult editSave(@RequestBody ErpDevelopModifyorder erpDevelopModifyorder) {
return toAjax(erpDevelopModifyorderService.updateErpDevelopModifyorder(erpDevelopModifyorder));
}
@ -342,8 +325,7 @@ public class ErpDevelopModifyorderController extends BaseController
*/
@PostMapping("/getDevelopModifyMaterialById")
@ResponseBody
public TableDataInfo getDevelopModifyMaterialById(@RequestParam("developOrderId") Long developOrderId)
{
public TableDataInfo getDevelopModifyMaterialById(@RequestParam("developOrderId") Long developOrderId) {
startPage();
List<ErpDevelopModifyorder> erpDevelopModifyorderList = erpDevelopModifyorderService.selectDevelopModifyMaterialById(developOrderId);
return getDataTable(erpDevelopModifyorderList);
@ -354,60 +336,54 @@ public class ErpDevelopModifyorderController extends BaseController
*/
@PostMapping("/getDevelopModifyDetailMaterialByCode")
@ResponseBody
public TableDataInfo getDevelopModifyDetailMaterialByCode(@RequestParam("developOrderCode") String developOrderCode)
{
public TableDataInfo getDevelopModifyDetailMaterialByCode(@RequestParam("developOrderCode") String developOrderCode) {
startPage();
List<ErpDevelopModifyorderDetail> erpDevelopModifyorderDetailList = erpDevelopModifyorderService.selectDevelopModifyDetailMaterialByCode(developOrderCode);
return getDataTable(erpDevelopModifyorderDetailList);
}
/**
* 查看开发修改单详情
* */
* 查看开发修改单详情
*/
@Log(title = "开发修改单", businessType = BusinessType.OTHER)
@GetMapping("/detail/{developOrderId}")
public String detail(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap){
public String detail(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap) {
ErpDevelopModifyorder erpDevelopModifyorder = erpDevelopModifyorderService.selectErpDevelopModifyorderById(developOrderId);
mmap.put("erpDevelopModifyorder",erpDevelopModifyorder);
mmap.put("erpDevelopModifyorder", erpDevelopModifyorder);
mmap.put("beforeUpdateRemark", erpDevelopModifyorder.getBeforeUpdateRemark());
mmap.put("afterUpdateRemark", erpDevelopModifyorder.getAfterUpdateRemark());
return prefix+ "/detail";
return prefix + "/detail";
}
/**
* 修改保存开发修改单详情
*/
@Log(title = "开发修改单", businessType = BusinessType.UPDATE)
@PostMapping("/detail")
@ResponseBody
public AjaxResult detailSave(@RequestBody ErpDevelopModifyorder erpDevelopModifyorder)
{
public AjaxResult detailSave(@RequestBody ErpDevelopModifyorder erpDevelopModifyorder) {
return toAjax(erpDevelopModifyorderService.detailErpDevelopModifyorder(erpDevelopModifyorder));
}
/**相关人员确认*/
/**
* 相关人员确认
*/
@GetMapping("/confirm/{developOrderId}")
public String confrimDetail(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap)
{
public String confrimDetail(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap) {
ErpDevelopModifyorder erpDevelopModifyorder = erpDevelopModifyorderService.selectErpDevelopModifyorderById(developOrderId);
mmap.put("erpDevelopModifyorder", erpDevelopModifyorder);
return prefix + "/confirm";
}
/**
* 加载添加领料弹窗
* */
*/
@GetMapping("/pickAdd/{developOrderId}")
public String pickAdd(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap)
{
public String pickAdd(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap) {
ErpDevelopModifyorder erpDevelopModifyorder = erpDevelopModifyorderService.selectErpDevelopModifyorderById(developOrderId);
mmap.put("erpDevelopModifyorder", erpDevelopModifyorder);
return prefix + "/pickAdd";
@ -416,27 +392,24 @@ public class ErpDevelopModifyorderController extends BaseController
/**
* 添加领料页面开发修改单物料详情
* */
*/
@PostMapping("/showPickingDevelopModifyorderDetailList")
@ResponseBody
public TableDataInfo showPickingDevelopModifyorderDetailList(@RequestParam("developOrderCode") String developOrderCode)
{
public TableDataInfo showPickingDevelopModifyorderDetailList(@RequestParam("developOrderCode") String developOrderCode) {
startPage();
List<ErpDevelopModifyorderDetail> erpDevelopModifyorderDetailList = erpDevelopModifyorderService.selectDevelopModifyDetailMaterialByCode(developOrderCode);
return getDataTable(erpDevelopModifyorderDetailList);
}
/**
* 删除开发修改单
*/
@RequiresPermissions("erp:developModifyOrder:remove")
@Log(title = "开发修改单", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@PostMapping("/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
public AjaxResult remove(String ids) {
return toAjax(erpDevelopModifyorderService.deleteErpDevelopModifyorderByIds(ids));
}
@ -445,9 +418,9 @@ public class ErpDevelopModifyorderController extends BaseController
*/
@RequiresPermissions("erp:developModifyOrder:cancel")
@Log(title = "开发修改单", businessType = BusinessType.CANCEL)
@GetMapping( "/cancel/{id}")
@GetMapping("/cancel/{id}")
@ResponseBody
public AjaxResult cancel(@PathVariable("id") Long id){
public AjaxResult cancel(@PathVariable("id") Long id) {
return toAjax(erpDevelopModifyorderService.cancelErpDevelopModifyorderById(id));
}
@ -456,15 +429,23 @@ public class ErpDevelopModifyorderController extends BaseController
*/
@RequiresPermissions("erp:developModifyOrder:restore")
@Log(title = "开发修改单", businessType = BusinessType.RESTORE)
@GetMapping( "/restore/{id}")
@GetMapping("/restore/{id}")
@ResponseBody
public AjaxResult restore(@PathVariable("id")Long id)
{
public AjaxResult restore(@PathVariable("id") Long id) {
return toAjax(erpDevelopModifyorderService.restoreErpDevelopModifyorderById(id));
}
/**
* 开发修改单查询通知人和确认时间
* */
@PostMapping("/getErpDevelopRemindPeopleList")
@ResponseBody
public TableDataInfo getErpDevelopRemindPeopleList(@RequestParam("developOrderCode") String developOrderCode) {
startPage();
List<ErpDevelopModifyorderRemindVo> erpDevelopModifyorderDetailList = erpDevelopModifyorderService.getErpDevelopRemindPeopleList(developOrderCode);
return getDataTable(erpDevelopModifyorderDetailList);
}
}

13
ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpDevelopModifyorder.java

@ -2,6 +2,7 @@ package com.ruoyi.erp.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderMaterialVo;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderRemindVo;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
@ -149,6 +150,9 @@ public class ErpDevelopModifyorder extends BaseEntity
/** 开发修改单领料详情*/
private List<ErpDevelopModifyorderPickingDetail> developModifyorderPickingDetails;
/** 通知人*/
private List<ErpDevelopModifyorderRemindVo> modifyorderRemindVos;
public String getMakeNo() {
return makeNo;
}
@ -450,6 +454,14 @@ public class ErpDevelopModifyorder extends BaseEntity
this.developModifyorderPickingDetails = developModifyorderPickingDetails;
}
public List<ErpDevelopModifyorderRemindVo> getModifyorderRemindVos() {
return modifyorderRemindVos;
}
public void setModifyorderRemindVos(List<ErpDevelopModifyorderRemindVo> modifyorderRemindVos) {
this.modifyorderRemindVos = modifyorderRemindVos;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -493,6 +505,7 @@ public class ErpDevelopModifyorder extends BaseEntity
.append("developModifyorderDetailList",getDevelopModifyorderDetailList())
.append("developModifyorderMaterialVoList",getDevelopModifyorderMaterialVoList())
.append("developModifyorderPickingDetails",getDevelopModifyorderPickingDetails())
.append("modifyorderRemindVos",getModifyorderRemindVos())
.toString();
}
}

16
ruoyi-admin/src/main/java/com/ruoyi/erp/domain/vo/ErpDevelopModifyorderRemindVo.java

@ -0,0 +1,16 @@
package com.ruoyi.erp.domain.vo;
import lombok.Data;
import java.util.Date;
/**
* 开发修改单通知人实体类
* */
@Data
public class ErpDevelopModifyorderRemindVo {
private String receiverUser;
private Date handleTime;
}

6
ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderService.java

@ -3,6 +3,7 @@ package com.ruoyi.erp.service;
import java.util.List;
import com.ruoyi.erp.domain.ErpDevelopModifyorder;
import com.ruoyi.erp.domain.ErpDevelopModifyorderDetail;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderRemindVo;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo;
import com.ruoyi.system.domain.SysSalesOrder;
import org.activiti.engine.runtime.ProcessInstance;
@ -104,4 +105,9 @@ public interface IErpDevelopModifyorderService
* 根据开发修改单号数组查询开发修改单列表集合
* */
List<ErpDevelopModifyorderVo> selectErpDevelopModifyorderListByCodes(String[] developOrderCodes);
/**
* 根据开发修改单号查询提醒人员列表
* */
List<ErpDevelopModifyorderRemindVo> getErpDevelopRemindPeopleList(String developOrderCode);
}

25
ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderServiceImpl.java

@ -12,6 +12,7 @@ import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.erp.domain.ErpDevelopModifyorderDetail;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderMaterialVo;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderRemindVo;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo;
import com.ruoyi.erp.mapper.ErpDevelopModifyorderDetailMapper;
import com.ruoyi.process.general.service.IProcessService;
@ -19,10 +20,12 @@ import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper;
import com.ruoyi.sales.domain.SalesAftersalesNotice;
import com.ruoyi.sales.domain.VO.SalesAftersalesNoticeVO;
import com.ruoyi.system.domain.SysMakeOrder;
import com.ruoyi.system.domain.SysRemind;
import com.ruoyi.system.domain.SysSalesOrderVo;
import com.ruoyi.system.mapper.SysMakeOrderMapper;
import com.ruoyi.system.mapper.SysSalesOrderMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysRemindService;
import com.ruoyi.system.service.ISysRoleService;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.TaskService;
@ -79,6 +82,9 @@ public class ErpDevelopModifyorderServiceImpl implements IErpDevelopModifyorderS
@Autowired
private BizTodoItemMapper todoItemMapper;
@Autowired
private ISysRemindService remindService;
/**
* 查询开发修改单
*
@ -100,6 +106,23 @@ public class ErpDevelopModifyorderServiceImpl implements IErpDevelopModifyorderS
return erpDevelopModifyorderMapper.selectErpDevelopModifyorderListByCodes(developOrderCodes);
}
/**
* 根据开发修改单号查询开发修改单详情列表
* */
@Override
public List<ErpDevelopModifyorderRemindVo> getErpDevelopRemindPeopleList(String developOrderCode) {
List<SysRemind> remindList = remindService.selectSysRemindListByBusinessKey(developOrderCode);
List<ErpDevelopModifyorderRemindVo> erpDevelopModifyorderRemindVos = new ArrayList<>();
for (SysRemind sysRemind : remindList) {
ErpDevelopModifyorderRemindVo modifyorderRemindVo = new ErpDevelopModifyorderRemindVo();
modifyorderRemindVo.setReceiverUser(sysRemind.getReceiverUser());
modifyorderRemindVo.setHandleTime(sysRemind.getHandleTime());
erpDevelopModifyorderRemindVos.add(modifyorderRemindVo);
}
return erpDevelopModifyorderRemindVos;
}
/**
* 查询开发修改单列表
*
@ -216,7 +239,7 @@ public class ErpDevelopModifyorderServiceImpl implements IErpDevelopModifyorderS
developModifyorderDetailMapper.insertErpDevelopModifyorderDetail(erpDevelopModifyorderDetail);
}
remindService.erpDevelopModifyorderRemind(erpDevelopModifyorder);
return erpDevelopModifyorderMapper.insertErpDevelopModifyorder(erpDevelopModifyorder);
}

25
ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java

@ -13,6 +13,7 @@ import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.purchase.domain.PurchaseQuoteChild;
import com.ruoyi.purchase.domain.PurchaseQuoteHistory;
import com.ruoyi.purchase.domain.Vo.ExportPurchaseQuoteChildVo;
import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo;
import com.ruoyi.purchase.service.IPurchaseQuoteHistoryService;
import com.ruoyi.system.domain.SysCustomerQuoteHistory;
@ -126,6 +127,23 @@ public class PurchaseQuoteController extends BaseController
}
/**
* 导出采购报价单列表
*/
@RequiresPermissions("purchase:purchaseQuote:export")
@PostMapping("/exportAll")
@ResponseBody
public AjaxResult exportAll(PurchaseQuote purchaseQuote)
{
List<PurchaseQuote> purchaseQuoteList = purchaseQuoteService.selectPurchaseQuoteList2(purchaseQuote);
List<ExportPurchaseQuoteChildVo> list = purchaseQuoteService.getExportPurchaseQuoteChildVoList(purchaseQuoteList);
ExcelUtil<ExportPurchaseQuoteChildVo> util = new ExcelUtil<ExportPurchaseQuoteChildVo>(ExportPurchaseQuoteChildVo.class);
return util.exportExcel(list, "采购报价单数据");
}
/**
@ -135,10 +153,11 @@ public class PurchaseQuoteController extends BaseController
@PostMapping("/export")
@ResponseBody
public AjaxResult export(PurchaseQuote purchaseQuote)
public AjaxResult export(@RequestBody String[] purchaseQuoteCodes)
{
List<PurchaseQuote> list = purchaseQuoteService.selectPurchaseQuoteList2(purchaseQuote);
ExcelUtil<PurchaseQuote> util = new ExcelUtil<PurchaseQuote>(PurchaseQuote.class);
List<PurchaseQuote> purchaseQuoteList = purchaseQuoteService.selectPurchaseQuoteListByCodes(purchaseQuoteCodes);
List<ExportPurchaseQuoteChildVo> list = purchaseQuoteService.getExportPurchaseQuoteChildVoList(purchaseQuoteList);
ExcelUtil<ExportPurchaseQuoteChildVo> util = new ExcelUtil<ExportPurchaseQuoteChildVo>(ExportPurchaseQuoteChildVo.class);
return util.exportExcel(list, "采购报价单数据");
}

13
ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuote.java

@ -72,6 +72,9 @@ public class PurchaseQuote extends BaseEntity
@Excel(name = "使用状态")
private String useStatus;
/** 创建时间*/
private Date createTime;
//图片索引id
private Long photoAttachId;
@ -361,6 +364,16 @@ public class PurchaseQuote extends BaseEntity
this.applyTime = applyTime;
}
@Override
public Date getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

30
ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/ExportPurchaseOrderVo.java

@ -17,6 +17,14 @@ public class ExportPurchaseOrderVo{
@Excel(name = "采购订购单号")
private String purchaseOrderCode;
@Excel(name = "创建时间", dateFormat = "yyyy-MM-dd")
private Date createTime;
/** 采购计划单号*/
@Excel(name = "采购计划单号")
private String purchasePlanCode;
/** 供应商ID */
@Excel(name = "供应商ID")
private String supplierCode;
@ -25,6 +33,28 @@ public class ExportPurchaseOrderVo{
@Excel(name = "供应商名称")
private String supplierName;
/** 仓库ID */
@Excel(name = "仓库ID")
private String stockNo;
/** 仓库名称 */
@Excel(name = "仓库名称")
private String stockName;
/** 收货人 */
@Excel(name = "收货人")
private String receivePerson;
/** 收货电话 */
@Excel(name = "收货电话")
private String receivePersonPhone;
/** 收货地址 */
@Excel(name = "收货地址")
private String receiveAddress;
/** 不含税总价(RMB) */
@Excel(name = "不含税总价(RMB)")
private BigDecimal noRmbSum;

78
ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/ExportPurchaseQuoteChildVo.java

@ -0,0 +1,78 @@
package com.ruoyi.purchase.domain.Vo;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 导出采购报价单详情模板
* */
@Data
public class ExportPurchaseQuoteChildVo {
/** 采购报价单号 */
@Excel(name = "采购报价单号")
private String purchaseQuoteCode;
/** 创建时间*/
@Excel(name = "创建时间", dateFormat = "yyyy-MM-dd")
private Date createTime;
/** 供应商ID */
@Excel(name = "供应商ID")
private String supplierQuoteCode;
/** 供应商名称 */
@Excel(name = "供应商名称")
private String supplierName;
/** 税率 */
@Excel(name = "税率")
private Double taxRate;
/** 定价日期 */
@Excel(name = "定价日期")
private String pricingDate;
/** 物料表中的编号 */
@Excel(name = "料号")
private String materialCode;
/** 物料名称 */
@Excel(name = "物料名称")
private String materialName;
/** 物料加工方式 */
@Excel(name = "物料加工方式",dictType = "processMethod")
private String processMethod;
/** 物料品牌 */
@Excel(name = "物料品牌")
private String brand;
/** 物料描述 */
@Excel(name = "物料描述")
private String describe;
/** 物料数量 */
@Excel(name = "物料数量")
private Long materialNum;
/** 物料对外报价 */
@Excel(name = "物料对外报价")
private BigDecimal materialSole;
/** 物料不含税单价(RMB) */
@Excel(name = "物料不含税单价(RMB)")
private BigDecimal materialRmb;
/** 物料含税单价(RMB) */
@Excel(name = "物料含税单价(RMB)")
private BigDecimal materialNoRmb;
}

4
ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteMapper.java

@ -116,4 +116,8 @@ public interface PurchaseQuoteMapper
* */
List<PurchaseQuote> selectPurchaseQuoteAllList();
/**
* 根据采购报价单编号批量查询采购报价单
* */
List<PurchaseQuote> selectPurchaseQuoteListByCodes(String[] purchaseQuoteCodes);
}

5
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteChildService.java

@ -82,4 +82,9 @@ public interface IPurchaseQuoteChildService
int restorePurchaseQuoteChildById(Long purchaseQuoteChildId);
List<PurchaseQuoteChild> selectQuoteChildByMaterialCode(String materialCode);
/**
* 根据报价单号查询报价单子表物料信息
* */
List<PurchaseQuoteChild> selectQuoteChildListByQuoteCode(List<String> purchaseQuoteCodeList);
}

11
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteService.java

@ -1,6 +1,7 @@
package com.ruoyi.purchase.service;
import com.github.pagehelper.Page;
import com.ruoyi.purchase.domain.Vo.ExportPurchaseQuoteChildVo;
import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo;
import com.ruoyi.purchase.domain.PurchaseQuote;
import org.activiti.engine.runtime.ProcessInstance;
@ -99,4 +100,14 @@ public interface IPurchaseQuoteService
* 导入采购报价单
* */
String importPurchaseQuote(List<PurchaseQuote> purchaseQuoteList, boolean updateSupport, String operName);
/**
* 导出采购报价单导出详情页面的数据+单号+单据创建时间
* */
List<ExportPurchaseQuoteChildVo> getExportPurchaseQuoteChildVoList(List<PurchaseQuote> purchaseQuotes);
/**
* 根据采购报价单号批量查询采购报价单
* */
List<PurchaseQuote> selectPurchaseQuoteListByCodes(String[] purchaseQuoteCodes);
}

17
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java

@ -40,10 +40,7 @@ import com.ruoyi.system.domain.SysSalesOrderChild;
import com.ruoyi.system.domain.SysSupplier;
import com.ruoyi.system.mapper.SysCompanyInformationMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysAttachFileService;
import com.ruoyi.system.service.ISysAttachService;
import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysSupplierService;
import com.ruoyi.system.service.*;
import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry;
import com.ruoyi.warehouse.domain.WarehouseStorageOrder;
import com.ruoyi.warehouse.domain.WarehouseStorageOrderDetail;
@ -164,6 +161,9 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService
@Autowired
private IFinancialAccountsPayableService payableService;
@Autowired
private ISysRemindService remindService;
/**
* 查询采购订单
@ -309,6 +309,13 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService
for (PurchaseOrderChild child : children) {
ExportPurchaseOrderVo exportPurchaseOrderVo = new ExportPurchaseOrderVo();
exportPurchaseOrderVo.setPurchaseOrderCode(purchaseOrder.getPurchaseOrderCode());
exportPurchaseOrderVo.setCreateTime(purchaseOrder.getCreateTime());
exportPurchaseOrderVo.setPurchasePlanCode(purchaseOrder.getPurchasePlanCode());
exportPurchaseOrderVo.setStockNo(purchaseOrder.getStockNo());
exportPurchaseOrderVo.setStockName(purchaseOrder.getStockName());
exportPurchaseOrderVo.setReceivePerson(purchaseOrder.getReceivePerson());
exportPurchaseOrderVo.setReceivePersonPhone(purchaseOrder.getReceivePersonPhone());
exportPurchaseOrderVo.setReceiveAddress(purchaseOrder.getReceiveAddress());
exportPurchaseOrderVo.setSupplierName(purchaseOrder.getSupplierName());
exportPurchaseOrderVo.setSupplierCode(purchaseOrder.getSupplierCode());
exportPurchaseOrderVo.setNoRmbSum(purchaseOrder.getNoRmbSum());
@ -486,6 +493,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService
if (updateInventoryInquiry <= 0){
throw new BusinessException("更新库存查询记录失败");
}
remindService.warehouseSafetyStockRemind(warehouseInventoryInquiry);
}
@ -778,6 +786,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService
if (result <= 0){
throw new BusinessException("更新库存查询记录失败");
}
remindService.warehouseSafetyStockRemind(warehouseInventoryInquiry);
}
}

8
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteChildServiceImpl.java

@ -133,4 +133,12 @@ public class PurchaseQuoteChildServiceImpl implements IPurchaseQuoteChildService
public List<PurchaseQuoteChild> selectQuoteChildByMaterialCode(String materialCode) {
return purchaseQuoteChildMapper.selectQuoteChildByMaterialCode(materialCode);
}
/**
* 根据报价单号查询报价单子表物料信息
* */
@Override
public List<PurchaseQuoteChild> selectQuoteChildListByQuoteCode(List<String> purchaseQuoteCodeList) {
return purchaseQuoteChildMapper.selectPurchaseQuoteChildListByQuoteCodeList(purchaseQuoteCodeList);
}
}

66
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java

@ -1,6 +1,8 @@
package com.ruoyi.purchase.service.impl;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import com.github.pagehelper.Page;
import com.ruoyi.common.core.domain.entity.SysUser;
@ -12,13 +14,13 @@ import com.ruoyi.common.service.ICommonService;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.purchase.domain.PurchaseQuoteHistory;
import com.ruoyi.purchase.domain.*;
import com.ruoyi.purchase.domain.Vo.ExportPurchaseQuoteChildVo;
import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo;
import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper;
import com.ruoyi.purchase.service.IPurchaseQuoteHistoryService;
import com.ruoyi.system.domain.SysAttach;
import com.ruoyi.purchase.domain.PurchaseQuoteChild;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysAttachFileService;
import com.ruoyi.system.service.ISysAttachService;
@ -32,7 +34,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.purchase.mapper.PurchaseQuoteMapper;
import com.ruoyi.purchase.domain.PurchaseQuote;
import com.ruoyi.purchase.service.IPurchaseQuoteService;
import com.ruoyi.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;
@ -164,12 +165,18 @@ public class PurchaseQuoteServiceImpl implements IPurchaseQuoteService
@Override
public Page<PurchaseQuote> selectPurchaseQuoteList2(PurchaseQuote purchaseQuote){
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
Page<PurchaseQuote> list = purchaseQuoteMapper.selectPurchaseQuoteList2(purchaseQuote);
return list;
}
/**
* 根据采购报价单编号批量查询采购报价单
* */
@Override
public List<PurchaseQuote> selectPurchaseQuoteListByCodes(String[] purchaseQuoteCodes) {
return purchaseQuoteMapper.selectPurchaseQuoteListByCodes(purchaseQuoteCodes);
}
/**
* 新增采购报价单
*
@ -527,4 +534,51 @@ public class PurchaseQuoteServiceImpl implements IPurchaseQuoteService
return successMsg.toString();
}
/**
* 导出采购报价单
* */
@Override
public List<ExportPurchaseQuoteChildVo> getExportPurchaseQuoteChildVoList(List<PurchaseQuote> purchaseQuotes) {
if (!CollectionUtils.isEmpty(purchaseQuotes)){
List<ExportPurchaseQuoteChildVo> exportPurchaseQuoteChildVoList = new ArrayList<>();
List<String> purchaseQuoteCodeList = purchaseQuotes.stream().map(PurchaseQuote::getPurchaseQuoteCode).collect(Collectors.toList());
List<PurchaseQuoteChild> purchaseQuoteChildList = purchaseQuoteChildService.selectQuoteChildListByQuoteCode(purchaseQuoteCodeList);
// 创建一个 map 用于快速查找主表数据
Map<String, PurchaseQuote> purchaseQuoteMap = purchaseQuotes.stream()
.collect(Collectors.toMap(PurchaseQuote::getPurchaseQuoteCode, Function.identity()));
// 创建一个 map 用于快速查找子表数据
Map<String, List<PurchaseQuoteChild>> purchaseQuoteChildMap = purchaseQuoteChildList.stream()
.collect(Collectors.groupingBy(PurchaseQuoteChild::getPurchaseQuoteCode));
for (PurchaseQuoteChild purchaseQuoteChild : purchaseQuoteChildList) {
ExportPurchaseQuoteChildVo exportPurchaseQuoteChildVo = new ExportPurchaseQuoteChildVo();
PurchaseQuote purchaseQuote = purchaseQuoteMap.get(purchaseQuoteChild.getPurchaseQuoteCode());
exportPurchaseQuoteChildVo.setPurchaseQuoteCode(purchaseQuoteChild.getPurchaseQuoteCode());
exportPurchaseQuoteChildVo.setCreateTime(purchaseQuote.getCreateTime());
exportPurchaseQuoteChildVo.setSupplierQuoteCode(purchaseQuote.getSupplierQuoteCode());
exportPurchaseQuoteChildVo.setSupplierName(purchaseQuote.getSupplierName());
exportPurchaseQuoteChildVo.setTaxRate(purchaseQuote.getTaxRate());
exportPurchaseQuoteChildVo.setPricingDate(purchaseQuote.getPricingDate());
exportPurchaseQuoteChildVo.setMaterialCode(purchaseQuoteChild.getMaterialCode());
exportPurchaseQuoteChildVo.setMaterialName(purchaseQuoteChild.getMaterialName());
exportPurchaseQuoteChildVo.setProcessMethod(purchaseQuoteChild.getProcessMethod());
exportPurchaseQuoteChildVo.setBrand(purchaseQuoteChild.getBrand());
exportPurchaseQuoteChildVo.setDescribe(purchaseQuoteChild.getDescribe());
exportPurchaseQuoteChildVo.setMaterialNum(purchaseQuoteChild.getMaterialNum());
exportPurchaseQuoteChildVo.setMaterialSole(purchaseQuoteChild.getMaterialSole());
exportPurchaseQuoteChildVo.setMaterialRmb(purchaseQuoteChild.getMaterialRmb());
exportPurchaseQuoteChildVo.setMaterialNoRmb(purchaseQuoteChild.getMaterialNoRmb());
exportPurchaseQuoteChildVoList.add(exportPurchaseQuoteChildVo);
}
return exportPurchaseQuoteChildVoList;
}
return Collections.emptyList();
}
}

261
ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysRemindController.java

@ -0,0 +1,261 @@
package com.ruoyi.system.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.ruoyi.common.constant.BusinessKeysConstants;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.process.todoitem.domain.BizTodoItem;
import com.ruoyi.system.service.ISysUserService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.SysRemind;
import com.ruoyi.system.service.ISysRemindService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import javax.servlet.http.HttpServletRequest;
/**
* 系统提醒Controller
*
* @author 刘晓旭
* @date 2024-12-20
*/
@Controller
@RequestMapping("/system/remind")
public class SysRemindController extends BaseController
{
private String prefix = "system/remind";
@Autowired
private ISysRemindService sysRemindService;
@Autowired
private ISysUserService sysUserService;
@GetMapping()
public String remind(Map mmap)
{
mmap.put("currentUser", ShiroUtils.getSysUser());
return prefix + "/remind";
}
/**
* 查询系统提醒列表
*/
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(SysRemind sysRemind)
{
startPage();
List<SysRemind> list = sysRemindService.selectSysRemindList(sysRemind);
return getDataTable(list);
}
/**
* 系统提醒不分页
* */
@RequestMapping("/getRemindListNoPaging")
@ResponseBody
public List<SysRemind> getRemindListNoPaging(HttpServletRequest request) {
Map<String, Object> paraMap = new HashMap<String, Object>();
paraMap.put("receiverUser", ShiroUtils.getLoginName());
// 待办参数
paraMap.put("isHandle","0");
List<SysRemind> list = sysRemindService.selectUnHandleSysRemindList(paraMap);
list.forEach(item->{
if (BusinessKeysConstants.ERP_DEVELOPMENT_MODIFY.equals(item.getModule())){
item.setModule("开发修改单");
}
if (BusinessKeysConstants.WAREHOUSE_INQUIRY.equals(item.getModule())){
item.setModule("仓库库存查询");
}
});
return list;
}
/**
* 导出系统提醒列表
*/
@Log(title = "系统提醒", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(SysRemind sysRemind)
{
List<SysRemind> list = sysRemindService.selectSysRemindList(sysRemind);
ExcelUtil<SysRemind> util = new ExcelUtil<SysRemind>(SysRemind.class);
return util.exportExcel(list, "系统提醒数据");
}
/**
* 新增系统提醒
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
* 新增保存系统提醒
*/
@Log(title = "系统提醒", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(SysRemind sysRemind)
{
return toAjax(sysRemindService.insertSysRemind(sysRemind));
}
/**
* 处理系统提醒
*/
@GetMapping("/handle/{remindId}")
@ResponseBody // 确保返回的是JSON格式的数据
public Map<String, Object> handle(@PathVariable("remindId") Long remindId) {
SysRemind sysRemind = sysRemindService.selectSysRemindById(remindId);
String moduleUrl = sysRemind.getModuleUrl();
Map<String, Object> result = new HashMap<>();
result.put("url", moduleUrl);
return result;
}
/**
* 修改系统提醒手动确认处理
*/
@GetMapping("/manualHandle/{remindId}")
public String manualHandle(@PathVariable("remindId") Long remindId, ModelMap mmap)
{
SysRemind sysRemind = sysRemindService.selectSysRemindById(remindId);
mmap.put("sysRemind", sysRemind);
return prefix + "/manualHandle";
}
/**
* 修改保存系统提醒手动确认处理
*/
@Log(title = "系统提醒", businessType = BusinessType.UPDATE)
@PostMapping("/manualHandle")
@ResponseBody
public AjaxResult manualHandleSave(SysRemind sysRemind)
{
return toAjax(sysRemindService.updateManualHandleSysRemind(sysRemind));
}
/**
* 修改系统提醒
*/
@GetMapping("/edit/{remindId}")
public String edit(@PathVariable("remindId") Long remindId, ModelMap mmap)
{
SysRemind sysRemind = sysRemindService.selectSysRemindById(remindId);
mmap.put("sysRemind", sysRemind);
return prefix + "/edit";
}
/**
* 修改保存系统提醒
*/
@Log(title = "系统提醒", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(SysRemind sysRemind)
{
return toAjax(sysRemindService.updateSysRemind(sysRemind));
}
/**
* 修改系统提醒详情
*/
@GetMapping("/detail/{remindId}")
public String detail(@PathVariable("remindId") Long remindId, ModelMap mmap)
{
SysRemind sysRemind = sysRemindService.selectSysRemindById(remindId);
mmap.put("sysRemind", sysRemind);
return prefix + "/detail";
}
/**
* 修改保存系统提醒详情
*/
@Log(title = "系统提醒", businessType = BusinessType.UPDATE)
@PostMapping("/detail")
@ResponseBody
public AjaxResult detailSave(SysRemind sysRemind)
{
return toAjax(sysRemindService.detailSysRemind(sysRemind));
}
/**
* 删除系统提醒
*/
@Log(title = "系统提醒", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(sysRemindService.deleteSysRemindByIds(ids));
}
/**
* 作废系统提醒
*/
@Log(title = "系统提醒", businessType = BusinessType.CANCEL)
@GetMapping( "/cancel/{id}")
@ResponseBody
public AjaxResult cancel(@PathVariable("id") Long id){
return toAjax(sysRemindService.cancelSysRemindById(id));
}
/**
* 恢复系统提醒
*/
@Log(title = "系统提醒", businessType = BusinessType.RESTORE)
@GetMapping( "/restore/{id}")
@ResponseBody
public AjaxResult restore(@PathVariable("id")Long id)
{
return toAjax(sysRemindService.restoreSysRemindById(id));
}
/**
* 查询所有接收人
* */
@PostMapping("/getAllReceiverUser")
@ResponseBody
public TableDataInfo getAllReceiverUser() {
startPage();
List<SysUser> sysUsers = sysUserService.selectUserAll();
return getDataTable(sysUsers);
}
}

279
ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysRemind.java

@ -0,0 +1,279 @@
package com.ruoyi.system.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 系统提醒对象 sys_remind
*
* @author 刘晓旭
* @date 2024-12-20
*/
public class SysRemind extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 提醒表Id */
private Long remindId;
/** 提醒人ID */
private Long remindUserId;
/** 提醒人 */
@Excel(name = "提醒人")
private String remindUser;
/** 提醒人部门ID */
private Long remindDeptId;
/** 接受人ID */
private Long receiverUserId;
/** 接受人 */
@Excel(name = "接受人")
private String receiverUser;
/** 接受人部门ID */
private Long receiverDeptId;
/** 处理人ID */
private Long handleUserId;
/** 处理人 */
@Excel(name = "处理人")
private String handleUser;
/** 处理人部门ID */
private Long handleDeptId;
/** 提醒时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "提醒时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date remindTime;
/** 处理时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date handleTime;
/** 提醒内容 */
@Excel(name = "提醒内容")
private String remindContent;
/** 与各个业务模块关联的唯一索引*/
private String businessKey;
/** 模块名称 存储的数据来自BusinessKeysConstants常量类 */
private String module;
/** 模块url */
@Excel(name = "模块url")
private String moduleUrl;
/** 是否查看 default 0 (0 否 1 是) */
@Excel(name = "是否查看",dictType = "yes_or_no")
private String isView;
/** 是否处理 default 0 (0 否 1 是) */
@Excel(name = "是否处理",dictType = "yes_or_no")
private String isHandle;
public void setRemindId(Long remindId)
{
this.remindId = remindId;
}
public Long getRemindId()
{
return remindId;
}
public void setRemindUserId(Long remindUserId)
{
this.remindUserId = remindUserId;
}
public Long getRemindUserId()
{
return remindUserId;
}
public void setRemindUser(String remindUser)
{
this.remindUser = remindUser;
}
public String getRemindUser()
{
return remindUser;
}
public void setRemindDeptId(Long remindDeptId)
{
this.remindDeptId = remindDeptId;
}
public Long getRemindDeptId()
{
return remindDeptId;
}
public void setReceiverUserId(Long receiverUserId)
{
this.receiverUserId = receiverUserId;
}
public Long getReceiverUserId()
{
return receiverUserId;
}
public void setReceiverUser(String receiverUser)
{
this.receiverUser = receiverUser;
}
public String getReceiverUser()
{
return receiverUser;
}
public void setReceiverDeptId(Long receiverDeptId)
{
this.receiverDeptId = receiverDeptId;
}
public Long getReceiverDeptId()
{
return receiverDeptId;
}
public Long getHandleUserId() {
return handleUserId;
}
public void setHandleUserId(Long handleUserId) {
this.handleUserId = handleUserId;
}
public String getHandleUser() {
return handleUser;
}
public void setHandleUser(String handleUser) {
this.handleUser = handleUser;
}
public Long getHandleDeptId() {
return handleDeptId;
}
public void setHandleDeptId(Long handleDeptId) {
this.handleDeptId = handleDeptId;
}
public void setRemindTime(Date remindTime)
{
this.remindTime = remindTime;
}
public Date getRemindTime()
{
return remindTime;
}
public void setHandleTime(Date handleTime)
{
this.handleTime = handleTime;
}
public Date getHandleTime()
{
return handleTime;
}
public void setRemindContent(String remindContent)
{
this.remindContent = remindContent;
}
public String getRemindContent()
{
return remindContent;
}
public String getBusinessKey() {
return businessKey;
}
public void setBusinessKey(String businessKey) {
this.businessKey = businessKey;
}
public void setModule(String module)
{
this.module = module;
}
public String getModule()
{
return module;
}
public void setModuleUrl(String moduleUrl)
{
this.moduleUrl = moduleUrl;
}
public String getModuleUrl()
{
return moduleUrl;
}
public void setIsView(String isView)
{
this.isView = isView;
}
public String getIsView()
{
return isView;
}
public void setIsHandle(String isHandle)
{
this.isHandle = isHandle;
}
public String getIsHandle()
{
return isHandle;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("remindId", getRemindId())
.append("remindUserId", getRemindUserId())
.append("remindUser", getRemindUser())
.append("remindDeptId", getRemindDeptId())
.append("receiverUserId", getReceiverUserId())
.append("receiverUser", getReceiverUser())
.append("receiverDeptId", getReceiverDeptId())
.append("handleUserId", getHandleUserId())
.append("handleUser", getHandleUser())
.append("handleDeptId", getHandleDeptId())
.append("remindTime", getRemindTime())
.append("handleTime", getHandleTime())
.append("remindContent", getRemindContent())
.append("businessKey", getBusinessKey())
.append("module", getModule())
.append("moduleUrl", getModuleUrl())
.append("isView", getIsView())
.append("isHandle", getIsHandle())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

86
ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysRemindMapper.java

@ -0,0 +1,86 @@
package com.ruoyi.system.mapper;
import java.util.List;
import java.util.Map;
import com.ruoyi.system.domain.SysRemind;
/**
* 系统提醒Mapper接口
*
* @author 刘晓旭
* @date 2024-12-20
*/
public interface SysRemindMapper
{
/**
* 查询系统提醒
*
* @param remindId 系统提醒ID
* @return 系统提醒
*/
public SysRemind selectSysRemindById(Long remindId);
/**
* 查询系统提醒列表
*
* @param sysRemind 系统提醒
* @return 系统提醒集合
*/
public List<SysRemind> selectSysRemindList(SysRemind sysRemind);
/**
* 新增系统提醒
*
* @param sysRemind 系统提醒
* @return 结果
*/
public int insertSysRemind(SysRemind sysRemind);
/**
* 修改系统提醒
*
* @param sysRemind 系统提醒
* @return 结果
*/
public int updateSysRemind(SysRemind sysRemind);
/**
* 删除系统提醒
*
* @param remindId 系统提醒ID
* @return 结果
*/
public int deleteSysRemindById(Long remindId);
/**
* 批量删除系统提醒
*
* @param remindIds 需要删除的数据ID
* @return 结果
*/
public int deleteSysRemindByIds(String[] remindIds);
/**
* 作废系统提醒
*
* @param remindId 系统提醒ID
* @return 结果
*/
public int cancelSysRemindById(Long remindId);
/**
* 恢复系统提醒
*
* @param remindId 系统提醒ID
* @return 结果
*/
public int restoreSysRemindById(Long remindId);
List<SysRemind> selectUnHandleSysRemindList(Map<String, Object> paraMap);
/**
* 根据业务主键查询系统提醒列表
* */
List<SysRemind> selectSysRemindListByBusinessKey(String businessKey);
}

110
ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysRemindService.java

@ -0,0 +1,110 @@
package com.ruoyi.system.service;
import java.util.List;
import java.util.Map;
import com.ruoyi.erp.domain.ErpDevelopModifyorder;
import com.ruoyi.system.domain.SysRemind;
import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry;
/**
* 系统提醒Service接口
*
* @author 刘晓旭
* @date 2024-12-20
*/
public interface ISysRemindService {
/**
* 查询系统提醒
*
* @param remindId 系统提醒ID
* @return 系统提醒
*/
public SysRemind selectSysRemindById(Long remindId);
/**
* 查询系统提醒列表
*
* @param sysRemind 系统提醒
* @return 系统提醒集合
*/
public List<SysRemind> selectSysRemindList(SysRemind sysRemind);
/**
* 新增系统提醒
*
* @param sysRemind 系统提醒
* @return 结果
*/
public int insertSysRemind(SysRemind sysRemind);
/**
* 修改系统提醒
*
* @param sysRemind 系统提醒
* @return 结果
*/
public int updateSysRemind(SysRemind sysRemind);
/**
* 批量删除系统提醒
*
* @param ids 需要删除的数据ID
* @return 结果
*/
public int deleteSysRemindByIds(String ids);
/**
* 删除系统提醒信息
*
* @param remindId 系统提醒ID
* @return 结果
*/
public int deleteSysRemindById(Long remindId);
/**
* 作废系统提醒
*
* @param remindId 系统提醒ID
* @return
*/
int cancelSysRemindById(Long remindId);
/**
* 恢复系统提醒
*
* @param remindId 系统提醒ID
* @return
*/
int restoreSysRemindById(Long remindId);
/**
* 查询待处理的提醒项列表
*/
List<SysRemind> selectUnHandleSysRemindList(Map<String, Object> paraMap);
/**
* 通用保存系统提醒详情
*/
int detailSysRemind(SysRemind sysRemind);
/**
* 手动处理系统提醒
*/
int updateManualHandleSysRemind(SysRemind sysRemind);
/**
* 仓库安全库存提醒
* */
int warehouseSafetyStockRemind(WarehouseInventoryInquiry warehouseInventoryInquiry);
/**
* 开发修改单通知人提醒
* */
int erpDevelopModifyorderRemind(ErpDevelopModifyorder erpDevelopModifyorder);
/**
* 根据业务主键查询提醒列表
* */
List<SysRemind> selectSysRemindListByBusinessKey(String businessKey);
}

7
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderPickServiceImpl.java

@ -20,6 +20,7 @@ import com.ruoyi.system.mapper.SysMakeorderPickMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysMakeorderPickDetailService;
import com.ruoyi.system.service.ISysMakeorderPickService;
import com.ruoyi.system.service.ISysRemindService;
import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry;
import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService;
@ -74,6 +75,9 @@ public class SysMakeorderPickServiceImpl implements ISysMakeorderPickService
@Autowired
private IWarehouseInventoryInquiryService inventoryInquiryService;
@Autowired
private ISysRemindService remindService;
/**
* 查询生产领料单
*
@ -281,6 +285,8 @@ public class SysMakeorderPickServiceImpl implements ISysMakeorderPickService
throw new BusinessException("更新库存信息失败");
}
remindService.warehouseSafetyStockRemind(inventoryInquiry);
int insertMakeorderPickDetailResult = makeorderPickDetailService.insertSysMakeorderPickDetail(pickDetail);
if (insertMakeorderPickDetailResult <= 0){
throw new BusinessException("新增生产领料单详情失败");
@ -501,6 +507,7 @@ public class SysMakeorderPickServiceImpl implements ISysMakeorderPickService
throw new BusinessException("更新库存信息失败");
}
remindService.warehouseSafetyStockRemind(inventoryInquiry);
int updateMakeorderPickDetailResult = makeorderPickDetailService.updateSysMakeorderPickDetail(pickDetail);
if (updateMakeorderPickDetailResult <= 0){
throw new BusinessException("更新生产领料单详情失败");

266
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysRemindServiceImpl.java

@ -0,0 +1,266 @@
package com.ruoyi.system.service.impl;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.ruoyi.common.constant.BusinessKeysConstants;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.erp.domain.ErpDevelopModifyorder;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderRemindVo;
import com.ruoyi.erp.service.IErpDevelopModifyorderService;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.SysRemindMapper;
import com.ruoyi.system.domain.SysRemind;
import com.ruoyi.system.service.ISysRemindService;
import com.ruoyi.common.core.text.Convert;
/**
* 系统提醒Service业务层处理
*
* @author 刘晓旭
* @date 2024-12-20
*/
@Service
public class SysRemindServiceImpl implements ISysRemindService {
@Autowired
private SysRemindMapper sysRemindMapper;
@Autowired
private ISysUserService sysUserService;
@Autowired
private ISysDeptService sysDeptService;
@Autowired
private IErpDevelopModifyorderService developModifyorderService;
/**
* 查询系统提醒
*
* @param remindId 系统提醒ID
* @return 系统提醒
*/
@Override
public SysRemind selectSysRemindById(Long remindId) {
return sysRemindMapper.selectSysRemindById(remindId);
}
/**
* 查询系统提醒列表
*
* @param sysRemind 系统提醒
* @return 系统提醒
*/
@Override
public List<SysRemind> selectSysRemindList(SysRemind sysRemind) {
return sysRemindMapper.selectSysRemindList(sysRemind);
}
/**
* 查询未处理系统提醒列表
*
* @param paraMap 系统提醒
* @return 系统提醒
*/
@Override
public List<SysRemind> selectUnHandleSysRemindList(Map<String, Object> paraMap) {
List<SysRemind> list = sysRemindMapper.selectUnHandleSysRemindList(paraMap);
return list;
}
/**
* 根据业务主键查询系统提醒列表
*
* @param businessKey 系统提醒
* @return 系统提醒
*/
@Override
public List<SysRemind> selectSysRemindListByBusinessKey(String businessKey) {
List<SysRemind> list = sysRemindMapper.selectSysRemindListByBusinessKey(businessKey);
return list;
}
/**
* 新增系统提醒
*
* @param sysRemind 系统提醒
* @return 结果
*/
@Override
public int insertSysRemind(SysRemind sysRemind) {
String loginName = ShiroUtils.getLoginName();
sysRemind.setCreateBy(loginName);
sysRemind.setCreateTime(DateUtils.getNowDate());
return sysRemindMapper.insertSysRemind(sysRemind);
}
/**
* 修改系统提醒
*
* @param sysRemind 系统提醒
* @return 结果
*/
@Override
public int updateSysRemind(SysRemind sysRemind) {
String loginName = ShiroUtils.getLoginName();
sysRemind.setUpdateBy(loginName);
sysRemind.setUpdateTime(DateUtils.getNowDate());
return sysRemindMapper.updateSysRemind(sysRemind);
}
/**
* 手动处理系统提醒
*/
@Override
public int updateManualHandleSysRemind(SysRemind sysRemind) {
String loginName = ShiroUtils.getLoginName();
sysRemind.setHandleTime(DateUtils.getNowDate());
sysRemind.setIsHandle("1");
sysRemind.setIsView("1");
sysRemind.setHandleUser(loginName);
sysRemind.setUpdateBy(loginName);
sysRemind.setUpdateTime(DateUtils.getNowDate());
return sysRemindMapper.updateSysRemind(sysRemind);
}
/**
* 通用保存系统详情
*/
@Override
public int detailSysRemind(SysRemind sysRemind) {
return 1;
}
/**
* 删除系统提醒对象
*
* @param ids 需要删除的数据ID
* @return 结果
*/
@Override
public int deleteSysRemindByIds(String ids) {
return sysRemindMapper.deleteSysRemindByIds(Convert.toStrArray(ids));
}
/**
* 删除系统提醒信息
*
* @param remindId 系统提醒ID
* @return 结果
*/
@Override
public int deleteSysRemindById(Long remindId) {
return sysRemindMapper.deleteSysRemindById(remindId);
}
/**
* 作废系统提醒
*
* @param remindId 系统提醒ID
* @return 结果
*/
@Override
public int cancelSysRemindById(Long remindId) {
return sysRemindMapper.cancelSysRemindById(remindId);
}
/**
* 恢复系统提醒信息
*
* @param remindId 系统提醒ID
* @return 结果
*/
@Override
public int restoreSysRemindById(Long remindId) {
return sysRemindMapper.restoreSysRemindById(remindId);
}
/**
* 仓库安全库存提醒
*/
@Override
public int warehouseSafetyStockRemind(WarehouseInventoryInquiry warehouseInventoryInquiry) {
int insertSysRemind = 0;
String deptNumber = "MFG";
SysDept sysDept = sysDeptService.selectDeptByDeptNumber(deptNumber);
Long deptId = sysDept.getDeptId();
List<SysUser> sysUsers = sysUserService.selectUserByDeptId(deptId);
Integer availableStockNum = warehouseInventoryInquiry.getAvailableStockNum();
Integer safetyStockNum = warehouseInventoryInquiry.getSafetyStockNum();
String materialNo = warehouseInventoryInquiry.getMaterialNo();
String materialName = warehouseInventoryInquiry.getMaterialName();
if (availableStockNum < safetyStockNum) {
for (SysUser sysUser : sysUsers) {
// 提醒
SysRemind sysRemind = new SysRemind();
sysRemind.setBusinessKey(materialNo);
sysRemind.setReceiverUserId(sysUser.getUserId());
sysRemind.setReceiverUser(sysUser.getLoginName());
sysRemind.setReceiverDeptId(deptId);
sysRemind.setRemindContent("物料编号:" + materialNo + "物料名称:" + materialName + "库存数量:" + availableStockNum + "安全库存数量:" + safetyStockNum + ",库存数量低于安全库存数量,请及时处理!");
sysRemind.setRemindTime(new Date());
sysRemind.setModule(BusinessKeysConstants.WAREHOUSE_INQUIRY);
sysRemind.setModuleUrl("warehouse/inventoryInquiry");
sysRemind.setIsView("0");
sysRemind.setIsHandle("0");
sysRemind.setCreateBy(ShiroUtils.getLoginName());
sysRemind.setCreateTime(DateUtils.getNowDate());
insertSysRemind += sysRemindMapper.insertSysRemind(sysRemind);
if (insertSysRemind <= 0) {
throw new BusinessException("插入系统提醒失败,未影响任何行");
}
}
}
return insertSysRemind;
}
/**
* 开发修改单通知人提醒
*/
@Override
public int erpDevelopModifyorderRemind(ErpDevelopModifyorder erpDevelopModifyorder) {
String loginName = ShiroUtils.getLoginName();
int insertSysRemind = 0;
List<ErpDevelopModifyorderRemindVo> modifyorderRemindVos = erpDevelopModifyorder.getModifyorderRemindVos();
String developOrderCode = erpDevelopModifyorder.getDevelopOrderCode();
for (ErpDevelopModifyorderRemindVo modifyorderRemindVo : modifyorderRemindVos) {
// 提醒
SysRemind sysRemind = new SysRemind();
sysRemind.setBusinessKey(developOrderCode);
sysRemind.setReceiverUser(modifyorderRemindVo.getReceiverUser());
sysRemind.setRemindUser(loginName);
sysRemind.setRemindContent("开发修改单编号:" + developOrderCode + ",进行修改物料,请及时处理!");
sysRemind.setRemindTime(new Date());
sysRemind.setModule(BusinessKeysConstants.ERP_DEVELOPMENT_MODIFY);
sysRemind.setModuleUrl("erp/developModifyOrder");
sysRemind.setIsView("0");
sysRemind.setIsHandle("0");
sysRemind.setCreateBy(ShiroUtils.getLoginName());
sysRemind.setCreateTime(DateUtils.getNowDate());
insertSysRemind += sysRemindMapper.insertSysRemind(sysRemind);
if (insertSysRemind <= 0) {
throw new BusinessException("插入系统提醒失败,未影响任何行");
}
}
return insertSysRemind;
}
}

6
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java

@ -34,6 +34,7 @@ import com.ruoyi.system.dto.ExportShippingInvoiceDto;
import com.ruoyi.system.dto.ExportShippingOrderDto;
import com.ruoyi.system.dto.ExportShippingPackingDto;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.ISysRemindService;
import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry;
import com.ruoyi.warehouse.domain.WarehouseOutOrder;
import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryMapper;
@ -90,6 +91,9 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
@Autowired
private WarehouseInventoryInquiryMapper inventoryInquiryMapper;
@Autowired
private ISysRemindService remindService;
/**
* 查询销售出货通知
*
@ -320,6 +324,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
throw new BusinessException("更新库存查询记录失败");
}
remindService.warehouseSafetyStockRemind(inventoryInquiry);
sysSalesShippingInformDetail.setOutOrderCode(outOrderCode);
sysSalesShippingInformDetail.setMaterialNo(sysSalesOrderChild.getMaterialCode());
sysSalesShippingInformDetail.setMaterialName(sysSalesOrderChild.getMaterialName());
@ -466,6 +471,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
if (inventoryUpdateResult<=0){
throw new BusinessException("更新库存查询记录失败");
}
remindService.warehouseSafetyStockRemind(inventoryInquiry);
AfterSalesShippingDevice afterSalesShippingDevice = new AfterSalesShippingDevice();
afterSalesShippingDevice.setMaterialNo(materialNo);

25
ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java

@ -186,4 +186,29 @@ public class WarehouseInventoryInquiryController extends BaseController
return toAjax(warehouseInventoryInquiryService.updateAvailableStock(warehouseInventoryInquiry));
}
/**
* 设置安全库存
* */
@GetMapping("/setSafetyStock/{inventoryInquiryId}")
public String setSafetyStock(@PathVariable("inventoryInquiryId") Long inventoryInquiryId, ModelMap mmap)
{
WarehouseInventoryInquiry warehouseInventoryInquiry = warehouseInventoryInquiryService.showEditAvailableStock(inventoryInquiryId);
mmap.put("warehouseInventoryInquiry", warehouseInventoryInquiry);
return prefix + "/setSafetyStock";
}
/**
* 设置保存安全库存
*/
@Log(title = "仓库库存查询", businessType = BusinessType.UPDATE)
@PostMapping("/setSafetyStock")
@ResponseBody
public AjaxResult setSafetyStockSave(WarehouseInventoryInquiry warehouseInventoryInquiry)
{
return toAjax(warehouseInventoryInquiryService.updateSetSafetyStock(warehouseInventoryInquiry));
}
}

13
ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java

@ -85,6 +85,8 @@ public class WarehouseInventoryInquiry extends BaseEntity
@Excel(name = "可用库存数", sort = 9)
private Integer availableStockNum;
/** 安全库存数*/
private Integer safetyStockNum;
/** 未占用共享可用库存*/
private Integer noOccupancyNum;
@ -272,6 +274,14 @@ public class WarehouseInventoryInquiry extends BaseEntity
this.availableStockNum = availableStockNum;
}
public Integer getSafetyStockNum() {
return safetyStockNum;
}
public void setSafetyStockNum(Integer safetyStockNum) {
this.safetyStockNum = safetyStockNum;
}
public Integer getNoOccupancyNum() {
return noOccupancyNum;
}
@ -386,8 +396,9 @@ public class WarehouseInventoryInquiry extends BaseEntity
.append("lockStockNum", getLockStockNum())
.append("stockLossesNum", getStockLossesNum())
.append("availableStockNum", getAvailableStockNum())
.append("safetyStockNum", getSafetyStockNum())
.append("noOccupancyNum", getNoOccupancyNum())
.append("editStockNum", getEditStockNum())
.append("editStockNum", getEditStockNum())
.append("inventoryEditType", getInventoryEditType())
.append("attributionAvailableStockNum", getAttributionAvailableStockNum())
.append("noattributionAvailableStockNum", getNoattributionAvailableStockNum())

5
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java

@ -112,4 +112,9 @@ public interface IWarehouseInventoryInquiryService {
* 修改保存库存履历
* */
int updateWarehouseInventoryHistory(WarehouseInventoryInquiry warehouseInventoryInquiry);
/**
* 修改保存安全库存
* */
int updateSetSafetyStock(WarehouseInventoryInquiry warehouseInventoryInquiry);
}

13
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java

@ -1,6 +1,7 @@
package com.ruoyi.warehouse.service.impl;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@ -302,7 +303,17 @@ public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventory
@Override
public int updateWarehouseInventoryHistory(WarehouseInventoryInquiry warehouseInventoryInquiry) {
return 1;
}
/**
* 修改保存安全库存
* */
@Override
public int updateSetSafetyStock(WarehouseInventoryInquiry warehouseInventoryInquiry) {
warehouseInventoryInquiry.setUpdateBy(ShiroUtils.getLoginName());
warehouseInventoryInquiry.setUpdateTime(new Date());
return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(warehouseInventoryInquiry);
}
}

4
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java

@ -27,6 +27,7 @@ import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.Vo.BaseEmpRequisiteOrderVO;
import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.ISysRemindService;
import com.ruoyi.warehouse.domain.*;
import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryDetailMapper;
import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryMapper;
@ -112,6 +113,8 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService
@Autowired
private AfterSalesShippingDeviceMapper shippingDeviceMapper;
@Autowired
private ISysRemindService sysRemindService;
/**
* 查询仓库出库单
@ -584,6 +587,7 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService
inventoryInquiry.setUpdateTime(DateUtils.getNowDate());
int inquiryUpdateResult = inventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry);
sysRemindService.warehouseSafetyStockRemind(inventoryInquiry);
return inquiryUpdateResult;
}

10
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java

@ -29,6 +29,7 @@ import com.ruoyi.quality.service.IQualityOrderService;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.ISysMakeOrderService;
import com.ruoyi.system.service.ISysRemindService;
import com.ruoyi.system.service.ISysSalesOrderService;
import com.ruoyi.warehouse.domain.*;
import com.ruoyi.warehouse.mapper.*;
@ -131,6 +132,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
@Autowired
private SysMakeorderPickMapper makeorderPickMapper;
@Autowired
private ISysRemindService remindService;
/**
* 查询仓库入库单
*
@ -773,6 +777,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
throw new BusinessException("更新库存查询记录失败!");
}
remindService.warehouseSafetyStockRemind(oldWarehouseInventoryInquiry);
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail.setMaterialNo(materialNo);
inquiryDetail.setInquiryWarehouseType("0");//采购入库
@ -821,6 +827,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
throw new BusinessException("更新库存查询记录失败!");
}
remindService.warehouseSafetyStockRemind(oldWarehouseInventoryInquiry);
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail.setMaterialNo(materialNo);
inquiryDetail.setInquiryWarehouseType("0");//采购入库
@ -1861,6 +1869,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
inquiry.setUpdateBy(ShiroUtils.getLoginName());
inquiry.setUpdateTime(DateUtils.getNowDate());
remindService.warehouseSafetyStockRemind(inquiry);
return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(inquiry);
}
}

19
ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteMapper.xml

@ -123,14 +123,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and p.create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if>
<if test="auditStatus != null and auditStatus != ''"> and p.audit_status = #{auditStatus}</if>
<if test="useStatus != null and useStatus != ''"> and p.use_status = #{useStatus}</if>
<if test="instanceId != null and instanceId != ''"> and p.instance_id = #{instanceId}</if>
<if test="instanceType != null and instanceType != ''"> and p.instance_type = #{instanceType}</if>
<if test="submitInstanceId != null and submitInstanceId != ''"> and p.submit_instance_id = #{submitInstanceId}</if>
<if test="cancelInstanceId != null and cancelInstanceId != ''"> and p.cancel_instance_id = #{cancelInstanceId}</if>
<if test="restoreInstanceId != null and restoreInstanceId != ''"> and p.restore_instance_id = #{restoreInstanceId}</if>
<if test="applyTitle != null and applyTitle != ''"> and p.apply_title = #{applyTitle}</if>
<if test="applyUser != null and applyUser != ''"> and p.apply_user = #{applyUser}</if>
<if test="applyTime != null "> and p.apply_time = #{applyTime}</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''">
and p.create_time between #{params.beginCreateTime} and #{params.endCreateTime}
</if>
@ -165,6 +157,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where audit_status = '1' and use_status = '1'
</select>
<select id="selectPurchaseQuoteListByCodes" parameterType="String" resultMap="PurchaseQuoteResult">
<include refid="selectPurchaseQuoteVo"/>
<where>
purchase_quote_code in
<foreach collection="array" item="purchaseQuoteCode" open="(" close=")" separator=",">
#{purchaseQuoteCode}
</foreach>
</where>
</select>
<insert id="insertPurchaseQuote" parameterType="PurchaseQuote" useGeneratedKeys="true" keyProperty="purchaseQuoteId">
insert into purchase_quote
<trim prefix="(" suffix=")" suffixOverrides=",">

163
ruoyi-admin/src/main/resources/mapper/system/SysRemindMapper.xml

@ -0,0 +1,163 @@
<?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.ruoyi.system.mapper.SysRemindMapper">
<resultMap type="SysRemind" id="SysRemindResult">
<result property="remindId" column="remind_id" />
<result property="remindUserId" column="remind_user_id" />
<result property="remindUser" column="remind_user" />
<result property="remindDeptId" column="remind_dept_id" />
<result property="receiverUserId" column="receiver_user_id" />
<result property="receiverUser" column="receiver_user" />
<result property="receiverDeptId" column="receiver_dept_id" />
<result property="handleUserId" column="handle_user_id" />
<result property="handleUser" column="handle_user" />
<result property="handleDeptId" column="handle_dept_id" />
<result property="remindTime" column="remind_time" />
<result property="handleTime" column="handle_time" />
<result property="remindContent" column="remind_content" />
<result property="businessKey" column="business_key" />
<result property="module" column="module" />
<result property="moduleUrl" column="module_url" />
<result property="isView" column="is_view" />
<result property="isHandle" column="is_handle" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectSysRemindVo">
select remind_id, remind_user_id, remind_user, remind_dept_id, receiver_user_id, receiver_user, receiver_dept_id, handle_user_id, handle_user, handle_dept_id,remind_time, handle_time, remind_content, business_key, module, module_url, is_view, is_handle, create_by, create_time, update_by, update_time, remark from sys_remind
</sql>
<select id="selectSysRemindList" parameterType="SysRemind" resultMap="SysRemindResult">
<include refid="selectSysRemindVo"/>
<where>
<if test="isView != null and isView != ''"> and is_view = #{isView}</if>
<if test="isHandle != null and isHandle != ''"> and is_handle = #{isHandle}</if>
<if test="createTime != null "> and create_time = #{createTime}</if>
</where>
order by create_time desc
</select>
<select id="selectSysRemindById" parameterType="Long" resultMap="SysRemindResult">
<include refid="selectSysRemindVo"/>
where remind_id = #{remindId}
</select>
<select id="selectUnHandleSysRemindList" parameterType="map" resultMap="SysRemindResult">
<include refid="selectSysRemindVo"/>
where receiver_user = #{receiverUser} and is_handle = #{isHandle}
order by create_time desc
</select>
<select id="selectSysRemindListByBusinessKey" parameterType="String" resultMap="SysRemindResult">
<include refid="selectSysRemindVo"/>
where business_key = #{businessKey}
</select>
<insert id="insertSysRemind" parameterType="SysRemind" useGeneratedKeys="true" keyProperty="remindId">
insert into sys_remind
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="remindUserId != null">remind_user_id,</if>
<if test="remindUser != null">remind_user,</if>
<if test="remindDeptId != null">remind_dept_id,</if>
<if test="receiverUserId != null">receiver_user_id,</if>
<if test="receiverUser != null">receiver_user,</if>
<if test="receiverDeptId != null">receiver_dept_id,</if>
<if test="handleUserId != null">handle_user_id,</if>
<if test="handleUser != null">handle_user,</if>
<if test="handleDeptId != null">handle_dept_id,</if>
<if test="remindTime != null">remind_time,</if>
<if test="handleTime != null">handle_time,</if>
<if test="remindContent != null">remind_content,</if>
<if test="businessKey != null">business_key,</if>
<if test="module != null">module,</if>
<if test="moduleUrl != null">module_url,</if>
<if test="isView != null">is_view,</if>
<if test="isHandle != null">is_handle,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="remindUserId != null">#{remindUserId},</if>
<if test="remindUser != null">#{remindUser},</if>
<if test="remindDeptId != null">#{remindDeptId},</if>
<if test="receiverUserId != null">#{receiverUserId},</if>
<if test="receiverUser != null">#{receiverUser},</if>
<if test="receiverDeptId != null">#{receiverDeptId},</if>
<if test="handleUserId != null">#{handleUserId},</if>
<if test="handleUser != null">#{handleUser},</if>
<if test="handleDeptId != null">#{handleDeptId},</if>
<if test="remindTime != null">#{remindTime},</if>
<if test="handleTime != null">#{handleTime},</if>
<if test="remindContent != null">#{remindContent},</if>
<if test="businessKey != null">#{businessKey},</if>
<if test="module != null">#{module},</if>
<if test="moduleUrl != null">#{moduleUrl},</if>
<if test="isView != null">#{isView},</if>
<if test="isHandle != null">#{isHandle},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateSysRemind" parameterType="SysRemind">
update sys_remind
<trim prefix="SET" suffixOverrides=",">
<if test="remindUserId != null">remind_user_id = #{remindUserId},</if>
<if test="remindUser != null">remind_user = #{remindUser},</if>
<if test="remindDeptId != null">remind_dept_id = #{remindDeptId},</if>
<if test="receiverUserId != null">receiver_user_id = #{receiverUserId},</if>
<if test="receiverUser != null">receiver_user = #{receiverUser},</if>
<if test="receiverDeptId != null">receiver_dept_id = #{receiverDeptId},</if>
<if test="handleUserId != null">handle_user_id = #{handleUserId},</if>
<if test="handleUser != null">handle_user = #{handleUser},</if>
<if test="handleDeptId != null">handle_dept_id = #{handleDeptId},</if>
<if test="remindTime != null">remind_time = #{remindTime},</if>
<if test="handleTime != null">handle_time = #{handleTime},</if>
<if test="remindContent != null">remind_content = #{remindContent},</if>
<if test="businessKey != null">business_key = #{businessKey},</if>
<if test="module != null">module = #{module},</if>
<if test="moduleUrl != null">module_url = #{moduleUrl},</if>
<if test="isView != null">is_view = #{isView},</if>
<if test="isHandle != null">is_handle = #{isHandle},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where remind_id = #{remindId}
</update>
<delete id="deleteSysRemindById" parameterType="Long">
delete from sys_remind where remind_id = #{remindId}
</delete>
<delete id="deleteSysRemindByIds" parameterType="String">
delete from sys_remind where remind_id in
<foreach item="remindId" collection="array" open="(" separator="," close=")">
#{remindId}
</foreach>
</delete>
<update id="cancelSysRemindById" parameterType="Long">
update sys_remind set del_flag = '1' where remind_id = #{remindId}
</update>
<update id="restoreSysRemindById" parameterType="Long">
update sys_remind set del_flag = '0' where remind_id = #{remindId}
</update>
</mapper>

6
ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml

@ -23,6 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="fixedAvailableStockNum" column="fixed_available_stock_num" />
<result property="stockLossesNum" column="stock_losses_num" />
<result property="availableStockNum" column="available_stock_num" />
<result property="safetyStockNum" column="safety_stock_num" />
<result property="noOccupancyNum" column="no_occupancy_num" />
<result property="editStockNum" column="edit_stock_num" />
<result property="inventoryEditType" column="inventory_edit_type" />
@ -43,7 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
material_photoUrl, material_brand, material_unit, material_describe,
material_process_method, material_model, material_specification,warehouse_dept,
historical_total, shared_available_stock_num, lock_stock_num, fixed_available_stock_num,
stock_losses_num,available_stock_num, attribution_available_stock_num,
stock_losses_num,available_stock_num, safety_stock_num, attribution_available_stock_num,
no_occupancy_num, inventory_edit_type, edit_stock_num,
noattribution_available_stock_num, use_num, report_damage_num, material_use_status,
remark, create_time, create_by, update_by, update_time
@ -98,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fixedAvailableStockNum != null">fixed_available_stock_num,</if>
<if test="stockLossesNum != null">stock_losses_num,</if>
<if test="availableStockNum != null">available_stock_num,</if>
<if test="safetyStockNum != null">safety_stock_num,</if>
<if test="noOccupancyNum != null">no_occupancy_num,</if>
<if test="editStockNum != null">edit_stock_num,</if>
<if test="inventoryEditType != null">inventory_edit_type,</if>
@ -130,6 +132,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fixedAvailableStockNum != null">#{fixedAvailableStockNum},</if>
<if test="stockLossesNum != null">#{stockLossesNum},</if>
<if test="availableStockNum != null">#{availableStockNum},</if>
<if test="safetyStockNum != null">#{safetyStockNum},</if>
<if test="noOccupancyNum != null">#{noOccupancyNum},</if>
<if test="editStockNum != null">#{editStockNum},</if>
<if test="inventoryEditType != null">#{inventoryEditType},</if>
@ -166,6 +169,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fixedAvailableStockNum != null">fixed_available_stock_num = #{fixedAvailableStockNum},</if>
<if test="stockLossesNum != null">stock_losses_num = #{stockLossesNum},</if>
<if test="availableStockNum != null">available_stock_num = #{availableStockNum},</if>
<if test="safetyStockNum != null">safety_stock_num = #{safetyStockNum},</if>
<if test="noOccupancyNum != null">no_occupancy_num = #{noOccupancyNum},</if>
<if test="editStockNum != null">edit_stock_num = #{editStockNum},</if>
<if test="inventoryEditType != null">inventory_edit_type = #{inventoryEditType},</if>

155
ruoyi-admin/src/main/resources/templates/erp/developModifyOrder/add.html

@ -73,21 +73,21 @@
</div>
</div>
</div>
<!-- <div class="container">-->
<!-- <div class="form-row">-->
<!-- <div class="btn-group-sm" role="group">-->
<!-- <span>选择通知人</span>-->
<!-- <a class="btn btn-success" onclick="insertBiztoitem()">-->
<!-- <i class="fa fa-plus"></i> 添加通知人-->
<!-- </a>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="row">-->
<!-- <div class="col-sm-12 select-table table-striped">-->
<!-- <table id="bootstrap-table-biztoitem"></table>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<div class="container">
<div class="form-row">
<div class="btn-group-sm" role="group">
<span>选择通知人</span>
<a class="btn btn-success" onclick="insertRemindPeople()">
<i class="fa fa-plus"></i> 添加通知人
</a>
</div>
</div>
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-remindPeople"></table>
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-table-editable-js" />
@ -100,7 +100,7 @@
var levelDatas = [[${@dict.getType('bomLevel')}]];
var bomLevelSelectDatas = [[${@dict.getTypeSelect('bomLevel')}]];
var receiverUserList = [];
var processMethodDatas = [[${@dict.getType('processMethod')}]];
var loginName = [[${@permission.getPrincipalProperty('loginName')}]];
var userName = [[${@permission.getPrincipalProperty('userName')}]];
@ -133,6 +133,9 @@
// 采购修改物料
var purchaseTable = $('#bootstrap-table-purchase').bootstrapTable('getData');
//通知人
var remindPeopleTable = $('#bootstrap-table-remindPeople').bootstrapTable('getData');
// 将表数据转换成与developModifyOrderData格式一致的数组
var developModifyMaterialDataList = developModifyTable.map(function(item) {
// 根据实际字段名调整
@ -169,9 +172,22 @@
};
});
// 将表数据转换成与developModifyOrderData格式一致的数组
var remindPeopleDataList = remindPeopleTable.map(function(item) {
// 根据实际字段名调整
return {
"receiverUser": item.receiverUser,
"handleTime": item.handleTime,
// ...其他字段
};
});
const combinedData = Object.assign({}, developModifyOrderData, {
developModifyorderMaterialVoList: developModifyMaterialDataList,
developModifyorderDetailList:purchaseMaterialDataList,
modifyorderRemindVos:remindPeopleDataList,
beforeUpdateRemark:beforeUpdateRemark,
afterUpdateRemark:afterUpdateRemark
});
@ -725,6 +741,113 @@
// }
$("#userName_add").val(loginName);
// 点击选择添加通知人按钮
function insertRemindPeople() {
var newRow = {
remindId: 'UC_' + new Date().getTime(), // 示例生成唯一ID
receiverUser: '',
handleTime: '',
};
$("#bootstrap-table-remindPeople").bootstrapTable('append', newRow);
}
//物料信息展示列表
$(function() {
var options = {
id:'bootstrap-table-remindPeople',
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
modalName: "选择通知人",
columns: [{
checkbox: true
},
{
title: '提醒表Id',
field: 'remindId',
visible: false
},
{
title: '通知人',
field: 'receiverUser',
align: 'center',
formatter: function(value, row, index) {
return receiverUserFormatter(value, row, index);
}
},
{
title: '确认时间',
field: 'handleTime',
align: 'center',
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="removeRemindPeople(\'' + row.remindId + '\')"><i class="fa fa-remove"></i>删除</a> ');
return actions.join('');
}
}
]
};
$.table.init(options);
})
// 逻辑删除前端的一行数据
function removeRemindPeople(remindId){
$("#bootstrap-table-remindPeople").bootstrapTable('remove', {
field: 'remindId',
values: remindId
})
}
// 获取所有接收人
selectProcessCode();
// 重新初始化下拉框列表
function receiverUserFormatter(value, row, index) {
var selectHtml = '<select class="form-control" onchange="onReceiverUserChange(this, ' + index + ')">';
selectHtml += '<option value=""' + (value === undefined || value === '' || value === null ? ' selected' : '') + '>所有</option>';
receiverUserList.forEach(function(child) {
selectHtml += '<option value="' + child + '"' + (value === child ? ' selected' : '') + '>' + child + '</option>';
});
selectHtml += '</select>';
return selectHtml;
}
// 列中获取接收人的下拉改变数据
function onReceiverUserChange(selectElement, rowIndex) {
var receiverUserValue = $(selectElement).val();
var tableData = $('#bootstrap-table-remindPeople').bootstrapTable('getData');
var newRow = $.extend({}, tableData[rowIndex]); // 深拷贝当前行数据,防止直接修改原始数据
// 更新行数据
newRow.receiverUser = receiverUserValue;
$('#bootstrap-table-remindPeople').bootstrapTable('updateRow', {index: rowIndex, row: newRow});
}
function selectProcessCode(){
$.ajax({
url: ctx + 'system/remind/getAllReceiverUser',
type: "post",
dataType: "json",
success: function(res) {
if (res.rows.length > 0) {
receiverUserList = res.rows.map(function(result) { return result.loginName; });
// 刷新表格以应用新的接收人列表
$('#bootstrap-table-remindPeople').bootstrapTable('refresh');
} else {
$.modal.error("数据为空");
}
}
});
}
</script>
</body>
</html>

70
ruoyi-admin/src/main/resources/templates/erp/developModifyOrder/detail.html

@ -67,21 +67,18 @@
</div>
</div>
</div>
<!-- <div class="container">-->
<!-- <div class="form-row">-->
<!-- <div class="btn-group-sm" role="group">-->
<!-- <span>选择通知人</span>-->
<!-- <a class="btn btn-success" onclick="insertBiztoitem()">-->
<!-- <i class="fa fa-plus"></i> 添加通知人-->
<!-- </a>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="row">-->
<!-- <div class="col-sm-12 select-table table-striped">-->
<!-- <table id="bootstrap-table-biztoitem"></table>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<div class="container">
<div class="form-row">
<div class="btn-group-sm" role="group">
<span>选择通知人</span>
</div>
</div>
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-remindPeople"></table>
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-table-editable-js" />
@ -668,6 +665,49 @@
})
}
//物料信息展示列表
$(function() {
var options = {
id:'bootstrap-table-remindPeople',
url: prefix +'/getErpDevelopRemindPeopleList',
queryParams:remindPeopleParams,
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
modalName: "选择通知人",
columns: [{
checkbox: true
},
{
title: '提醒表Id',
field: 'remindId',
visible: false
},
{
title: '通知人',
field: 'receiverUser',
align: 'center',
},
{
title: '确认时间',
field: 'handleTime',
align: 'center',
},
]
};
$.table.init(options);
})
function remindPeopleParams(params) {
var curParams = {
// 传递参数查询参数
developOrderCode: $("#developOrderCode").val()
};
return curParams;
}
</script>
</body>
</html>

10
ruoyi-admin/src/main/resources/templates/erp/developModifyOrder/developModifyOrder.html

@ -218,11 +218,11 @@
return $.table.selectDictLabel(finshStatusDatas, value);
}
},
{title: '确认状态',field: 'completeStatus',
formatter: function (value, row, index) {
return $.table.selectDictLabel(completeStatusDatas, value);
}
},
// {title: '确认状态',field: 'completeStatus',
// formatter: function (value, row, index) {
// return $.table.selectDictLabel(completeStatusDatas, value);
// }
// },
{title: '采购入库状态',field: 'purchaseStorageStatus',
formatter: function (value, row, index) {
return $.table.selectDictLabel(purchaseStorageStatusDatas, value);

5
ruoyi-admin/src/main/resources/templates/erp/inboundOrder/inboundOrder.html

@ -45,7 +45,7 @@
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-warning" onclick="exportExcel()" shiro:hasPermission="erp:inboundOrder:export">
<a class="btn btn-success" onclick="exportExcel()" shiro:hasPermission="erp:inboundOrder:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
@ -167,7 +167,8 @@
title: '操作', align: 'center',formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="storageMakeDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
return actions.join('');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}
]

9
ruoyi-admin/src/main/resources/templates/erp/materialReturnInspection/materialReturnInspection.html

@ -56,7 +56,7 @@
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="erp:materialReturnInspection:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-warning" onclick="exportExcel()" shiro:hasPermission="erp:materialReturnInspection:export">
<a class="btn btn-success" onclick="exportExcel()" shiro:hasPermission="erp:materialReturnInspection:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
@ -127,10 +127,11 @@
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="detail(\'' + row.id + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a href="javascript:void(0)" onclick="detail(\'' + row.id + '\')"><i class="fa fa-edit"></i>详情</a> ');
return actions.join('');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}]
};

61
ruoyi-admin/src/main/resources/templates/index.html

@ -167,17 +167,14 @@
<h6 class="d-inline-block m-b-0">消息提醒</h6>
<div class="float-right">
<h8>你有<strong id="remindSize"></strong>提醒</h8>
<!-- <a href="javascript:" class="m-r-10">已读</a>-->
<!-- <a href="javascript:">清除全部</a>-->
</div>
</div>
<ul class="noti-body" id="remindList" style="height: 300px;overflow-y: scroll">
<li class="n-title"><p class="m-b-0">新的提醒</p></li>
<!-- <li class="n-title"><p class="m-b-0">更早之前</p></li>-->
</ul>
<div class="noti-footer">
<a href="/remind"><i class="feather icon-bell"></i>查看全部</a>
</div>
<ul class="noti-footer">
<a href="/system/remind" class="dropdown-item menuItem"><i class="feather icon-bell"></i>查看全部</a>
</ul>
</div>
</div>
</li>
@ -199,8 +196,7 @@
<ul class="pro-body">
<!--<li><a href="javascript:" class="dropdown-item menuItem"><i class="feather icon-settings"></i>个人中心</a></li>-->
<li><a href="/system/user/profile" class="dropdown-item menuItem"><i class="feather icon-user"></i>个人中心</a></li>
<!-- <li><a href="/flow/requestitem" class="dropdown-item menuItem"><i class="feather icon-mail"></i>我的请求</a></li>-->
<li><a href="/remind" class="dropdown-item menuItem"><i class="feather icon-bell"></i>我的提醒</a></li>
<li><a href="/system/remind" class="dropdown-item menuItem" id="remindBadge2"><i class="feather icon-bell"></i>我的提醒</a></li>
<li><a href="/process/todoitem" class="dropdown-item menuItem" id="todoBadge2"><i class="fa fa-rocket"></i>我的待办</a></li>
<li><a href="/process/todoitem/doneitemView" class="dropdown-item menuItem" id="todoBadge3"><i class="fa fa-fighter-jet"></i>我的已办</a></li>
</ul>
@ -423,40 +419,45 @@
//获取我的提醒
function getRemind() {
$.ajax({
url: ctx + 'remind/getRemindListNoPaging',//地址
url: ctx + 'system/remind/getRemindListNoPaging', // 地址
success: function (data, status) {
//alert(data);
if (status == 'success') {
$("#remindList").empty();
if (data.length > 0) {
if (data.length > 10) {$("#remindBadge").text('10+');}
else {$("#remindSize").text(data.length + "项新");}
$("#remindBadge2").append("<span class=\"badge badge-danger\">" + data.length + "</span>")
} else if (data.length == 0) {
let remindCount = data.length > 10 ? '10+' : data.length;
$("#remindBadge").text(remindCount);
$("#remindSize").text(remindCount + "项新");
$("#remindBadge2").append("<span class=\"badge badge-danger\">" + data.length + "</span>");
} else {
$("#remindBadge").text('');
$("#remindBadge2 span").remove();
$("#remindSize").text("0项新");
}
if (data.length > 10) {
$("#remindSize").text('10+' + "项新");
} else {$("#remindSize").text(data.length + "项新");}
for (var i = 0; i < data.length; i++) {
for (var i = 0; i < Math.min(data.length, 10); i++) { // 只显示最多10条提醒
var obj = data[i];
var offset = transDate(obj.remindDate)
var remindTime = transDate(obj.remindTime);
var module = obj.module || '未知模块'; // 防止module为空时显示默认值
var url = ctx + "remind/view/" + obj.id;
$("#remindList").append(
"<li class=\"remindLi\">" +
"<a href=" + url + " data-url= "+ url +"> " +
"<span class=\"time\">" + offset + "</span> " +
"<span class=\"details\"> " +
"<span class=\"label label-sm label-icon label-info\"> <i class=\"fa fa-bolt\"></i></span>" +
obj.formName +
"</span>" +
"</a>" +
"</li>");
// 使用模板字符串构建HTML,增强可读性
var listItem = `
<li class="remindLi">
<!-- <a href="${url}" data-url="${url}"> -->
<span class="time">${remindTime}</span>
<span class="details">
<span class="label label-sm label-icon label-info"><i class="fa fa-bolt"></i></span>
你有一项来自 "${module}" 的提醒
</span>
<!-- </a>-->
</li>`;
$("#remindList").append(listItem);
}
}
}
})
});
}
// 计算耗时

60
ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html

@ -66,7 +66,7 @@
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="purchase:purchaseQuote:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-success" onclick="$.table.exportExcel()" shiro:hasPermission="purchase:purchaseQuote:export">
<a class="btn btn-success" onclick="exportExcel()" shiro:hasPermission="purchase:purchaseQuote:export">
<i class="fa fa-download"></i> 导出
</a>
<!-- <a class="btn btn-success" onclick="$.table.importExcel()" shiro:hasPermission="purchase:purchaseQuote:import">-->
@ -203,6 +203,64 @@
};
$.table.init(options);
});
// 导出
function exportExcel(formId) {
// $.table.set();
var purchaseQuoteCodeData = [];
var selections = $("#bootstrap-table").bootstrapTable("getSelections");
if(selections.length === 0){
$.modal.confirm("确定导出所有采购报价单吗?", function() {
var currentId = $.common.isEmpty(formId) ? $('form').attr('id') : formId;
var params = $("#bootstrap-table").bootstrapTable('getOptions');
var dataParam = $("#" + currentId).serializeArray();
dataParam.push({ "name": "orderByColumn", "value": params.sortName });
dataParam.push({ "name": "isAsc", "value": params.sortOrder });
$.modal.loading("正在导出数据,请稍后...");
$.post(prefix + '/exportAll', dataParam, function(result) {
if (result.code == web_status.SUCCESS) {
window.location.href = ctx + "common/download?fileName=" + encodeURI(result.msg) + "&delete=" + true;
} else if (result.code == web_status.WARNING) {
$.modal.alertWarning(result.msg)
} else {
$.modal.alertError(result.msg);
}
$.modal.closeLoading();
});
});
}else {
$.modal.confirm("确定导出选中的所有采购报价单吗?", function () {
//·拼接单号
for(let i=0;i<selections.length;i++){
purchaseQuoteCodeData.push(selections[i].purchaseQuoteCode);
}
var purchaseQuoteCodes = JSON.stringify(purchaseQuoteCodeData);
// console.log(bomNos);
$.modal.loading("正在导出数据,请稍后...");
var config = {
url: prefix + '/export',
type: "post",
dataType: "json",
contentType: "application/json;charset=utf-8",
data: purchaseQuoteCodes,
success: function(result) {
window.location.href = ctx + "common/download?fileName=" + encodeURI(result.msg) + "&delete=" + true;
$.modal.alertSuccess("导出成功!")
$.modal.closeLoading();
},
error: function (result){
$.modal.alertError(result.msg);
}
};
$.ajax(config)
});
}
};
</script>
</body>
</html>

9
ruoyi-admin/src/main/resources/templates/quality/complaintNotice/complaintNotice.html

@ -56,7 +56,7 @@
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="aftersales:complaintNotice:export">
<a class="btn btn-success" onclick="$.table.exportExcel()" shiro:hasPermission="aftersales:complaintNotice:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
@ -144,10 +144,11 @@
formatter: function(value, row, index) {
var actions = [];
if (row.closingProcedures !== '0') {
actions.push('<a class="btn btn-success btn-xs ' + returnInspectionFlag + '" href="javascript:void(0)" onclick="returnInspectionProcessing(\'' + row.complaintNoticeId + '\')"><i class="fa fa-edit"></i>客诉处理</a> ');
actions.push('<a class=" ' + returnInspectionFlag + '" href="javascript:void(0)" onclick="returnInspectionProcessing(\'' + row.complaintNoticeId + '\')"><i class="fa fa-edit"></i>客诉处理</a> ');
}
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="detail(\'' + row.complaintNoticeId + '\')"><i class="fa fa-edit"></i>详情</a> ');
return actions.join('');
actions.push('<a class=" ' + detailFlag + '" href="javascript:void(0)" onclick="detail(\'' + row.complaintNoticeId + '\')"><i class="fa fa-edit"></i>详情</a> ');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}]
};

8
ruoyi-admin/src/main/resources/templates/quality/iqcQualityOrder/iqcQualityOrder.html

@ -183,20 +183,20 @@
var actions = [];
//采购订单品质
if (row.qualityStatus != 2 && row.qualityStorageStatus == 0 ){
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="iqcStartingQuality(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>品质</a> ');
actions.push('<a href="javascript:void(0)" onclick="iqcStartingQuality(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>品质</a> ');
}
//采购订单品质详情
if (row.qualityStorageStatus == 0 ){
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="iqcStartingQualityDetail(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a href="javascript:void(0)" onclick="iqcStartingQualityDetail(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
//委外入库品质
if (row.qualityStatus != 2 && row.qualityStorageStatus == 2 ){
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="makeOutStartingQuality(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>品质</a> ');
actions.push('<a href="javascript:void(0)" onclick="makeOutStartingQuality(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>品质</a> ');
}
//委外入库品质详情
if (row.qualityStorageStatus == 2 ){
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="makeOutStartingQualityDetail(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a href="javascript:void(0)" onclick="makeOutStartingQualityDetail(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);

8
ruoyi-admin/src/main/resources/templates/quality/manufacturingCheckout/manufacturingCheckout.html

@ -226,15 +226,15 @@
var todoUserIdList = row.todoUserId.split(",");
if(todoUserIdList.includes(loginName)){
var nodeName = row.taskName=='驳回调整'?' 调整申请':' 审批';
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="showVerifyDialog(\'' + prefix + '\',\'' + row.taskId + '\', \'' + row.taskName+"-"+row.instanceTypeName+"申请" + '\')"><i class="fa fa-edit"></i> '+nodeName+'</a> ');
actions.push('<a href="javascript:void(0)" onclick="showVerifyDialog(\'' + prefix + '\',\'' + row.taskId + '\', \'' + row.taskName+"-"+row.instanceTypeName+"申请" + '\')"><i class="fa fa-edit"></i> '+nodeName+'</a> ');
}
}
// 审批历史
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="showHistoryDialog(\'' + row.instanceId + '\')"> 审批历史</a> ');
actions.push('<a href="javascript:void(0)" onclick="showHistoryDialog(\'' + row.instanceId + '\')"> 审批历史</a> ');
// 进度查看
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="showProcessImgDialog(\'' + row.instanceId + '\')"> 进度查看</a> ');
actions.push('<a href="javascript:void(0)" onclick="showProcessImgDialog(\'' + row.instanceId + '\')"> 进度查看</a> ');
}
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="detail(\'' + row.manufacturingCheckoutCode + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class="' + detailFlag + '" href="javascript:void(0)" onclick="detail(\'' + row.manufacturingCheckoutCode + '\')"><i class="fa fa-edit"></i>详情</a> ');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}

7
ruoyi-admin/src/main/resources/templates/quality/manufacturingProcess/manufacturingProcess.html

@ -142,9 +142,10 @@
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.manufacturingProcessAutoid + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="detail(\'' + row.manufacturingProcessAutoid + '\')"><i class="fa fa-edit"></i>详情</a> ');
return actions.join('');
actions.push('<a class=" ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.manufacturingProcessAutoid + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class=" ' + detailFlag + '" href="javascript:void(0)" onclick="detail(\'' + row.manufacturingProcessAutoid + '\')"><i class="fa fa-edit"></i>详情</a> ');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}]
};

6
ruoyi-admin/src/main/resources/templates/quality/qualityOrder/qualityOrder.html

@ -190,15 +190,15 @@
//生产订单成品品质
if (row.qualityStatus != 2 && row.qualityStorageStatus == 4 && (row.materialNo!=null && row.materialNo.startsWith("8"))){
actions.push('<a class="btn btn-success btn-xs ' + makeStartingQualityFlag + '" href="javascript:void(0)" onclick="makeStartingQuality(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>品质</a> ');
actions.push('<a class=" ' + makeStartingQualityFlag + '" href="javascript:void(0)" onclick="makeStartingQuality(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>品质</a> ');
}
//生产订单其他物料品质
if (row.qualityStatus != 2 && row.qualityStorageStatus == 4 && !(row.materialNo!=null && row.materialNo.startsWith("8"))){
actions.push('<a class="btn btn-success btn-xs ' + makeStartingQualityFlag + '" href="javascript:void(0)" onclick="makeOtherStartingQuality(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>品质</a> ');
actions.push('<a class=" ' + makeStartingQualityFlag + '" href="javascript:void(0)" onclick="makeOtherStartingQuality(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>品质</a> ');
}
//生产订单品质详情
if (row.qualityStorageStatus == 4 ){
actions.push('<a class="btn btn-success btn-xs ' + makeStartingQualityDetailFlag + '" href="javascript:void(0)" onclick="makeStartingQualityDetail(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + makeStartingQualityDetailFlag + '" href="javascript:void(0)" onclick="makeStartingQualityDetail(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);

8
ruoyi-admin/src/main/resources/templates/quality/qualityReport/qualityReport.html

@ -259,15 +259,15 @@
var todoUserIdList = row.todoUserId.split(",");
if(todoUserIdList.includes(loginName)){
var nodeName = row.taskName=='驳回调整'?' 调整申请':' 审批';
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="showVerifyDialog(\'' + prefix + '\',\'' + row.taskId + '\', \'' + row.taskName+"-"+row.instanceTypeName+"申请" + '\')"><i class="fa fa-edit"></i> '+nodeName+'</a> ');
actions.push('<a href="javascript:void(0)" onclick="showVerifyDialog(\'' + prefix + '\',\'' + row.taskId + '\', \'' + row.taskName+"-"+row.instanceTypeName+"申请" + '\')"><i class="fa fa-edit"></i> '+nodeName+'</a> ');
}
}
// 审批历史
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="showHistoryDialog(\'' + row.instanceId + '\')"> 审批历史</a> ');
actions.push('<a href="javascript:void(0)" onclick="showHistoryDialog(\'' + row.instanceId + '\')"> 审批历史</a> ');
// 进度查看
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="showProcessImgDialog(\'' + row.instanceId + '\')"> 进度查看</a> ');
actions.push('<a href="javascript:void(0)" onclick="showProcessImgDialog(\'' + row.instanceId + '\')"> 进度查看</a> ');
}
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="$.operate.detail(\'' + row.qualityOrderReportId + '\')"><i class="fa fa-search"></i>详情</a> ');
actions.push('<a href="javascript:void(0)" onclick="$.operate.detail(\'' + row.qualityOrderReportId + '\')"><i class="fa fa-search"></i>详情</a> ');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}

20
ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/refundsExchanges.html

@ -69,7 +69,7 @@
<a id="addRefundsButton" class="btn btn-success" onclick="add()" shiro:hasPermission="quality:refundsExchanges:add">
<i class="fa fa-plus"></i> 添加退货单
</a>
<a class="btn btn-warning" onclick="exportExcel()" shiro:hasPermission="quality:refundsExchanges:export">
<a class="btn btn-success" onclick="exportExcel()" shiro:hasPermission="quality:refundsExchanges:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
@ -200,36 +200,36 @@
var actions = [];
// actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
if (row.refundsExchangesStatus == 0 && row.qualityPurchaseStatus >= 3){
actions.push('<a class="btn btn-success btn-xs ' + closingProceduresFlag + '" href="javascript:void(0)" onclick="closingProcedures(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>结案</a> ');
actions.push('<a class=" ' + closingProceduresFlag + '" href="javascript:void(0)" onclick="closingProcedures(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>结案</a> ');
}
/*入库前退货详情*/
if (row.qualityReturnNode == 0){
actions.push('<a class="btn btn-success btn-xs ' + returnBeforeStorageDetailFlag + '" href="javascript:void(0)" onclick="returnBeforeStorageDetail(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + returnBeforeStorageDetailFlag + '" href="javascript:void(0)" onclick="returnBeforeStorageDetail(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*入库后退货详情*/
if (row.qualityReturnNode == 1){
actions.push('<a class="btn btn-success btn-xs ' + returnAfterStorageDetailFlag + '" href="javascript:void(0)" onclick="returnAfterStorageDetail(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + returnAfterStorageDetailFlag + '" href="javascript:void(0)" onclick="returnAfterStorageDetail(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*入库前退换货-确认供应商-已有供应商*/
if (row.qualityReturnNode == 0 && row.qualityPurchaseStatus == 0 && row.qualityWarehouseStatus == 1){
actions.push('<a class="btn btn-success btn-xs ' + beforeHasConfirmSupplierFlag + '" href="javascript:void(0)" onclick="beforeHasConfirmSupplier(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>确认供应商</a> ');
actions.push('<a class=" ' + beforeHasConfirmSupplierFlag + '" href="javascript:void(0)" onclick="beforeHasConfirmSupplier(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>确认供应商</a> ');
}
/*入库前退换货-确认收货-已有供应商*/
if (row.qualityReturnNode == 0 && row.qualityPurchaseStatus != 0 && row.qualityWarehouseStatus > 2 ){
actions.push('<a class="btn btn-success btn-xs ' + beforeConfirmDeliveryFlag + '" href="javascript:void(0)" onclick="beforeConfirmDelivery(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>确认收货</a> ');
actions.push('<a class=" ' + beforeConfirmDeliveryFlag + '" href="javascript:void(0)" onclick="beforeConfirmDelivery(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>确认收货</a> ');
}
/*入库后退货-确认供应商-没有供应商*/
if (row.qualityReturnNode == 1 && row.qualityPurchaseStatus == 0 && row.qualityWarehouseStatus == 0){
actions.push('<a class="btn btn-success btn-xs ' + afterNoConfirmSupplierFlag + '" href="javascript:void(0)" onclick="afterNoConfirmSupplier(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>确认供应商</a> ');
actions.push('<a class=" ' + afterNoConfirmSupplierFlag + '" href="javascript:void(0)" onclick="afterNoConfirmSupplier(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>确认供应商</a> ');
}
/*入库前退换货-确认收货-已有供应商*/
if (row.qualityReturnNode == 1 && row.qualityPurchaseStatus != 0 && row.qualityWarehouseStatus > 2 ){
actions.push('<a class="btn btn-success btn-xs ' + afterConfirmDeliveryFlag + '" href="javascript:void(0)" onclick="afterConfirmDelivery(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>确认收货</a> ');
actions.push('<a class=" ' + afterConfirmDeliveryFlag + '" href="javascript:void(0)" onclick="afterConfirmDelivery(\'' + row.refundsExchangesId + '\')"><i class="fa fa-edit"></i>确认收货</a> ');
}
return actions.join('');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}]
};

9
ruoyi-admin/src/main/resources/templates/quality/returnInspection/returnInspection.html

@ -53,7 +53,7 @@
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-warning" onclick="exportExcel()" shiro:hasPermission="quality:returnInspection:export">
<a class="btn btn-success" onclick="exportExcel()" shiro:hasPermission="quality:returnInspection:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
@ -117,9 +117,10 @@
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + processingFlag + '" href="javascript:void(0)" onclick="processing(\'' + row.id + '\')"><i class="fa fa-edit"></i>退检处理</a> ');
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="detail(\'' + row.id + '\')"><i class="fa fa-edit"></i>详情</a> ');
return actions.join('');
actions.push('<a class=" ' + processingFlag + '" href="javascript:void(0)" onclick="processing(\'' + row.id + '\')"><i class="fa fa-edit"></i>退检处理</a> ');
actions.push('<a class=" ' + detailFlag + '" href="javascript:void(0)" onclick="detail(\'' + row.id + '\')"><i class="fa fa-edit"></i>详情</a> ');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}]
};

4
ruoyi-admin/src/main/resources/templates/quality/returnQualityOrder/returnQualityOrder.html

@ -195,9 +195,9 @@
formatter: function(value, row, index) {
var actions = [];
if (row.qualityStatus != 2){
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="returnStartingQuality(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>品质</a> ');
actions.push('<a href="javascript:void(0)" onclick="returnStartingQuality(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>品质</a> ');
}
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="returnStartingQualityDetail(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a href="javascript:void(0)" onclick="returnStartingQualityDetail(\'' + row.qualityOrderId + '\')"><i class="fa fa-edit"></i>详情</a> ');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);

16
ruoyi-admin/src/main/resources/templates/system/makeorder/makeorder.html

@ -261,38 +261,38 @@
// actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
//详情页面 工程审核为详情页面
// actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="$.modal.open(\'详情\',\'' + prefix+"/detail/"+row.id + '\')"><i class="fa fa-info"></i>详情</a> ');
actions.push('<a href="javascript:void(0)" onclick="$.modal.open(\'详情\',\'' + prefix+"/detail/"+row.id + '\')"><i class="fa fa-info"></i>详情</a> ');
// 评审
if(row.makeStatus == '0'){
actions.push('<a class="btn btn-success btn-xs ' + reviewFlag + '" href="javascript:void(0)" onclick="$.modal.open(\'部门评审\',\'' + prefix+"/bmps/"+row.id + '\')"><i class="fa fa-edit"></i>评审</a> ');
actions.push('<a class=" ' + reviewFlag + '" href="javascript:void(0)" onclick="$.modal.open(\'部门评审\',\'' + prefix+"/bmps/"+row.id + '\')"><i class="fa fa-edit"></i>评审</a> ');
}
// 部门主管确认
if(row.deptLeaderConfirmStatus == '0'){
actions.push('<a class="btn btn-success btn-xs ' + confirmFlag + '" href="javascript:void(0)" onclick="$.modal.open(\'部门主管确认\',\'' + prefix+"/bmzgqr/"+row.id + '\')"><i class="fa fa-edit"></i>确认时间</a> ');
actions.push('<a class=" ' + confirmFlag + '" href="javascript:void(0)" onclick="$.modal.open(\'部门主管确认\',\'' + prefix+"/bmzgqr/"+row.id + '\')"><i class="fa fa-edit"></i>确认时间</a> ');
}
// 工程审核
if(row.makeStatus == '2'){
actions.push('<a class="btn btn-success btn-xs ' + engineerFlag + '" href="javascript:void(0)" onclick="$.modal.open(\'工程审核\',\'' + prefix+"/gcsh/"+row.id + '\')"><i class="fa fa-edit"></i>工程审核</a> ');
actions.push('<a class=" ' + engineerFlag + '" href="javascript:void(0)" onclick="$.modal.open(\'工程审核\',\'' + prefix+"/gcsh/"+row.id + '\')"><i class="fa fa-edit"></i>工程审核</a> ');
}
// 采购审核:生产状态-待采购审核,采购上级确认状态-已确认
if(row.makeStatus == '7'&&row.purchaseStatus == '1'){
actions.push('<a class="btn btn-success btn-xs ' + purchaseFlag + '" href="javascript:void(0)" onclick="$.modal.open(\'采购审核\',\'' + prefix+"/cgsh/"+row.id + '\')"><i class="fa fa-edit"></i>采购审核</a> ');
actions.push('<a class="' + purchaseFlag + '" href="javascript:void(0)" onclick="$.modal.open(\'采购审核\',\'' + prefix+"/cgsh/"+row.id + '\')"><i class="fa fa-edit"></i>采购审核</a> ');
}
// 领料
if((row.makeStatus == '3' || row.makeStatus == '4' || row.makeStatus == '5') &&
(row.eceiptStatus == '7' || row.eceiptStatus == '8')){
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="$.modal.open(\'添加领料单\',\'' + prefix+"/addpick/"+row.id + '\')"><i class="fa fa-edit"></i>领料</a> ');
actions.push('<a href="javascript:void(0)" onclick="$.modal.open(\'添加领料单\',\'' + prefix+"/addpick/"+row.id + '\')"><i class="fa fa-edit"></i>领料</a> ');
}
// 委外计划
if((row.makeStatus == '3' || row.makeStatus == '4' || row.makeStatus == '5') &&
(row.eceiptStatus == '3' || row.eceiptStatus == '4'|| row.eceiptStatus == '5'|| row.eceiptStatus == '6'|| row.eceiptStatus == '7'
|| row.eceiptStatus == '8')){
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="$.modal.open(\'添加委外计划\',\'' + prefix+"/addOutsourcePlan/"+row.id + '\')"><i class="fa fa-edit"></i>委外计划</a> ');
actions.push('<a href="javascript:void(0)" onclick="$.modal.open(\'添加委外计划\',\'' + prefix+"/addOutsourcePlan/"+row.id + '\')"><i class="fa fa-edit"></i>委外计划</a> ');
}
// 委内入库 对应生产中
if(row.makeStatus == '4' || row.makeStatus == '5'){
// actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="$.modal.open(\'创建委内入库单\',\'' + prefix+"/addProcessInbound/"+row.id + '\')">委内入库</a> ');
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="$.modal.open(\'创建生产入库和设备履历设置\',\'' + prefix+"/addProduceInbound/"+row.id + '\')"><i class="fa fa-edit"></i>生产入库</a> ');
actions.push('<a href="javascript:void(0)" onclick="$.modal.open(\'创建生产入库和设备履历设置\',\'' + prefix+"/addProduceInbound/"+row.id + '\')"><i class="fa fa-edit"></i>生产入库</a> ');
}

15
ruoyi-admin/src/main/resources/templates/system/procedure/procedure.html

@ -52,12 +52,6 @@
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:procedure:add">
<i class="fa fa-plus"></i> 添加
</a>
<!-- <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:procedure:edit">-->
<!-- <i class="fa fa-edit"></i> 修改-->
<!-- </a>-->
<!-- <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:procedure:remove">-->
<!-- <i class="fa fa-remove"></i> 删除-->
<!-- </a>-->
<!-- <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:procedure:export">-->
<!-- <i class="fa fa-download"></i> 导出-->
<!-- </a>-->
@ -104,10 +98,11 @@
{field: 'updateTime', title: '上次更新时间'},
{title: '操作',align: 'center',formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-primary btn-xs " href="javascript:void(0)" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
actions.push('<a class=" ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a href="javascript:void(0)" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class="' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}
]

16
ruoyi-admin/src/main/resources/templates/system/processCategory/processCategory.html

@ -31,12 +31,6 @@
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:processCategory:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:processCategory:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:processCategory:remove">
<i class="fa fa-remove"></i> 删除
</a>
<!-- <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:processCategory:export">-->
<!-- <i class="fa fa-download"></i> 导出-->
<!-- </a>-->
@ -63,7 +57,6 @@
showColumns: false,
fixedColumns: true, // 启用冻结列
fixedRightNumber: 1, // 冻结右列个数
height: $(window).height() - 100,
modalName: "制程类别明细",
columns: [
{checkbox: true},
@ -79,10 +72,11 @@
{field: 'updateTime',title: '上次更新时间'},
{title: '操作',align: 'center',formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
actions.push('<a class="btn btn-primary btn-xs ' + editFlag + '" href="#" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-edit"></i>详情</a> ');
return actions.join('');
actions.push('<a class="' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
actions.push('<a class="' + editFlag + '" href="#" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-edit"></i>详情</a> ');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}
]

171
ruoyi-admin/src/main/resources/templates/system/remind/add.html

@ -0,0 +1,171 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增系统提醒')" />
<th:block th:include="include :: datetimepicker-css" />
<th:block th:include="include :: summernote-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-remind-add">
<div class="form-group">
<label class="col-sm-3 control-label">提醒人ID:</label>
<div class="col-sm-8">
<input name="remindUserId" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">提醒人:</label>
<div class="col-sm-8">
<input name="remindUser" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">提醒人部门ID:</label>
<div class="col-sm-8">
<input name="remindDeptId" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">接受人ID:</label>
<div class="col-sm-8">
<input name="receiverUserId" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">接受人:</label>
<div class="col-sm-8">
<input name="receiverUser" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">接受人部门ID:</label>
<div class="col-sm-8">
<input name="receiverDeptId" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">提醒时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="remindTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">处理时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="handleTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">提醒内容:</label>
<div class="col-sm-8">
<input type="hidden" class="form-control" name="remindContent">
<div class="summernote" id="remindContent"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">模块名称 (必须以 uri 一致):</label>
<div class="col-sm-8">
<input name="module" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">模块url:</label>
<div class="col-sm-8">
<input name="moduleUrl" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否查看 default 0 (0 否 1 是):</label>
<div class="col-sm-8">
<select name="isView" class="form-control m-b" th:with="type=${@dict.getType('yes_or_no')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否处理 default 0 (0 否 1 是):</label>
<div class="col-sm-8">
<select name="isHandle" class="form-control m-b" th:with="type=${@dict.getType('yes_or_no')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<textarea name="remark" class="form-control"></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<th:block th:include="include :: summernote-js" />
<script th:inline="javascript">
var prefix = ctx + "system/remind"
$("#form-remind-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-remind-add').serialize());
}
}
$("input[name='remindTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='handleTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$(function() {
$('.summernote').summernote({
lang: 'zh-CN',
callbacks: {
onChange: function(contents, $edittable) {
$("input[name='" + this.id + "']").val(contents);
},
onImageUpload: function(files) {
var obj = this;
var data = new FormData();
data.append("file", files[0]);
$.ajax({
type: "post",
url: ctx + "common/upload",
data: data,
cache: false,
contentType: false,
processData: false,
dataType: 'json',
success: function(result) {
if (result.code == web_status.SUCCESS) {
$('#' + obj.id).summernote('insertImage', result.url);
} else {
$.modal.alertError(result.msg);
}
},
error: function(error) {
$.modal.alertWarning("图片上传失败。");
}
});
}
}
});
});
</script>
</body>
</html>

84
ruoyi-admin/src/main/resources/templates/system/remind/detail.html

@ -0,0 +1,84 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改系统提醒')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-remind-detail" th:object="${sysRemind}">
<input name="remindId" th:field="*{remindId}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">提醒人:</label>
<div class="col-sm-8">
<input name="remindUser" th:field="*{remindUser}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">接受人:</label>
<div class="col-sm-8">
<input name="receiverUser" th:field="*{receiverUser}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">提醒时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="remindTime" th:value="${#dates.format(sysRemind.remindTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text" disabled>
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">处理时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="handleTime" th:value="${#dates.format(sysRemind.handleTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text" disabled>
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">提醒内容:</label>
<div class="col-sm-8">
<textarea name="remindContent" th:text="*{remindContent}" class="form-control" readonly></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<textarea name="remark" th:text="*{remark}" class="form-control" readonly></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "system/remind";
$("#form-remind-detail").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/detail", $('#form-remind-detail').serialize());
}
}
$("input[name='remindTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='handleTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

77
ruoyi-admin/src/main/resources/templates/system/remind/edit.html

@ -0,0 +1,77 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改系统提醒')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-remind-edit" th:object="${sysRemind}">
<input name="remindId" th:field="*{remindId}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">提醒人:</label>
<div class="col-sm-8">
<input name="remindUser" th:field="*{remindUser}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">接受人:</label>
<div class="col-sm-8">
<input name="receiverUser" th:field="*{receiverUser}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">提醒时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="remindTime" th:value="${#dates.format(sysRemind.remindTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">处理时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="handleTime" th:value="${#dates.format(sysRemind.handleTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">提醒内容:</label>
<div class="col-sm-8">
<textarea name="remark" th:text="*{remindContent}" class="form-control"></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "system/remind";
$("#form-remind-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-remind-edit').serialize());
}
}
$("input[name='remindTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='handleTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

47
ruoyi-admin/src/main/resources/templates/system/remind/manualHandle.html

@ -0,0 +1,47 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('手动处理')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-remind-manualHandle" th:object="${sysRemind}">
<input name="remindId" th:field="*{remindId}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<textarea name="remark" th:text="*{remark}" class="form-control"></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "system/remind";
$("#form-remind-manualHandle").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/manualHandle", $('#form-remind-manualHandle').serialize());
}
}
$("input[name='remindTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='handleTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

174
ruoyi-admin/src/main/resources/templates/system/remind/remind.html

@ -0,0 +1,174 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('系统提醒列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>是否查看:</label>
<select name="isView" th:with="type=${@dict.getType('yes_or_no')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>是否处理:</label>
<select name="isHandle" th:with="type=${@dict.getType('yes_or_no')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.table.exportExcel()" shiro:hasPermission="system:remind:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var isViewDatas = [[${@dict.getType('yes_or_no')}]];
var isHandleDatas = [[${@dict.getType('yes_or_no')}]];
var currentUser = [[${currentUser}]];
var prefix = ctx + "system/remind";
$(function() {
var options = {
url: prefix + "/list",
exportUrl: prefix + "/export",
modalName: "系统提醒",
columns: [{
checkbox: true
},
{
title: '提醒表Id',
field: 'remindId',
visible: false
},
{
title: '提醒人',
field: 'remindUser',
},
{
title: '接受人',
field: 'receiverUser',
},
{
title: '提醒时间',
field: 'remindTime',
},
{
title: '处理时间',
field: 'handleTime',
},
{
title: '提醒内容',
field: 'remindContent',
},
{
title: '是否查看',
field: 'isView',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isViewDatas, value);
}
},
{
title: '是否处理',
field: 'isHandle',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isHandleDatas, value);
}
},
{
title: '录入时间',
field: 'createTime',
},
{
title: '更新人',
field: 'updateBy',
},
{
title: '上次更新时间',
field: 'updateTime',
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
if (row.isHandle === '0'){
actions.push('<a href="javascript:void(0)" onclick="handle(\'' + row.remindId + '\', \'' + row.receiverUser + '\')"><i class="fa fa-edit"></i>去处理</a> ');
actions.push('<a href="javascript:void(0)" onclick="manualHandle(\'' + row.remindId + '\', \'' + row.receiverUser + '\')"><i class="fa fa-edit"></i>手动确认处理</a> ');
}
actions.push('<a href="javascript:void(0)" onclick="detail(\'' + row.remindId + '\')"><i class="fa fa-edit"></i>详情</a> ');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}
]
};
$.table.init(options);
});
//详情
function detail(remindId) {
$.modal.open("详情", prefix + "/detail/" + remindId);
}
//去处理
function handle(remindId,receiverUser) {
if (receiverUser !== currentUser.loginName) {
$.modal.alertWarning("不允许非接受人处理该提醒!");
return;
}
$.ajax({
url: prefix + "/handle/" + remindId,
type: 'GET',
success: function(response) {
if (response.url) {
// 跳转到指定页面
window.location.href = ctx + response.url;
} else {
console.error('无效的URL');
}
},
error: function() {
console.error('请求失败');
}
});
}
//手动确认处理
function manualHandle(remindId,receiverUser) {
if (receiverUser !== currentUser.loginName) {
$.modal.alertWarning("不允许非接受人处理该提醒!");
return;
}
$.modal.open("手动处理", prefix + "/manualHandle/" + remindId);
}
</script>
</body>
</html>

9
ruoyi-admin/src/main/resources/templates/system/sop/sop.html

@ -213,11 +213,12 @@
},
{title: '操作',align: 'center',formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-primary btn-xs " href="javascript:void(0)" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-remove"></i>详情</a>');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
actions.push('<a class=" ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a href="javascript:void(0)" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-remove"></i>详情</a>');
actions.push('<a class="' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}
]

9
ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html

@ -106,6 +106,7 @@
},
{title: '历史总数量', field: 'historicalTotal',},
{title: '可用库存数', field: 'availableStockNum',},
{title: '安全库存数', field: 'safetyStockNum',},
{title: '固定可用库存数', field: 'fixedAvailableStockNum',},
{title: '共享可用库存数', field: 'sharedAvailableStockNum',},
{title: '锁定库存数', field: 'lockStockNum',},
@ -132,6 +133,8 @@
}
actions.push('<a class=" ' + inventoryHistoryFlag + '" href="javascript:void(0)" onclick="inventoryHistory(\'' + row.inventoryInquiryId + '\')"><i class="fa fa-edit"></i>库存履历</a> ');
actions.push('<a href="javascript:void(0)" onclick="setSafetyStock(\'' + row.inventoryInquiryId + '\')"><i class="fa fa-edit"></i>设置安全库存</a> ');
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
@ -177,6 +180,12 @@
$.modal.open("库存履历", url);
}
//设置安全库存数
function setSafetyStock(inventoryInquiryId) {
var url = prefix + "/setSafetyStock/" + inventoryInquiryId;
$.modal.open("设置安全库存数", url);
}
</script>
</body>
</html>

67
ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/setSafetyStock.html

@ -0,0 +1,67 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('设置安全库存')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-inventoryInquiry-setSafetyStock" th:object="${warehouseInventoryInquiry}">
<input name="inventoryInquiryId" th:field="*{inventoryInquiryId}" type="hidden">
<div class="form-group">
<label class="col-sm-4 control-label">料号:</label>
<div class="col-sm-8">
<input name="materialNo" th:field="*{materialNo}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">物料名称:</label>
<div class="col-sm-8">
<input name="materialName" th:field="*{materialName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">可用库存数:</label>
<div class="col-sm-8">
<input name="availableStockNum" th:field="*{availableStockNum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label is-required">安全库存数:</label>
<div class="col-sm-8">
<input name="safetyStockNum" th:field="*{safetyStockNum}" class="form-control" type="text" required>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "warehouse/inventoryInquiry";
$("#form-inventoryInquiry-setSafetyStock").validate({
rules: {
safetyStockNum: {
number: true,
min: 1
},
},
messages: {
safetyStockNum: {
number: "请输入有效的数字",
min: "安全库存数必须大于0"
}
},
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/setSafetyStock", $('#form-inventoryInquiry-setSafetyStock').serialize());
}
}
</script>
</body>
</html>

36
ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storageOrder.html

@ -258,91 +258,91 @@
/*暂收-采购单(仓库入库)*/
if (row.warehouseDeptType == 0 && row.warehouseOrderType == 0 && row.warehouseStorageStatus == 0 ){
actions.push('<a class="btn btn-success btn-xs ' + temporaryPurchaseWarehouseFlag + '" href="javascript:void(0)" onclick="temporaryPurchaseWarehouse(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>暂收</a> ');
actions.push('<a class=" ' + temporaryPurchaseWarehouseFlag + '" href="javascript:void(0)" onclick="temporaryPurchaseWarehouse(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>暂收</a> ');
}
/*暂收-采购单(仓库入库)详情*/
if (row.warehouseDeptType == 0 && row.warehouseOrderType == 0 && (row.warehouseStorageStatus == 0 || row.warehouseStorageStatus == 1)){
actions.push('<a class="btn btn-success btn-xs ' + temporaryPurchaseWarehouseDetailFlag + '" href="javascript:void(0)" onclick="temporaryPurchaseWarehouseDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + temporaryPurchaseWarehouseDetailFlag + '" href="javascript:void(0)" onclick="temporaryPurchaseWarehouseDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*暂收-采购单(采购入库)*/
if (row.warehouseDeptType == 1 && row.warehouseOrderType == 0 && row.warehouseStorageStatus == 0 ){
actions.push('<a class="btn btn-success btn-xs ' + temporaryPurchaseFlag + '" href="javascript:void(0)" onclick="temporaryPurchase(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>暂收</a> ');
actions.push('<a class="' + temporaryPurchaseFlag + '" href="javascript:void(0)" onclick="temporaryPurchase(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>暂收</a> ');
}
/*暂收-采购单(采购入库)详情*/
if (row.warehouseDeptType == 1 && row.warehouseOrderType == 0 && (row.warehouseStorageStatus == 0 || row.warehouseStorageStatus == 1)){
actions.push('<a class="btn btn-success btn-xs ' + temporaryPurchaseDetailFlag + '" href="javascript:void(0)" onclick="temporaryPurchaseDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + temporaryPurchaseDetailFlag + '" href="javascript:void(0)" onclick="temporaryPurchaseDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*暂收-委外单*/
if ( row.warehouseStorageType == 4 && row.warehouseOrderType == 3 && row.warehouseStorageStatus == 0 ){
actions.push('<a class="btn btn-success btn-xs ' + temporaryOutOrderFlag + '" href="javascript:void(0)" onclick="temporaryOutOrder(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>暂收</a> ');
actions.push('<a class="' + temporaryOutOrderFlag + '" href="javascript:void(0)" onclick="temporaryOutOrder(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>暂收</a> ');
}
/*暂收-委外单 详情*/
if ( row.warehouseStorageType == 4 && row.warehouseOrderType == 3 && (row.warehouseStorageStatus == 0 || row.warehouseStorageStatus == 1)){
actions.push('<a class="btn btn-success btn-xs ' + temporaryOutOrderDetailFlag + '" href="javascript:void(0)" onclick="temporaryOutOrderDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + temporaryOutOrderDetailFlag + '" href="javascript:void(0)" onclick="temporaryOutOrderDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*入库-采购单(采购入库)*/
if ( row.warehouseDeptType == 1 && row.warehouseOrderType == 0 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3) ){
actions.push('<a class="btn btn-success btn-xs ' + storagePurchaseFlag + '" href="javascript:void(0)" onclick="storagePurchase(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
actions.push('<a class=" ' + storagePurchaseFlag + '" href="javascript:void(0)" onclick="storagePurchase(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
}
/*入库-采购单(采购入库)详情*/
if ( row.warehouseDeptType == 1 && row.warehouseOrderType == 0 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3 || row.warehouseStorageStatus == 4) ){
actions.push('<a class="btn btn-success btn-xs ' + storagePurchaseDetailFlag + '" href="javascript:void(0)" onclick="storagePurchaseDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + storagePurchaseDetailFlag + '" href="javascript:void(0)" onclick="storagePurchaseDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*入库-采购单(仓库入库)*/
if ( row.warehouseDeptType == 0 && row.warehouseOrderType == 0 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3) ){
actions.push('<a class="btn btn-success btn-xs ' + storagePurchaseWarehouseFlag + '" href="javascript:void(0)" onclick="storagePurchaseWarehouse(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
actions.push('<a class=" ' + storagePurchaseWarehouseFlag + '" href="javascript:void(0)" onclick="storagePurchaseWarehouse(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
}
/*入库-采购单(仓库入库) 详情*/
if ( row.warehouseDeptType == 0 && row.warehouseOrderType == 0 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3 || row.warehouseStorageStatus == 4)){
actions.push('<a class="btn btn-success btn-xs ' + storagePurchaseWarehouseDetailFlag + '" href="javascript:void(0)" onclick="storagePurchaseWarehouseDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + storagePurchaseWarehouseDetailFlag + '" href="javascript:void(0)" onclick="storagePurchaseWarehouseDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*入库-委外单*/
if ( row.warehouseStorageType == 4 && row.warehouseOrderType == 3 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3) ){
actions.push('<a class="btn btn-success btn-xs ' + storageOutOrderFlag + '" href="javascript:void(0)" onclick="storageOutOrder(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
actions.push('<a class="' + storageOutOrderFlag + '" href="javascript:void(0)" onclick="storageOutOrder(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
}
/*入库-委外单 详情*/
if ( row.warehouseStorageType == 4 && row.warehouseOrderType == 3 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3 || row.warehouseStorageStatus == 4) ){
actions.push('<a class="btn btn-success btn-xs ' + storageOutOrderDetailFlag + '" href="javascript:void(0)" onclick="storageOutOrderDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + storageOutOrderDetailFlag + '" href="javascript:void(0)" onclick="storageOutOrderDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*入库-生产订单(生产入库)*/
if ( row.warehouseStorageType == 5 && row.warehouseOrderType == 1 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3) ){
actions.push('<a class="btn btn-success btn-xs ' + storageMakeFlag + '" href="javascript:void(0)" onclick="storageMake(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
actions.push('<a class=" ' + storageMakeFlag + '" href="javascript:void(0)" onclick="storageMake(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
}
/*入库-生产订单(生产入库) 详情*/
if ( row.warehouseStorageType == 5 && row.warehouseOrderType == 1 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3 || row.warehouseStorageStatus == 4) ){
actions.push('<a class="btn btn-success btn-xs ' + storageMakeDetailFlag + '" href="javascript:void(0)" onclick="storageMakeDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + storageMakeDetailFlag + '" href="javascript:void(0)" onclick="storageMakeDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*入库-生产订单(委内入库)*/
if ( row.warehouseStorageType == 2 && row.warehouseOrderType == 1 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3) ){
actions.push('<a class="btn btn-success btn-xs ' + storageMakeInFlag + '" href="javascript:void(0)" onclick="storageMakeIn(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
actions.push('<a class=" ' + storageMakeInFlag + '" href="javascript:void(0)" onclick="storageMakeIn(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
}
/*入库-生产订单(委内入库) 详情*/
if ( row.warehouseStorageType == 2 && row.warehouseOrderType == 1 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3 || row.warehouseStorageStatus == 4)){
actions.push('<a class="btn btn-success btn-xs ' + storageMakeInDetailFlag + '" href="javascript:void(0)" onclick="storageMakeInDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + storageMakeInDetailFlag + '" href="javascript:void(0)" onclick="storageMakeInDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*入库-退换货单*/
if ( row.warehouseStorageType == 3 && row.warehouseOrderType == 2 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3) ){
actions.push('<a class="btn btn-success btn-xs ' + storageRefundsExchangesFlag + '" href="javascript:void(0)" onclick="storageRefundsExchanges(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
actions.push('<a class=" ' + storageRefundsExchangesFlag + '" href="javascript:void(0)" onclick="storageRefundsExchanges(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>入库</a> ');
}
/*入库-退换货单 详情*/
if ( row.warehouseStorageType == 3 && row.warehouseOrderType == 2 && (row.warehouseStorageStatus == 2 || row.warehouseStorageStatus == 3 || row.warehouseStorageStatus == 4)){
actions.push('<a class="btn btn-success btn-xs ' + storageRefundsExchangesDetailFlag + '" href="javascript:void(0)" onclick="storageRefundsExchangesDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
actions.push('<a class=" ' + storageRefundsExchangesDetailFlag + '" href="javascript:void(0)" onclick="storageRefundsExchangesDetail(\'' + row.warehouseStorageId + '\')"><i class="fa fa-edit"></i>详情</a> ');
}
/*入库-退料单*/

6
ruoyi-common/src/main/java/com/ruoyi/common/constant/BusinessKeysConstants.java

@ -26,4 +26,10 @@ public class BusinessKeysConstants {
/** 基础资料汇率管理*/
public static final String SYS_EXCHANGE_RATE = "5";
/** 工程开发修改单信息 */
public static final String ERP_DEVELOPMENT_MODIFY = "6";
/** 仓库库存查询信息*/
public static final String WAREHOUSE_INQUIRY = "7";
}

7
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java

@ -114,4 +114,11 @@ public interface SysDeptMapper
* @return 子部门数
*/
public int selectNormalChildrenDeptById(Long deptId);
/**
* 根据部门编号查询部门
* @param deptNumber 部门编号
* @return 部门信息
*/
SysDept selectDeptByDeptNumber(String deptNumber);
}

2
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java

@ -170,7 +170,7 @@ public interface SysUserMapper
* */
String selectLoginNameByUserName(String businessMembers);
List<SysUser> selectUserAll() throws Exception;
List<SysUser> selectUserAll();
/**
* 通过部门id查询该部门下的所有用户

7
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java

@ -107,4 +107,11 @@ public interface ISysDeptService
* @return 结果
*/
public String checkDeptNameUnique(SysDept dept);
/**
* 根据部门编号查询部门
* @param deptNumber 部门编号
* @return 部门信息
*/
SysDept selectDeptByDeptNumber(String deptNumber);
}

2
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@ -220,7 +220,7 @@ public interface ISysUserService
List<SysUser> selectRoleToUserList(String roleKeys);
public List<SysUser> selectUserAll() throws Exception;
public List<SysUser> selectUserAll();
/**
* 通过部门id查询该部门下的所有用户

10
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java

@ -311,4 +311,14 @@ public class SysDeptServiceImpl implements ISysDeptService
}
return UserConstants.DEPT_NAME_UNIQUE;
}
/**
* 根据部门编号查询部门
* @param deptNumber 部门编号
* @return 部门信息
*/
@Override
public SysDept selectDeptByDeptNumber(String deptNumber) {
return deptMapper.selectDeptByDeptNumber(deptNumber);
}
}

2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@ -547,7 +547,7 @@ public class SysUserServiceImpl implements ISysUserService
return userMapper.selectRoleToUserList(Convert.toStrArray(roleKeys));
}
@Override
public List<SysUser> selectUserAll() throws Exception {
public List<SysUser> selectUserAll(){
return userMapper.selectUserAll();
}

8
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml

@ -84,7 +84,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select count(*) from sys_dept where status = 0 and del_flag = '0' and find_in_set(#{deptId}, ancestors)
</select>
<insert id="insertDept" parameterType="SysDept">
<select id="selectDeptByDeptNumber" parameterType="String" resultMap="SysDeptResult">
<include refid="selectDeptVo"/>
where d.dept_number=#{deptNumber} and d.del_flag = '0'
</select>
<insert id="insertDept" parameterType="SysDept">
insert into sys_dept(
<if test="deptId != null and deptId != 0">dept_id,</if>
<if test="parentId != null and parentId != 0">parent_id,</if>

Loading…
Cancel
Save